eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
120 دنبال‌کننده
168 عکس
38 ویدیو
376 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
Test_Store 13.zip
حجم: 55.7M
در این بخش صفحه اصلی پویا
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید کد شما را بررسی و توضیح دهیم تا بهتر متوجه شوید که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. اینترفیس IGetHomePageImagesService اینترفیس: IGetHomePageImagesService csharp public interface IGetHomePageImagesService { ResultDto<List<HomePageImagesDto>> Execute(); } این اینترفیس شامل یک متد Execute است که لیستی از تصاویر صفحه اصلی را برمی‌گرداند. نوع خروجی این متد ResultDto<List<HomePageImagesDto>> است که نتیجه عملیات را به صورت یک شیء داده‌ انتقالی (DTO) شامل می‌شود. ۲. کلاس GetHomePageImagesService کلاس: GetHomePageImagesService csharp public class GetHomePageImagesService : IGetHomePageImagesService { private readonly IDataBaseContext _context; public GetHomePageImagesService(IDataBaseContext context) { _context = context; } public ResultDto<List<HomePageImagesDto>> Execute() { var images = _context.HomePageImages.OrderByDescending(p => p.Id) .Select(p => new HomePageImagesDto { Id = p.Id, ImageLocation = p.ImageLocation, Link = p.link, Src = p.Src, }).ToList(); return new ResultDto<List<HomePageImagesDto>>() { Data = images, IsSuccess = true, }; } } این کلاس پیاده‌سازی اینترفیس IGetHomePageImagesService است و شامل متد Execute می‌باشد. این متد به صورت زیر کار می‌کند: دسترسی به پایگاه داده: از طریق _context به جدول HomePageImages دسترسی پیدا می‌کند. مرتب‌سازی: لیست تصاویر را بر اساس Id به صورت نزولی مرتب می‌کند. انتخاب داده‌ها: داده‌های مورد نیاز (مانند Id, ImageLocation, Link, Src) را از پایگاه داده انتخاب می‌کند و آن‌ها را به صورت لیستی از HomePageImagesDto برمی‌گرداند. بازگرداندن نتیجه: نتیجه عملیات را به صورت شیء ResultDto که شامل لیستی از HomePageImagesDto و وضعیت موفقیت عملیات است، برمی‌گرداند. ۳. کلاس HomePageImagesDto کلاس: HomePageImagesDto csharp public class HomePageImagesDto { public long Id { get; set; } public string Src { get; set; } public string Link { get; set; } public ImageLocation ImageLocation { get; set; } } این کلاس یک DTO (داده‌انتقالی) است که شامل اطلاعات مربوط به تصاویر صفحه اصلی می‌باشد: Id: شناسه تصویر. Src: مسیر فایل تصویر. Link: لینک مرتبط با تصویر. ImageLocation: محل قرارگیری تصویر. نتیجه‌گیری این کد به شما امکان می‌دهد لیستی از تصاویر صفحه اصلی را از پایگاه داده دریافت کنید و به صورت یک شیء داده‌انتقالی (DTO) بازگردانید. این روش ساختاریافته و ماژولار به شما کمک می‌کند تا داده‌ها را به صورت مرتب و بهینه پردازش کنید.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کد را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. اینترفیس IGetSliderService اینترفیس: IGetSliderService csharp public interface IGetSliderService { ResultDto<List<SliderDto>> Execute(); } این اینترفیس شامل یک متد Execute است که لیستی از اسلایدرها را برمی‌گرداند. نوع خروجی این متد ResultDto<List<SliderDto>> است که نتیجه عملیات را به صورت یک شیء داده‌ انتقالی (DTO) شامل می‌شود. ۲. کلاس GetSliderService کلاس: GetSliderService csharp public class GetSliderService : IGetSliderService { private readonly IDataBaseContext _context; public GetSliderService(IDataBaseContext context) { _context = context; } public ResultDto<List<SliderDto>> Execute() { var sliders = _context.Sliders.OrderByDescending(p => p.Id).ToList().Select( p => new SliderDto { Link = p.link, Src = p.Src, }).ToList(); return new ResultDto<List<SliderDto>>() { Data = sliders, IsSuccess = true, }; } } این کلاس پیاده‌سازی اینترفیس IGetSliderService است و شامل متد Execute می‌باشد. این متد به صورت زیر کار می‌کند: دسترسی به پایگاه داده: از طریق _context به جدول Sliders دسترسی پیدا می‌کند. مرتب‌سازی و تبدیل داده‌ها: لیست اسلایدرها را بر اساس Id به صورت نزولی مرتب می‌کند. سپس داده‌های مورد نیاز (مانند Link و Src) را از پایگاه داده انتخاب می‌کند و آن‌ها را به صورت لیستی از SliderDto برمی‌گرداند. بازگرداندن نتیجه: نتیجه عملیات را به صورت شیء ResultDto که شامل لیستی از SliderDto و وضعیت موفقیت عملیات است، برمی‌گرداند. ۳. کلاس SliderDto کلاس: SliderDto csharp public class SliderDto { public string Src { get; set; } public string Link { get; set; } } این کلاس یک DTO (داده‌انتقالی) است که شامل اطلاعات مربوط به اسلایدرها می‌باشد: Src: مسیر فایل تصویر. Link: لینک مرتبط با تصویر. نتیجه‌گیری این کد به شما امکان می‌دهد لیستی از اسلایدرها را از پایگاه داده دریافت کنید و به صورت یک شیء داده‌انتقالی (DTO) بازگردانید. این روش ساختاریافته و ماژولار به شما کمک می‌کند تا داده‌ها را به صورت مرتب و بهینه پردازش کنید.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کد را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. اینترفیس IAddHomePageImagesService اینترفیس: IAddHomePageImagesService csharp public interface IAddHomePageImagesService { ResultDto Execute(requestAddHomePageImagesDto request); } این اینترفیس شامل یک متد Execute است که درخواست افزودن یک تصویر به صفحه اصلی را می‌گیرد. نوع ورودی این متد یک شیء از نوع requestAddHomePageImagesDto است و نوع خروجی آن یک شیء از نوع ResultDto است که نتیجه عملیات را شامل می‌شود. ۲. کلاس AddHomePageImagesService کلاس: AddHomePageImagesService csharp public class AddHomePageImagesService : IAddHomePageImagesService { private readonly IDataBaseContext _context; private readonly IHostingEnvironment _environment; public AddHomePageImagesService(IDataBaseContext context, IHostingEnvironment hosting) { _context = context; _environment = hosting; } public ResultDto Execute(requestAddHomePageImagesDto request) { var resultUpload = UploadFile(request.file); HomePageImages homePageImages = new HomePageImages() { link = request.Link, Src = resultUpload.FileNameAddress, ImageLocation = request.ImageLocation, }; _context.HomePageImages.Add(homePageImages); _context.SaveChanges(); return new ResultDto() { IsSuccess = true, }; } private UploadDto UploadFile(IFormFile file) { if (file != null) { string folder = $@"images\HomePages\Slider\"; var uploadsRootFolder = Path.Combine(_environment.WebRootPath, folder); if (!Directory.Exists(uploadsRootFolder)) { Directory.CreateDirectory(uploadsRootFolder); } if (file == null || file.Length == 0) { return new UploadDto() { Status = false, FileNameAddress = "", }; } string fileName = DateTime.Now.Ticks.ToString() + file.FileName; var filePath = Path.Combine(uploadsRootFolder, fileName); using (var fileStream = new FileStream(filePath, FileMode.Create)) { file.CopyTo(fileStream); } return new UploadDto() { FileNameAddress = folder + fileName, Status = true, }; } return null; } } این کلاس پیاده‌سازی اینترفیس IAddHomePageImagesService است و شامل متد Execute می‌باشد. این متد به صورت زیر کار می‌کند: دسترسی به پایگاه داده و محیط هاست: از طریق _context به پایگاه داده و از طریق _environment به محیط هاست دسترسی پیدا می‌کند. آپلود فایل تصویر: متد UploadFile فایل تصویری را که از ورودی دریافت کرده، آپلود می‌کند. ایجاد شیء HomePageImages: با استفاده از داده‌های ورودی و نتیجه آپلود فایل، یک شیء HomePageImages ایجاد می‌کند. افزودن تصویر به پایگاه داده: تصویر را به جدول HomePageImages در پایگاه داده اضافه می‌کند و تغییرات را ذخیره می‌کند. بازگرداندن نتیجه: نتیجه عملیات را به صورت شیء ResultDto که شامل وضعیت موفقیت عملیات است، برمی‌گرداند.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
۳. متد UploadFile متد: UploadFile csharp private UploadDto UploadFile(IFormFile file) { if (file != null) { string folder = $@"images\HomePages\Slider\"; var uploadsRootFolder = Path.Combine(_environment.WebRootPath, folder); if (!Directory.Exists(uploadsRootFolder)) { Directory.CreateDirectory(uploadsRootFolder); } if (file == null || file.Length == 0) { return new UploadDto() { Status = false, FileNameAddress = "", }; } string fileName = DateTime.Now.Ticks.ToString() + file.FileName; var filePath = Path.Combine(uploadsRootFolder, fileName); using (var fileStream = new FileStream(filePath, FileMode.Create)) { file.CopyTo(fileStream); } return new UploadDto() { FileNameAddress = folder + fileName, Status = true, }; } return null; } این متد وظیفه آپلود فایل تصویری را بر عهده دارد: ایجاد پوشه برای ذخیره تصاویر: اگر پوشه مورد نظر وجود نداشته باشد، آن را ایجاد می‌کند. بررسی فایل ورودی: بررسی می‌کند که فایل ورودی معتبر باشد و اندازه آن صفر نباشد. ایجاد نام منحصر به فرد برای فایل: نام فایل را با استفاده از زمان جاری و نام اصلی فایل ایجاد می‌کند. ذخیره فایل در پوشه: فایل را در مسیر مشخص شده ذخیره می‌کند. بازگرداندن نتیجه آپلود: نتیجه آپلود را به صورت شیء UploadDto که شامل مسیر فایل ذخیره شده و وضعیت موفقیت عملیات است، برمی‌گرداند. ۴. کلاس requestAddHomePageImagesDto کلاس: requestAddHomePageImagesDto csharp public class requestAddHomePageImagesDto { public IFormFile file { get; set; } public string Link { get; set; } public ImageLocation ImageLocation { get; set; } } این کلاس یک DTO (داده‌انتقالی) است که شامل اطلاعات مربوط به درخواست افزودن یک تصویر به صفحه اصلی می‌باشد: file: فایل تصویر. Link: لینک مرتبط با تصویر. ImageLocation: محل قرارگیری تصویر. نتیجه‌گیری این کد به شما امکان می‌دهد که یک تصویر را به صفحه اصلی اضافه کنید و اطلاعات مربوط به آن را در پایگاه داده ذخیره کنید. این روش ساختاریافته و ماژولار به شما کمک می‌کند تا عملیات افزودن تصاویر را به صورت مرتب و بهینه انجام دهید.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کد را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. اینترفیس IAddNewSliderService اینترفیس: IAddNewSliderService csharp public interface IAddNewSliderService { ResultDto Execute(IFormFile file, string Link); } این اینترفیس شامل یک متد Execute است که درخواست افزودن یک اسلایدر جدید را می‌گیرد. نوع ورودی این متد یک فایل از نوع IFormFile و یک رشته به نام Link است. خروجی این متد یک شیء از نوع ResultDto است که نتیجه عملیات را شامل می‌شود. ۲. کلاس AddNewSliderService کلاس: AddNewSliderService csharp public class AddNewSliderService : IAddNewSliderService { private readonly IHostingEnvironment _environment; private readonly IDataBaseContext _context; public AddNewSliderService(IHostingEnvironment environment, IDataBaseContext context) { _environment = environment; _context = context; } public ResultDto Execute(IFormFile file, string Link) { var resultUpload = UploadFile(file); Slider slider = new Slider() { link = Link, Src = resultUpload.FileNameAddress, }; _context.Sliders.Add(slider); _context.SaveChanges(); return new ResultDto() { IsSuccess = true }; } private UploadDto UploadFile(IFormFile file) { if (file != null) { string folder = $@"images\HomePages\Slider\"; var uploadsRootFolder = Path.Combine(_environment.WebRootPath, folder); if (!Directory.Exists(uploadsRootFolder)) { Directory.CreateDirectory(uploadsRootFolder); } if (file.Length == 0) { return new UploadDto() { Status = false, FileNameAddress = "", }; } string fileName = DateTime.Now.Ticks.ToString() + file.FileName; var filePath = Path.Combine(uploadsRootFolder, fileName); using (var fileStream = new FileStream(filePath, FileMode.Create)) { file.CopyTo(fileStream); } return new UploadDto() { FileNameAddress = folder + fileName, Status = true, }; } return null; } } این کلاس پیاده‌سازی اینترفیس IAddNewSliderService است و شامل متد Execute می‌باشد. این متد به صورت زیر کار می‌کند: دسترسی به محیط هاست و پایگاه داده: از طریق _environment به محیط هاست و از طریق _context به پایگاه داده دسترسی پیدا می‌کند. آپلود فایل تصویر: متد UploadFile فایل تصویری را که از ورودی دریافت کرده، آپلود می‌کند. ایجاد شیء Slider: با استفاده از داده‌های ورودی و نتیجه آپلود فایل، یک شیء Slider ایجاد می‌کند. افزودن اسلایدر به پایگاه داده: اسلایدر را به جدول Sliders در پایگاه داده اضافه می‌کند و تغییرات را ذخیره می‌کند. بازگرداندن نتیجه: نتیجه عملیات را به صورت شیء ResultDto که شامل وضعیت موفقیت عملیات است، برمی‌گرداند. ۳. متد UploadFile متد: UploadFile csharp private UploadDto UploadFile(IFormFile file) { if (file != null) { string folder = $@"images\HomePages\Slider\"; var uploadsRootFolder = Path.Combine(_environment.WebRootPath, folder); if (!Directory.Exists(uploadsRootFolder)) { Directory.CreateDirectory(uploadsRootFolder); } if (file.Length == 0) { return new UploadDto() { Status = false, FileNameAddress = "", }; } string fileName = DateTime.Now.Ticks.ToString() + file.FileName; var filePath = Path.Combine(uploadsRootFolder, fileName); using (var fileStream = new FileStream(filePath, FileMode.Create)) { file.CopyTo(fileStream); } return new UploadDto() { FileNameAddress = folder + fileName, Status = true, }; } return null; }
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
این متد وظیفه آپلود فایل تصویری را بر عهده دارد: ایجاد پوشه برای ذخیره تصاویر: اگر پوشه مورد نظر وجود نداشته باشد، آن را ایجاد می‌کند. بررسی فایل ورودی: بررسی می‌کند که فایل ورودی معتبر باشد و اندازه آن صفر نباشد. ایجاد نام منحصر به فرد برای فایل: نام فایل را با استفاده از زمان جاری و نام اصلی فایل ایجاد می‌کند. ذخیره فایل در پوشه: فایل را در مسیر مشخص شده ذخیره می‌کند. بازگرداندن نتیجه آپلود: نتیجه آپلود را به صورت شیء UploadDto که شامل مسیر فایل ذخیره شده و وضعیت موفقیت عملیات است، برمی‌گرداند. ۴. کلاس Slider کلاس: Slider این کلاس شامل ویژگی‌هایی مانند link و Src است که اطلاعات مربوط به اسلایدر را نگهداری می‌کند. این اطلاعات شامل مسیر فایل تصویر و لینک مرتبط با اسلایدر است. نتیجه‌گیری این کد به شما امکان می‌دهد که یک اسلایدر جدید را به پایگاه داده اضافه کنید و اطلاعات مربوط به آن را ذخیره کنید. این روش ساختاریافته و ماژولار به شما کمک می‌کند تا عملیات افزودن اسلایدر را به صورت مرتب و بهینه انجام دهید.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کد را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. کلاس HomePageImages کلاس: HomePageImages csharp public class HomePageImages : BaseEntity { public string Src { get; set; } public string link { get; set; } public ImageLocation ImageLocation { get; set; } } این کلاس شامل اطلاعات مربوط به تصاویر صفحه اصلی است. همچنین از کلاس پایه‌ای به نام BaseEntity ارث‌بری می‌کند که احتمالاً شامل ویژگی‌ها و رفتارهای مشترک بین همه موجودیت‌های (entities) پایگاه داده است. این کلاس دارای سه ویژگی است: Src: این ویژگی مسیر فایل تصویر را نگهداری می‌کند. link: این ویژگی لینک مرتبط با تصویر را نگهداری می‌کند. ImageLocation: این ویژگی محل قرارگیری تصویر در صفحه اصلی را مشخص می‌کند که از نوع شمارشی (enum) به نام ImageLocation است. ۲. شمارش ImageLocation شمارش: ImageLocation csharp public enum ImageLocation { L1 = 0, L2 = 1, R1 = 3, CenterFullScreen = 4, G1 = 5, G2 = 6, } این شمارش انواع مختلف محل قرارگیری تصویر در صفحه اصلی را مشخص می‌کند. هر مقدار در این شمارش یک مکان خاص را نشان می‌دهد: L1 = 0: مکان ۱ سمت چپ. L2 = 1: مکان ۲ سمت چپ. R1 = 3: مکان ۱ سمت راست. CenterFullScreen = 4: مکان مرکزی تمام صفحه. G1 = 5: مکان ۱ در بخش G. G2 = 6: مکان ۲ در بخش G. نتیجه‌گیری این کد شامل یک کلاس به نام HomePageImages است که اطلاعات مربوط به تصاویر صفحه اصلی را نگهداری می‌کند. این کلاس شامل ویژگی‌هایی برای نگهداری مسیر فایل تصویر، لینک مرتبط و محل قرارگیری تصویر در صفحه اصلی است. شمارش ImageLocation نیز انواع مختلف محل قرارگیری تصویر را مشخص می‌کند. این روش به شما امکان می‌دهد تصاویر را به صورت ساختاریافته و منظم مدیریت کنید.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کد را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد کلاس Slider کلاس: Slider csharp public class Slider : BaseEntity { public string Src { get; set; } public string link { get; set; } } این کلاس شامل اطلاعات مربوط به یک اسلایدر است و از کلاس پایه‌ای به نام BaseEntity ارث‌بری می‌کند که احتمالاً شامل ویژگی‌ها و رفتارهای مشترک بین همه موجودیت‌های (entities) پایگاه داده است. کلاس Slider دارای دو ویژگی است: Src: نوع: string توضیح: این ویژگی مسیر فایل تصویر اسلایدر را نگهداری می‌کند. این مسیر معمولاً به عنوان یک رشته حاوی مسیر نسبی یا مطلق به فایل تصویری است که در اسلایدر نمایش داده می‌شود. link: نوع: string توضیح: این ویژگی لینک مرتبط با تصویر اسلایدر را نگهداری می‌کند. این لینک معمولاً به عنوان یک رشته حاوی URL است که کاربر را به صفحه یا وب‌سایت مرتبط هدایت می‌کند. نتیجه‌گیری این کد به شما امکان می‌دهد که اطلاعات مربوط به اسلایدر را در یک کلاس ساختاریافته ذخیره کنید. ویژگی‌های Src و link مسیر تصویر و لینک مرتبط با اسلایدر را نگهداری می‌کنند. از آنجا که این کلاس از BaseEntity ارث‌بری کرده است، می‌توانیم فرض کنیم که ویژگی‌ها و رفتارهای مشترک بین تمام موجودیت‌های پایگاه داده مانند شناسه (ID)، زمان ایجاد و زمان به‌روزرسانی نیز به ارث برده می‌شود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کد را بررسی و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. اتریبیوت Area کد: csharp [Area("Admin")] این اتریبیوت مشخص می‌کند که این کنترلر مربوط به منطقه (Area) "Admin" است. مناطق (Areas) در ASP.NET Core برای سازماندهی بخش‌های مختلف برنامه به صورت جداگانه استفاده می‌شوند. با استفاده از مناطق، می‌توانید بخش‌های مدیریتی، کاربری، و دیگر بخش‌ها را به صورت جداگانه مدیریت کنید. ۲. کلاس SlidersController کلاس: SlidersController csharp public class SlidersController : Controller { private readonly IAddNewSliderService _addNewSliderService; public SlidersController(IAddNewSliderService addNewSliderService) { _addNewSliderService = addNewSliderService; } public IActionResult Index() { return View(); } public IActionResult Add() { return View(); } [HttpPost] public IActionResult Add(IFormFile file, string link) { _addNewSliderService.Execute(file, link); return View(); } } توضیح بخش‌های مختلف کلاس: خصوصی _addNewSliderService: این فیلد به صورت خصوصی تعریف شده است و سرویس IAddNewSliderService را نگهداری می‌کند. هدف: استفاده از سرویس افزودن اسلایدر جدید. سازنده SlidersController: کد: csharp public SlidersController(IAddNewSliderService addNewSliderService) { _addNewSliderService = addNewSliderService; } این سازنده فیلد خصوصی _addNewSliderService را مقداردهی می‌کند. هدف: تزریق وابستگی (Dependency Injection) و فراهم کردن استفاده از سرویس IAddNewSliderService. اکشن Index: کد: csharp public IActionResult Index() { return View(); } این متد یک اکشن است که ویوی مربوط به صفحه اصلی اسلایدرها را باز می‌کند. هدف: نمایش صفحه اصلی اسلایدرها. اکشن Add (GET): کد: csharp public IActionResult Add() { return View(); } این متد یک اکشن GET است که ویوی مربوط به افزودن اسلایدر جدید را باز می‌کند. هدف: نمایش فرم افزودن اسلایدر جدید. اکشن Add (POST): کد: csharp [HttpPost] public IActionResult Add(IFormFile file, string link) { _addNewSliderService.Execute(file, link); return View(); } این متد یک اکشن POST است که درخواست افزودن اسلایدر جدید را پردازش می‌کند. پارامترها: IFormFile file: فایل تصویر اسلایدر. string link: لینک مرتبط با اسلایدر. عملیات: استفاده از سرویس IAddNewSliderService برای اجرای افزودن اسلایدر جدید. بازگرداندن ویوی افزودن اسلایدر. هدف: افزودن اسلایدر جدید به سیستم. نتیجه‌گیری این کنترلر به مدیریت اسلایدرها در بخش مدیریتی (Admin) برنامه می‌پردازد. شامل اکشن‌هایی برای نمایش صفحه اصلی اسلایدرها، نمایش فرم افزودن اسلایدر جدید، و پردازش درخواست افزودن اسلایدر جدید می‌باشد. این کنترلر از سرویس IAddNewSliderService استفاده می‌کند تا عملیات افزودن اسلایدر را به صورت جداگانه انجام دهد.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این کد را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. اتریبیوت Area کد: csharp [Area("Admin")] این اتریبیوت مشخص می‌کند که این کنترلر مربوط به منطقه (Area) "Admin" است. مناطق (Areas) در ASP.NET Core برای سازماندهی بخش‌های مختلف برنامه به صورت جداگانه استفاده می‌شوند. با استفاده از مناطق، می‌توانید بخش‌های مدیریتی، کاربری، و دیگر بخش‌ها را به صورت جداگانه مدیریت کنید. ۲. کلاس HomePageImagesController کلاس: HomePageImagesController csharp public class HomePageImagesController : Controller { private readonly IAddHomePageImagesService _addHomePageImagesService; public HomePageImagesController(IAddHomePageImagesService addHomePageImagesService) { _addHomePageImagesService = addHomePageImagesService; } public IActionResult Index() { return View(); } public IActionResult Add() { return View(); } [HttpPost] public IActionResult Add(IFormFile file, string link, ImageLocation imageLocation) { _addHomePageImagesService.Execute(new requestAddHomePageImagesDto { file = file, ImageLocation = imageLocation, Link = link, }); return View(); } } توضیح بخش‌های مختلف کلاس: خصوصی _addHomePageImagesService: این فیلد به صورت خصوصی تعریف شده است و سرویس IAddHomePageImagesService را نگهداری می‌کند. هدف: استفاده از سرویس افزودن تصاویر جدید به صفحه اصلی. سازنده HomePageImagesController: کد: csharp public HomePageImagesController(IAddHomePageImagesService addHomePageImagesService) { _addHomePageImagesService = addHomePageImagesService; } این سازنده فیلد خصوصی _addHomePageImagesService را مقداردهی می‌کند. هدف: تزریق وابستگی (Dependency Injection) و فراهم کردن استفاده از سرویس IAddHomePageImagesService. اکشن Index: کد: csharp public IActionResult Index() { return View(); } این متد یک اکشن است که ویوی مربوط به صفحه اصلی تصاویر صفحه اصلی را باز می‌کند. هدف: نمایش صفحه اصلی تصاویر صفحه اصلی. اکشن Add (GET): کد: csharp public IActionResult Add() { return View(); } این متد یک اکشن GET است که ویوی مربوط به افزودن تصویر جدید به صفحه اصلی را باز می‌کند. هدف: نمایش فرم افزودن تصویر جدید به صفحه اصلی. اکشن Add (POST): کد: csharp [HttpPost] public IActionResult Add(IFormFile file, string link, ImageLocation imageLocation) { _addHomePageImagesService.Execute(new requestAddHomePageImagesDto { file = file, ImageLocation = imageLocation, Link = link, }); return View(); } این متد یک اکشن POST است که درخواست افزودن تصویر جدید به صفحه اصلی را پردازش می‌کند. پارامترها: IFormFile file: فایل تصویر. string link: لینک مرتبط با تصویر. ImageLocation imageLocation: محل قرارگیری تصویر در صفحه اصلی. عملیات: استفاده از سرویس IAddHomePageImagesService برای اجرای افزودن تصویر جدید. بازگرداندن ویوی افزودن تصویر. هدف: افزودن تصویر جدید به صفحه اصلی سیستم. نتیجه‌گیری این کنترلر به مدیریت تصاویر صفحه اصلی در بخش مدیریتی (Admin) برنامه می‌پردازد. شامل اکشن‌هایی برای نمایش صفحه اصلی تصاویر، نمایش فرم افزودن تصویر جدید، و پردازش درخواست افزودن تصویر جدید می‌باشد. این کنترلر از سرویس IAddHomePageImagesService استفاده می‌کند تا عملیات افزودن تصویر را به صورت جداگانه انجام دهد.