fix (ControllerMethodsDescription) , fix(SlugExtension)

subProduct
Amir Hossein Khademi 2024-08-16 18:27:54 +03:30
parent be6f462708
commit 2e8501190e
29 changed files with 169 additions and 77 deletions

View File

@ -11,7 +11,7 @@ public class BlogCategoryController : ICarterModule
.MapGroup($"api/blog/category");
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllCategories")
.WithDisplayName("Get BlogCategories")
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
@ -20,14 +20,17 @@ public class BlogCategoryController : ICarterModule
group.MapPost("", Post)
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission,ApplicationPermission.ManageBlogs))
.WithDisplayName("Create BlogCategory")
.HasApiVersion(1.0);
group.MapPut("", Put)
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageBlogs))
.WithDisplayName("Update BlogCategory")
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageBlogs))
.WithDisplayName("Delete BlogCategory")
.HasApiVersion(1.0);
}

View File

@ -13,7 +13,7 @@ public class BlogController : ICarterModule
.MapGroup($"api/blog");
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllBlogs")
.WithDisplayName("Get Blogs")
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
@ -24,18 +24,21 @@ public class BlogController : ICarterModule
.RequireAuthorization(builder =>
builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser()
.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageBlogs))
.WithDisplayName("Create Blog")
.HasApiVersion(1.0);
group.MapPut("", Put)
.RequireAuthorization(builder =>
builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser()
.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageBlogs))
.WithDisplayName("Update Blog")
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.RequireAuthorization(builder =>
builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser()
.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageBlogs))
.WithDisplayName("Delete Blog")
.HasApiVersion(1.0);
group.MapGet("/newlink", GetBlogNewLinkAsync)

View File

@ -11,23 +11,26 @@ public class BrandController : ICarterModule
.MapGroup($"api/brand");
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllBrands")
.WithDisplayName("Get Brands")
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetBlogBrand")
.WithDisplayName("Get Brand")
.HasApiVersion(1.0);
group.MapPost("", Post)
.HasApiVersion(1.0)
.WithDisplayName("Create Brand")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageBrands));
group.MapPut("", Put)
.HasApiVersion(1.0)
.WithDisplayName("Update Brand")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageBrands));
group.MapDelete("{id}", Delete)
.HasApiVersion(1.0)
.WithDisplayName("Delete Brand")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageBrands));
}

View File

@ -9,7 +9,7 @@ public class DiscountController : ICarterModule
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser());
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllDiscounts")
.WithDisplayName("Get Discounts")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageDiscounts, ApplicationPermission.ViewDiscounts))
.HasApiVersion(1.0);
@ -20,14 +20,17 @@ public class DiscountController : ICarterModule
group.MapPost("", Post)
.HasApiVersion(1.0)
.WithDisplayName("Create Discount")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageDiscounts));
group.MapPut("", Put)
.HasApiVersion(1.0)
.WithDisplayName("Update Discount")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageDiscounts));
group.MapDelete("{id}", Delete)
.HasApiVersion(1.0)
.WithDisplayName("Delete Discount")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageDiscounts));
}

View File

@ -11,7 +11,7 @@ public class DistrictController : ICarterModule
.WithDisplayName("Get Cities")
.HasApiVersion(1.0);
group.MapGet("province", GetProvincesAsync)
.WithDisplayName("Get Cities")
.WithDisplayName("Get Provinces")
.HasApiVersion(1.0);
}

View File

@ -27,7 +27,7 @@ public class FaqController : ICarterModule
.HasApiVersion(1.0);
group.MapPut("", UpdateFaqAsync)
.WithDisplayName("Update FaqAsync")
.WithDisplayName("Update Faq")
.WithDescription("Update Faq , you can create new faq or create update your faq ")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer")
.RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageFaq))

View File

@ -11,12 +11,12 @@ public class FileController : ICarterModule
.MapGroup("api/file");
group.MapGet("", GetFilesAsync)
.WithDisplayName("GetFilesAsync")
.WithDisplayName("Get Files")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageFiles, ApplicationPermission.ViewFiles))
.HasApiVersion(1.0);
group.MapPost("", UploadFileAsync)
.WithDisplayName("UploadFileAsync")
.WithDisplayName("Upload File")
.HasApiVersion(1.0);
group.MapPost("/ckeditor", UploadCkEditorFileAsync)

