پروژه ASP.Net Core MVC (وب و سی شارپ)
صفحه بتدی و مرتب سازی
بیایید این بخش از کد کلاس را که از اینترفیس IGetProductForSiteService ارثبری کرده است، بررسی کنیم. این بخش از کد مربوط به مرتبسازی نتایج جستجوی محصولات بر اساس معیارهای مختلف است.
توضیح کد switch(ordering)
ساختار کلی کد:
csharp
switch(ordering)
{
case Ordering.NotOrder:
productQuery = productQuery.OrderByDescending(p => p.Id).AsQueryable();
break;
case Ordering.MostVisited:
productQuery = productQuery.OrderByDescending(p => p.ViewCount).AsQueryable();
break;
case Ordering.Bestselling:
break;
case Ordering.MostPopular:
break;
case Ordering.theNewest:
productQuery = productQuery.OrderByDescending(p => p.Id).AsQueryable();
break;
case Ordering.Cheapest:
productQuery = productQuery.OrderBy(p => p.Price).AsQueryable();
break;
case Ordering.theMostExpensive:
productQuery = productQuery.OrderByDescending(p => p.Price).AsQueryable();
break;
default:
break;
}
توضیح هر مورد:
case Ordering.NotOrder:
این مورد زمانی استفاده میشود که هیچ مرتبسازی خاصی انتخاب نشده باشد.
مرتبسازی بر اساس Id به صورت نزولی (از جدیدترین به قدیمیترین) انجام میشود.
case Ordering.MostVisited:
این مورد زمانی استفاده میشود که مرتبسازی بر اساس پربازدیدترین محصولات انتخاب شده باشد.
مرتبسازی بر اساس تعداد بازدید (ViewCount) به صورت نزولی (از بیشترین بازدید به کمترین) انجام میشود.
case Ordering.Bestselling:
این مورد زمانی استفاده میشود که مرتبسازی بر اساس پرفروشترین محصولات انتخاب شده باشد.
توجه داشته باشید که این مورد هنوز پیادهسازی نشده است.
case Ordering.MostPopular:
این مورد زمانی استفاده میشود که مرتبسازی بر اساس محبوبترین محصولات انتخاب شده باشد.
توجه داشته باشید که این مورد هنوز پیادهسازی نشده است.
case Ordering.theNewest:
این مورد زمانی استفاده میشود که مرتبسازی بر اساس جدیدترین محصولات انتخاب شده باشد.
مرتبسازی بر اساس Id به صورت نزولی (از جدیدترین به قدیمیترین) انجام میشود.
case Ordering.Cheapest:
این مورد زمانی استفاده میشود که مرتبسازی بر اساس ارزانترین محصولات انتخاب شده باشد.
مرتبسازی بر اساس قیمت (Price) به صورت صعودی (از ارزانترین به گرانترین) انجام میشود.
case Ordering.theMostExpensive:
این مورد زمانی استفاده میشود که مرتبسازی بر اساس گرانترین محصولات انتخاب شده باشد.
مرتبسازی بر اساس قیمت (Price) به صورت نزولی (از گرانترین به ارزانترین) انجام میشود.
default:
در صورتی که هیچ یک از موارد بالا تطبیق نداشته باشد، این بخش اجرا میشود.
اینجا هیچ عملیات خاصی انجام نمیشود و کنترل به خارج از switch منتقل میشود.
نتیجهگیری
این بخش از کد برای مرتبسازی نتایج جستجوی محصولات بر اساس معیارهای مختلف استفاده میشود. هر مورد در ساختار switch ترتیب خاصی از محصولات را مشخص میکند و نتایج جستجو را بر اساس آن ترتیب مرتبسازی میکند.
پروژه ASP.Net Core MVC (وب و سی شارپ)
صفحه بتدی و مرتب سازی
بیایید این بخش از کد را با هم بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفهای دارد.
توضیح کد
این کد یک نوار تب (tab) برای مرتبسازی محصولات بر اساس معیارهای مختلف ایجاد میکند. از تگهای HTML و برخی ویژگیهای خاص برای این منظور استفاده میشود.
کد:
html
<ul class="nav sort-tabs-options" id="myTab" role="tablist">
<li class="nav-item">
<a class="nav-link active" href="~/products?Searchkey=@Context.Request.Query["SearchKey"]&CatId=@Context.Request.Query["CatId"]&ordering=MostVisited" role="tab" aria-controls="Most-visited" aria-selected="true">پربازدیدترین</a>
</li>
<li class="nav-item">
<a class="nav-link" href="~/products?Searchkey=@Context.Request.Query["SearchKey"]&CatId=@Context.Request.Query["CatId"]&ordering=Bestselling" role="tab" aria-controls="Bestselling" aria-selected="false">پرفروشترین</a>
</li>
<li class="nav-item">
<a class="nav-link" href="~/products?Searchkey=@Context.Request.Query["SearchKey"]&CatId=@Context.Request.Query["CatId"]&ordering=Most-Popular" role="tab" aria-controls="Most-Popular" aria-selected="false">محبوبترین</a>
</li>
<li class="nav-item">
<a class="nav-link" href="~/products?Searchkey=@Context.Request.Query["SearchKey"]&CatId=@Context.Request.Query["CatId"]&ordering=newest" role="tab" aria-controls="newest" aria-selected="false">جدیدترین</a>
</li>
<li class="nav-item">
<a class="nav-link" href="~/products?Searchkey=@Context.Request.Query["SearchKey"]&CatId=@Context.Request.Query["CatId"]&ordering=cheapest" role="tab" aria-controls="cheapest" aria-selected="false">ارزانترین</a>
</li>
<li class="nav-item">
<a class="nav-link" href="~/products?Searchkey=@Context.Request.Query["SearchKey"]&CatId=@Context.Request.Query["CatId"]&ordering=most-expensive" role="tab" aria-controls="most-expensive" aria-selected="false">گرانترین</a>
</li>
</ul>
توضیح جزئیات:
تگ <ul>:
class="nav sort-tabs-options":
این کلاسها به نوار تب استایلدهی میکنند. nav معمولاً از فریمورک Bootstrap برای نوار ناوبری استفاده میشود.
id="myTab":
شناسه نوار تب را مشخص میکند.
role="tablist":
این ویژگی به صفحهخوانها و دستگاههای دسترسیپذیری اطلاع میدهد که این عنصر یک لیست از تبها است.
تگهای <li>:
class="nav-item":
این کلاس به هر آیتم تب استایلدهی میکند. nav-item از فریمورک Bootstrap استفاده میشود.
تگهای <a>:
class="nav-link active":
این کلاس به لینکهای تب استایلدهی میکند. nav-link از فریمورک Bootstrap استفاده میشود. active برای تب فعال استفاده میشود.
href="~/products?Searchkey=@Context.Request.Query["SearchKey"]&CatId=@Context.Request.Query["CatId"]&ordering=MostVisited":
آدرس URL مقصد را برای لینک تب مشخص میکند. این URL شامل پارامترهای جستجو و مرتبسازی است که از کوئری استرینگ گرفته شده است.
role="tab":
این ویژگی به صفحهخوانها و دستگاههای دسترسیپذیری اطلاع میدهد که این لینک یک تب است.
aria-controls="Most-visited":
این ویژگی به صفحهخوانها اطلاع میدهد که این تب کدام بخش از محتوا را کنترل میکند.
aria-selected="true/false":
این ویژگی مشخص میکند که آیا این تب در حال حاضر انتخاب شده است یا خیر. true برای تب فعال و false برای تبهای غیرفعال استفاده میشود.
توضیح تبهای مختلف:
پربازدیدترین (MostVisited):
مرتبسازی بر اساس پربازدیدترین محصولات.
آدرس URL مقصد شامل پارامترهای SearchKey، CatId و ordering برای مرتبسازی پربازدیدترین محصولات است.
پرفروشترین (Bestselling):
مرتبسازی بر اساس پرفروشترین محصولات.
آدرس URL مقصد شامل پارامترهای SearchKey، CatId و ordering برای مرتبسازی پرفروشترین محصولات است.
محبوبترین (MostPopular):
مرتبسازی بر اساس محبوبترین محصولات.
آدرس URL مقصد شامل پارامترهای SearchKey، CatId و ordering برای مرتبسازی محبوبترین محصولات است.
جدیدترین (newest):
مرتبسازی بر اساس جدیدترین محصولات.
آدرس URL مقصد شامل پارامترهای SearchKey، CatId و ordering برای مرتبسازی جدیدترین محصولات است.
ارزانترین (cheapest):
مرتبسازی بر اساس ارزانترین محصولات.
آدرس URL مقصد شامل پارامترهای SearchKey، CatId و ordering برای مرتبسازی ارزانترین محصولات است.
گرانترین (most-expensive):
مرتبسازی بر اساس گرانترین محصولات.
پروژه ASP.Net Core MVC (وب و سی شارپ)
صفحه بتدی و مرتب سازی
آدرس URL مقصد شامل پارامترهای SearchKey، CatId و ordering برای مرتبسازی گرانترین محصولات است.
نتیجهگیری
این کد یک نوار تب ایجاد میکند که به کاربران اجازه میدهد محصولات را بر اساس معیارهای مختلف مانند پربازدیدترین، پرفروشترین، محبوبترین، جدیدترین، ارزانترین و گرانترین مرتبسازی کنند. هر تب شامل لینکی است که با کلیک بر روی آن، نتایج محصولات بر اساس معیار مشخص شده مرتبسازی و نمایش داده میشوند.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در packing manager console عبارت Add-Migration Test یا هر نامی که قابل فهم باشد و بعد Update-Datab
ودر پک منیجر Add-Migration Add_viewCount و در آخر Update-Database را بزنید
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 نیز انواع مختلف محل قرارگیری تصویر را مشخص میکند. این روش به شما امکان میدهد تصاویر را به صورت ساختاریافته و منظم مدیریت کنید.