View File

@ -11,9 +11,6 @@ public class HealthController : ICarterModule
group.MapGet("", GetHealth)
.WithDisplayName("Get Health")
.HasApiVersion(1.0);
group.MapGet("/error/test", () => { throw new Exception("Error test message");})
.WithDisplayName("GetHealth")
.HasApiVersion(1.0);
}
public async Task<IResult> GetHealth([FromServices]ISiteMapService siteMapService)

View File

@ -11,12 +11,12 @@ public class MarketerController : ICarterModule
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser());
group.MapGet("", GetMarketersAsync)
.WithDisplayName("GetAllMarketers")
.WithDisplayName("Get Marketers")
.RequireAuthorization(builder=>builder.RequireClaim(CustomClaimType.Permission,ApplicationPermission.ManageUsers , ApplicationPermission.ViewUsers))
.HasApiVersion(1.0);
group.MapGet("profile", GetMarketerProfileAsync)
.WithDisplayName("GetAllMarketers")
.WithDisplayName("Get Marketer Profile")
.HasApiVersion(1.0);
group.MapPost("signup", SignUpMarketerAsync)
@ -24,7 +24,7 @@ public class MarketerController : ICarterModule
.HasApiVersion(1.0);
group.MapGet("signup/contract", GetSignUpMarketerContractAsync)
.WithDisplayName("SignUpMarketerContract")
.WithDisplayName("Get Marketer Contract")
.HasApiVersion(1.0);
}

View File

@ -7,7 +7,7 @@ public class NewsletterMemberController : ICarterModule
var group = app.NewVersionedApi("Newsletter Members").MapGroup("api/newsletter/member");
group.MapGet("", GetAllMembersAsync)
.WithDisplayName("Get All Members")
.WithDisplayName("Get Members")
.HasApiVersion(1.0)
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewNewsletterMembers));

View File

@ -20,7 +20,7 @@ public class OrderBagController : ICarterModule
.HasApiVersion(1.0);
group.MapPost("add", AddProductToBagAsync)
.WithDisplayName("AddProductToBag")
.WithDisplayName("Add Product To OrderBag")
.HasApiVersion(1.0);
group.MapDelete("remove", RemoveFromOrderBagAsync)
@ -33,7 +33,7 @@ public class OrderBagController : ICarterModule
group.MapPost("discount/{orderId}", DiscountActionOrderBagAsync)
.WithDisplayName("DiscountActionOrderBag")
.WithDisplayName("Add Discount To OrderBag")
.HasApiVersion(1.0);

View File

@ -10,12 +10,12 @@ public class OrderController : ICarterModule
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser());
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllOrders")
.WithDisplayName("Get Orders")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewAllOrders , ApplicationPermission.ManageOrders))
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetOneOrder")
.WithDisplayName("Get Order")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewAllOrders, ApplicationPermission.ManageOrders))
.HasApiVersion(1.0);
@ -25,12 +25,12 @@ public class OrderController : ICarterModule
.HasApiVersion(1.0);
group.MapPost("{id}/cancel", CancelOrderStepAsync)
.WithDisplayName("ConfirmOrderStep")
.WithDisplayName("Cancel Order")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageOrders))
.HasApiVersion(1.0);
group.MapDelete("{id}", DeleteAsync)
.WithDisplayName("DeleteOneOrder")
.WithDisplayName("Delete Order")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageOrders))
.HasApiVersion(1.0);

View File

@ -12,6 +12,13 @@ public class PageController : ICarterModule
.HasApiVersion(1.0)
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewPages, ApplicationPermission.ManagePages));
group.MapGet("redirect/check", CheckRedirectedOldLinkAsync)
.WithDisplayName("Check Redirect OldLink")
.HasApiVersion(1.0);
group.MapGet("deleted/check", CheckDeletedLinkAsync)
.WithDisplayName("Check Deleted Link")
.HasApiVersion(1.0);
group.MapGet("{id}", GetPageByIdAsync)
.WithDisplayName("Get Page")
@ -31,7 +38,6 @@ public class PageController : ICarterModule
.HasApiVersion(1.0)
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManagePages));
group.MapDelete("{id}", DeletePageByIdAsync)
.WithDisplayName("Delete Page")
.HasApiVersion(1.0)
@ -39,6 +45,12 @@ public class PageController : ICarterModule
}
private async Task<IResult> CheckDeletedLinkAsync([FromQuery] string link, [FromServices] IPageService pageService, CancellationToken cancellationToken)
=> TypedResults.Ok(await pageService.CheckDeletedAsync(link, cancellationToken));
private async Task<IResult> CheckRedirectedOldLinkAsync([FromQuery] string oldUrl, [FromServices] IPageService pageService, CancellationToken cancellationToken)
=> TypedResults.Content(await pageService.CheckRedirectAsync(oldUrl, cancellationToken));
private async Task<IResult> DeletePageByIdAsync([FromRoute]Guid id,[FromServices]IPageService pageService,CancellationToken cancellationToken)
=> TypedResults.Ok(await pageService.DeletePageAsync(id, cancellationToken));

View File

@ -22,6 +22,7 @@ public class PaymentController : ICarterModule
// .HasApiVersion(1.0);
group.MapGet("verify", VerifyPaymentAsync)
.WithDisplayName("Verify Payment")
.HasApiVersion(1.0);
}

View File

@ -9,22 +9,25 @@ public class ProductCategoryController : ICarterModule
.MapGroup($"api/product/category");
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllCategories")
.WithDisplayName("Get ProductCategories")
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetCategory")
.WithDisplayName("Get ProductCategory")
.HasApiVersion(1.0);
group.MapPost("", Post)
.WithDisplayName("Create ProductCategory")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission,ApplicationPermission.ManageProducts))
.HasApiVersion(1.0);
group.MapPut("", Put)
.WithDisplayName("Update ProductCategory")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageProducts))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.WithDisplayName("Delete ProductCategory")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageProducts))
.HasApiVersion(1.0);
}

View File

@ -11,30 +11,35 @@ public class ProductController : ICarterModule
.MapGroup($"api/product");
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllProducts")
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("Get Products")
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("Get Product")
.HasApiVersion(1.0);
group.MapPost("", Post)
.WithDisplayName("Create Product")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageProducts))
.HasApiVersion(1.0);
group.MapPut("", Put)
.WithDisplayName("Update Product")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageProducts))
.HasApiVersion(1.0);
group.MapPut("{productId}/displayed", ChangeDisplayedAsync)
.WithDisplayName("Change Product Display")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageProducts))
.HasApiVersion(1.0);
group.MapPut("{productId}/cost", ChangeCostAsync)
.WithDisplayName("Change Product Cost")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageProducts))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.WithDisplayName("Delete Product")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageProducts))
.HasApiVersion(1.0);
}

View File

@ -8,27 +8,27 @@ public class ProductReviewController : ICarterModule
.MapGroup("product/review");
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetOneAsync")
.WithDisplayName("Get ProductReview")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewAllReviews,ApplicationPermission.ManageReview))
.HasApiVersion(1.0);
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllAsync")
.WithDisplayName("Get ProductReview")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewAllReviews, ApplicationPermission.ManageReview))
.HasApiVersion(1.0);
group.MapPost("", PostAsync)
.WithDisplayName("PostReview")
.WithDisplayName("Create ProductReview")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageReview, ApplicationPermission.AddReview))
.HasApiVersion(1.0);
group.MapPut("confirm/{id}", ConfirmAsync)
.WithDisplayName("ConfirmAsync")
.WithDisplayName("Confirm ProductReview")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ConfirmReview, ApplicationPermission.ManageReview))
.HasApiVersion(1.0);
group.MapDelete("{id}", DeleteAsync)
.WithDisplayName("DeleteAsync")
.WithDisplayName("Delete ProductReview")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageReview))
.HasApiVersion(1.0);
}

View File

@ -11,12 +11,12 @@ public class RoleController : ICarterModule
.MapGroup($"api/user/role");
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllRoles")
.WithDisplayName("Get Roles")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewRoles, ApplicationPermission.ManageRoles))
.HasApiVersion(1.0);
group.MapGet("permission", GetAllPermissions)
.WithDisplayName("GetAllPermissions")
.WithDisplayName("Get Permissions")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewRoles, ApplicationPermission.ManageRoles))
.HasApiVersion(1.0);
@ -26,14 +26,17 @@ public class RoleController : ICarterModule
.HasApiVersion(1.0);
group.MapPost("", Post)
.WithDisplayName("Create Role")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoles))
.HasApiVersion(1.0);
group.MapPut("", Put)
.WithDisplayName("Update Role")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoles))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.WithDisplayName("Delete Role")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoles))
.HasApiVersion(1.0);
}

View File

@ -13,7 +13,7 @@ public class ScraperController : ICarterModule
.HasApiVersion(1.0);
group.MapPost("digi/{productId}", AddProductToShopAsync)
.WithDisplayName("AddProductToShop")
.WithDisplayName("Add DigiProduct To Shop")
.HasApiVersion(1.0);
}

View File

@ -10,19 +10,19 @@ public class SearchController : ICarterModule
group.MapGet("/thumb", SearchThumbAsync)
.WithDisplayName("Thumb Search Async")
.WithDisplayName("Thumb Search")
.HasApiVersion(1.0);
group.MapGet("zarehbin", ZarehbinAsync)
.WithDisplayName("Search Async")
.WithDisplayName("Get Zarehbin Product")
.HasApiVersion(1.0);
group.MapGet("torob", TorobAsync)
.WithDisplayName("Get Torob Product Async")
.WithDisplayName("Get Torob Product")
.HasApiVersion(1.0);
group.MapGet("emalls", EmallsAsync)
.WithDisplayName("Get Emalls Product Async")
.WithDisplayName("Get Emalls Product")
.HasApiVersion(1.0);
}

View File

@ -15,7 +15,7 @@ public class SettingController : ICarterModule
.HasApiVersion(1.0);
group.MapPost("{settingName}", PostSettingAsync)
.WithDisplayName("PostSettingAsync")
.WithDisplayName("Create Setting")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageSettings))
.HasApiVersion(1.0);
}

View File

@ -9,7 +9,7 @@ public class ShippingController : ICarterModule
.MapGroup($"api/warehouse/shipping");
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllShipping")
.WithDisplayName("Get Shipping")
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
@ -18,14 +18,17 @@ public class ShippingController : ICarterModule
.HasApiVersion(1.0);
group.MapPost("", Post)
.WithDisplayName("Create Shipping")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShipping))
.HasApiVersion(1.0);
group.MapPut("", Put)
.WithDisplayName("Update Shipping")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShipping))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.WithDisplayName("Delete Shipping")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShipping))
.HasApiVersion(1.0);
}

View File

@ -13,7 +13,7 @@ public class UserAddressController : ICarterModule
.HasApiVersion(1.0);
group.MapPost("", PostAddressesAsync)
.WithDisplayName("Post Addresses")
.WithDisplayName("Create Addresses")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser())
.HasApiVersion(1.0);

View File

@ -17,7 +17,7 @@ public class UserController : ICarterModule
.HasApiVersion(1.0);
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllUsers")
.WithDisplayName("Get Users")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewUsers, ApplicationPermission.ManageUsers))
.HasApiVersion(1.0);
@ -27,7 +27,7 @@ public class UserController : ICarterModule
.HasApiVersion(1.0);
group.MapGet("/order", GetUserOrdersAsync)
.WithDisplayName("GetUserOrders")
.WithDisplayName("Get UserOrders By JWT")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewMineOrders))
.HasApiVersion(1.0);
@ -42,14 +42,17 @@ public class UserController : ICarterModule
.HasApiVersion(1.0);
group.MapPost("", Post)
.WithDisplayName("Create User")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageUsers))
.HasApiVersion(1.0);
group.MapPut("", Put)
.WithDisplayName("Update User")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageUsers))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.WithDisplayName("Delete User")
.RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser().RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageUsers))
.HasApiVersion(1.0);
}

View File

@ -1,4 +1,5 @@
using System.Web;
using System.Net;
using System.Web;
namespace Netina.Common.Extensions
{
@ -9,7 +10,12 @@ namespace Netina.Common.Extensions
public static string GetSlug(string title)
{
return HttpUtility.UrlEncode(title.Replace(' ', '-'));
var splits = title.Split("/");
string outPut = string.Empty;
foreach (var split in splits)
outPut = outPut.IsNullOrEmpty() ? split : string.Concat(outPut, "/", WebUtility.UrlEncode( split.Replace(' ', '-')));
return outPut;
}
public static string ToPriceWhitPriceType(this long price, string priceType)
{

View File

@ -6,4 +6,7 @@ public interface IPageService : IScopedDependency
Task<List<BasePageSDto>> GetPagesAsync(CancellationToken cancellationToken = default);
Task<bool> CreatePageAsync(PageActionRequestDto entity, CancellationToken cancellationToken = default);
Task<bool> DeletePageAsync(Guid id, CancellationToken cancellationToken = default);
Task<string> CheckRedirectAsync(string oldUrl, CancellationToken cancellationToken);
Task<bool> CheckDeletedAsync(string url, CancellationToken cancellationToken);
}

View File

@ -1,10 +1,12 @@
using Netina.Domain.MartenEntities.Pages;
using Netina.Core.BaseServices.Abstracts;
using Netina.Domain.MartenEntities.Pages;
namespace Netina.Core.BaseServices;
public class PageService(
IMartenRepositoryWrapper martenRepositoryWrapperWrapper,
ICurrentUserService currentUserService)
ICurrentUserService currentUserService,
ISettingService settingService)
: IPageService
{
public async Task<BasePageSDto> GetPageAsync(Guid? id = null, string? pageName = null, string? pageSlug = null, string? type = null, CancellationToken cancellationToken = default)
@ -93,4 +95,30 @@ public class PageService(
await martenRepositoryWrapperWrapper.SetRepository<BasePage>().RemoveEntityAsync(page, cancellationToken);
return true;
}
public async Task<string> CheckRedirectAsync(string oldUrl, CancellationToken cancellationToken)
{
var setting = await settingService.GetSettingAsync(nameof(PageSetting), cancellationToken);
var oldEncode = StringExtensions.GetSlug(oldUrl);
if (setting is PageSetting pageSetting)
{
var newLink = pageSetting.RedirectItems.FirstOrDefault(f => f.OldUrl.ToLower().Trim() == oldEncode.ToLower().Trim());
if (newLink != null)
return newLink.NewUrl;
else
throw new BaseApiException(ApiResultStatusCode.NotFound, "Url not found");
}
throw new BaseApiException(ApiResultStatusCode.NotFound, "PageSetting not found");
}
public async Task<bool> CheckDeletedAsync(string url, CancellationToken cancellationToken)
{
var setting = await settingService.GetSettingAsync(nameof(PageSetting), cancellationToken);
if (setting is PageSetting pageSetting)
{
var newLink = pageSetting.DeletedPages.FirstOrDefault(f => f.Url.ToLower().Trim() == url.ToLower().Trim());
return newLink != null;
}
throw new BaseApiException(ApiResultStatusCode.NotFound, "PageSetting not found");
}
}

View File

@ -3,8 +3,7 @@ using Quartz;
namespace Netina.Core.QuartzServices;
public class SiteMapScheduledJob(ILogger<SiteMapScheduledJob> logger, ISiteMapService siteMapService)
: IJob
public class SiteMapScheduledJob(ILogger<SiteMapScheduledJob> logger, ISiteMapService siteMapService) : IJob
{
public async Task Execute(IJobExecutionContext context)
{

View File

@ -0,0 +1,17 @@
namespace Netina.Domain.MartenEntities.Settings;
public class PageSetting
{
public List<RedirectItem> RedirectItems { get; set; } = new();
public List<DeletedPageItem> DeletedPages { get; set; } = new();
}
public class DeletedPageItem
{
public string Url { get; set; } = string.Empty;
}
public class RedirectItem
{
public string OldUrl { get; set; } = string.Empty;
public string NewUrl { get; set; } = string.Empty;
}