diff --git a/.version b/.version
index 99a3501..c8d091a 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-1.0.9.11
\ No newline at end of file
+1.2.10.12
\ No newline at end of file
diff --git a/Netina.Api/Controllers/BlogController.cs b/Netina.Api/Controllers/BlogController.cs
index 2b7bfe9..810ee12 100644
--- a/Netina.Api/Controllers/BlogController.cs
+++ b/Netina.Api/Controllers/BlogController.cs
@@ -1,7 +1,5 @@
-using Marten.Events;
-using Microsoft.Extensions.Options;
+using Microsoft.Extensions.Options;
using Netina.Domain.Entities.Blogs;
-using Netina.Domain.Entities.Products;
using System.Web;
namespace Netina.Api.Controllers;
diff --git a/Netina.Api/Controllers/SeedController.cs b/Netina.Api/Controllers/SeedController.cs
index 567361d..b614ab9 100644
--- a/Netina.Api/Controllers/SeedController.cs
+++ b/Netina.Api/Controllers/SeedController.cs
@@ -2,17 +2,11 @@
using Netina.Domain.Entities.Blogs;
namespace Netina.Api.Controllers;
-public class SeedController : ICarterModule
+public class SeedController(IWebHostEnvironment environment) : ICarterModule
{
- private readonly IWebHostEnvironment _environment;
-
- public SeedController(IWebHostEnvironment environment)
- {
- _environment = environment;
- }
public void AddRoutes(IEndpointRouteBuilder app)
{
- if (_environment.IsDevelopment())
+ if (environment.IsDevelopment())
{
var group = app.NewVersionedApi("Seed")
.MapGroup("api/seed");
diff --git a/Netina.Api/Netina.Api.csproj b/Netina.Api/Netina.Api.csproj
index fcdf1e1..4b4f600 100644
--- a/Netina.Api/Netina.Api.csproj
+++ b/Netina.Api/Netina.Api.csproj
@@ -6,8 +6,8 @@
enable
true
Linux
- 1.0.9.11
- 1.0.9.11
+ 1.2.10.12
+ 1.2.10.12
@@ -15,7 +15,7 @@
-
+
diff --git a/Netina.Api/Services/CurrentUserService.cs b/Netina.Api/Services/CurrentUserService.cs
index 02033b6..36739cd 100644
--- a/Netina.Api/Services/CurrentUserService.cs
+++ b/Netina.Api/Services/CurrentUserService.cs
@@ -3,24 +3,17 @@ using Netina.Repository.Abstracts;
namespace Netina.Api.Services;
-public class CurrentUserService : ICurrentUserService
+public class CurrentUserService(IHttpContextAccessor httpContextAccessor) : ICurrentUserService
{
- private readonly IHttpContextAccessor _httpContextAccessor;
-
- public CurrentUserService(IHttpContextAccessor httpContextAccessor)
- {
- _httpContextAccessor = httpContextAccessor;
- }
-
- public string? UserId => _httpContextAccessor.HttpContext?.User?.FindFirstValue(ClaimTypes.NameIdentifier);
- public string? RoleName => _httpContextAccessor.HttpContext?.User?.FindFirstValue(ClaimTypes.Role);
- public string? UserName => _httpContextAccessor.HttpContext?.User?.FindFirstValue(ClaimTypes.Name);
- public string? DeviceId => GetDeviceId(_httpContextAccessor.HttpContext);
+ public string? UserId => httpContextAccessor.HttpContext?.User?.FindFirstValue(ClaimTypes.NameIdentifier);
+ public string? RoleName => httpContextAccessor.HttpContext?.User?.FindFirstValue(ClaimTypes.Role);
+ public string? UserName => httpContextAccessor.HttpContext?.User?.FindFirstValue(ClaimTypes.Name);
+ public string? DeviceId => GetDeviceId(httpContextAccessor.HttpContext);
public bool IsAuthorized => GetAuthorized();
public JwtSecurityToken? JwtToken => GetJwtToken();
private JwtSecurityToken? GetJwtToken()
{
- var stream = _httpContextAccessor.HttpContext?.Request.Headers.Authorization.FirstOrDefault();
+ var stream = httpContextAccessor.HttpContext?.Request.Headers.Authorization.FirstOrDefault();
if (stream == null)
return null;
var handler = new JwtSecurityTokenHandler();
@@ -28,7 +21,7 @@ public class CurrentUserService : ICurrentUserService
return jsonToken as JwtSecurityToken;
}
- public List? Permissions => _httpContextAccessor.HttpContext?.User?.FindAll("Permission")?.Select(c => c.Value)?.ToList();
+ public List? Permissions => httpContextAccessor.HttpContext?.User?.FindAll("Permission")?.Select(c => c.Value)?.ToList();
private string? GetDeviceId(HttpContext? context)
{
@@ -52,9 +45,9 @@ public class CurrentUserService : ICurrentUserService
private bool GetAuthorized()
{
- if (_httpContextAccessor.HttpContext?.User.Identity == null)
+ if (httpContextAccessor.HttpContext?.User.Identity == null)
return false;
- return _httpContextAccessor.HttpContext.User.Identity.IsAuthenticated;
+ return httpContextAccessor.HttpContext.User.Identity.IsAuthenticated;
}
diff --git a/Netina.Api/WebFramework/Bases/ApiResultFilterAttribute.cs b/Netina.Api/WebFramework/Bases/ApiResultFilterAttribute.cs
index 740fb9f..4314c3d 100644
--- a/Netina.Api/WebFramework/Bases/ApiResultFilterAttribute.cs
+++ b/Netina.Api/WebFramework/Bases/ApiResultFilterAttribute.cs
@@ -1,7 +1,4 @@
-using Netina.Common.Models.Api;
-using Netina.Core.Models.Api;
-
-namespace Netina.Api.WebFramework.Bases;
+namespace Netina.Api.WebFramework.Bases;
public class ApiResultFactory
{
diff --git a/Netina.Api/WebFramework/Bases/CrudController.cs b/Netina.Api/WebFramework/Bases/CrudController.cs
index 5ee8f2a..83987c2 100644
--- a/Netina.Api/WebFramework/Bases/CrudController.cs
+++ b/Netina.Api/WebFramework/Bases/CrudController.cs
@@ -1,23 +1,13 @@
-using Netina.Common.Models.Entity;
-using Netina.Common.Models.Exception;
-using Netina.Common.Models.Mapper;
-using Netina.Repository.Repositories.Base.Contracts;
-
-namespace Netina.Api.WebFramework.Bases;
+namespace Netina.Api.WebFramework.Bases;
-public class CrudEndpoint where TEntity : ApiEntity, new()
+public class CrudEndpoint(
+ string endpointName)
+ where TEntity : ApiEntity, new()
{
- private readonly string _endpointName;
-
- public CrudEndpoint(string endpointName)
- {
- _endpointName = endpointName;
- }
-
public virtual void AddRoutes(IEndpointRouteBuilder app)
{
- var group = app.NewVersionedApi(_endpointName).MapGroup($"api/{_endpointName}");
+ var group = app.NewVersionedApi(endpointName).MapGroup($"api/{endpointName}");
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAll")
@@ -83,16 +73,11 @@ public class BaseController : ControllerBase
}
[Authorize(AuthenticationSchemes = "Bearer")]
-public class CrudController : BaseController
+public class CrudController(IRepositoryWrapper repositoryWrapper) : BaseController
where TDto : BaseDto, new()
where TEntity : ApiEntity, new()
{
- protected readonly IRepositoryWrapper _repositoryWrapper;
-
- public CrudController(IRepositoryWrapper repositoryWrapper)
- {
- _repositoryWrapper = repositoryWrapper;
- }
+ protected readonly IRepositoryWrapper _repositoryWrapper = repositoryWrapper;
// GET:Get All Entity
[HttpGet]
@@ -168,15 +153,10 @@ public class CrudController : BaseController
}
[Authorize(AuthenticationSchemes = "Bearer")]
-public class CrudController : BaseController
+public class CrudController(IRepositoryWrapper repositoryWrapper) : BaseController
where TEntity : ApiEntity, new()
{
- protected readonly IRepositoryWrapper _repositoryWrapper;
-
- public CrudController(IRepositoryWrapper repositoryWrapper)
- {
- _repositoryWrapper = repositoryWrapper;
- }
+ protected readonly IRepositoryWrapper _repositoryWrapper = repositoryWrapper;
// GET:Get All Entity
[HttpGet]
diff --git a/Netina.Api/WebFramework/Configurations/LoggerConfig.cs b/Netina.Api/WebFramework/Configurations/LoggerConfig.cs
index 57ba7f6..9dcea5d 100644
--- a/Netina.Api/WebFramework/Configurations/LoggerConfig.cs
+++ b/Netina.Api/WebFramework/Configurations/LoggerConfig.cs
@@ -1,6 +1,4 @@
-using Netina.Infrastructure.Models;
-
-namespace Netina.Api.WebFramework.Configurations;
+namespace Netina.Api.WebFramework.Configurations;
public static class LoggerConfig
{
diff --git a/Netina.Api/WebFramework/MiddleWares/ExceptionHandlerMiddleware.cs b/Netina.Api/WebFramework/MiddleWares/ExceptionHandlerMiddleware.cs
index 0f52832..9138cec 100644
--- a/Netina.Api/WebFramework/MiddleWares/ExceptionHandlerMiddleware.cs
+++ b/Netina.Api/WebFramework/MiddleWares/ExceptionHandlerMiddleware.cs
@@ -10,22 +10,11 @@ public static class ExceptionHandlerMiddlewareExtensions
}
}
-public class ExceptionHandlerMiddleware
+public class ExceptionHandlerMiddleware(
+ RequestDelegate next,
+ IWebHostEnvironment env,
+ ILogger logger)
{
- private readonly IWebHostEnvironment _env;
- private readonly ILogger _logger;
- private readonly RequestDelegate _next;
-
- public ExceptionHandlerMiddleware(
- RequestDelegate next,
- IWebHostEnvironment env,
- ILogger logger)
- {
- _next = next;
- _env = env;
- _logger = logger;
- }
-
public async Task Invoke(HttpContext context)
{
string message = null;
@@ -34,17 +23,17 @@ public class ExceptionHandlerMiddleware
try
{
- await _next(context);
+ await next(context);
}
catch (BaseApiException exception)
{
- _logger.LogError(exception, exception.Message);
+ logger.LogError(exception, exception.Message);
httpStatusCode = exception.ApiStatusCode == ApiResultStatusCode.NotFound ? HttpStatusCode.NotFound :
exception.ApiStatusCode == ApiResultStatusCode.BadRequest ?
HttpStatusCode.BadRequest : exception.HttpStatusCode;
apiStatusCode = exception.ApiStatusCode;
- if (_env.IsDevelopment())
+ if (env.IsDevelopment())
{
var dic = new Dictionary
{
@@ -82,19 +71,19 @@ public class ExceptionHandlerMiddleware
}
catch (SecurityTokenExpiredException exception)
{
- _logger.LogError(exception, exception.Message);
+ logger.LogError(exception, exception.Message);
SetUnAuthorizeResponse(exception);
await WriteToResponseAsync();
}
catch (UnauthorizedAccessException exception)
{
- _logger.LogError(exception, exception.Message);
+ logger.LogError(exception, exception.Message);
SetUnAuthorizeResponse(exception);
await WriteToResponseAsync();
}
catch (ApiException apiException)
{
- _logger.LogError(apiException, apiException.Message);
+ logger.LogError(apiException, apiException.Message);
httpStatusCode = HttpStatusCode.InternalServerError;
apiStatusCode = ApiResultStatusCode.RefitError;
@@ -105,9 +94,9 @@ public class ExceptionHandlerMiddleware
}
catch (Exception exception)
{
- _logger.LogError(exception, exception.Message);
+ logger.LogError(exception, exception.Message);
- if (_env.IsDevelopment())
+ if (env.IsDevelopment())
{
if (exception?.InnerException?.Message != null)
{
@@ -185,7 +174,7 @@ public class ExceptionHandlerMiddleware
httpStatusCode = HttpStatusCode.Unauthorized;
apiStatusCode = ApiResultStatusCode.UnAuthorized;
- if (_env.IsDevelopment())
+ if (env.IsDevelopment())
{
var dic = new Dictionary
{
diff --git a/Netina.Api/WebFramework/MiddleWares/PerformanceMiddleware.cs b/Netina.Api/WebFramework/MiddleWares/PerformanceMiddleware.cs
index 1c60ee2..deba7c7 100644
--- a/Netina.Api/WebFramework/MiddleWares/PerformanceMiddleware.cs
+++ b/Netina.Api/WebFramework/MiddleWares/PerformanceMiddleware.cs
@@ -8,28 +8,19 @@ public static class PerformanceMiddlewareExtensions
}
}
-public class PerformanceMiddleware
+public class PerformanceMiddleware(
+ RequestDelegate next,
+ ILogger logger)
{
- private readonly ILogger _logger;
- private readonly RequestDelegate _next;
- private readonly Stopwatch _timer;
-
- public PerformanceMiddleware(
- RequestDelegate next,
- ILogger logger)
- {
- _next = next;
- _logger = logger;
- _timer = new Stopwatch();
- }
+ private readonly Stopwatch _timer = new();
public async System.Threading.Tasks.Task Invoke(HttpContext context)
{
_timer.Start();
- await _next(context);
+ await next(context);
_timer.Stop();
var elapsedMilliseconds = _timer.ElapsedMilliseconds;
- _logger.LogWarning($"REQUEST TIMER : {elapsedMilliseconds}");
+ logger.LogWarning($"REQUEST TIMER : {elapsedMilliseconds}");
}
}
\ No newline at end of file
diff --git a/Netina.Api/WebFramework/Swagger/SwaggerConfiguration.cs b/Netina.Api/WebFramework/Swagger/SwaggerConfiguration.cs
index 564e0bc..fee719a 100644
--- a/Netina.Api/WebFramework/Swagger/SwaggerConfiguration.cs
+++ b/Netina.Api/WebFramework/Swagger/SwaggerConfiguration.cs
@@ -1,6 +1,5 @@
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.OpenApi.Models;
-using Netina.Common.Extensions;
using Pluralize.NET;
using Swashbuckle.AspNetCore.SwaggerGen;
using Swashbuckle.AspNetCore.SwaggerUI;
@@ -139,17 +138,12 @@ public class SetVersionInPaths : IDocumentFilter
}
}
-public class UnauthorizedResponsesOperationFilter : IOperationFilter
+public class UnauthorizedResponsesOperationFilter(
+ bool includeUnauthorizedAndForbiddenResponses,
+ string schemeName = "Bearer")
+ : IOperationFilter
{
- private readonly bool includeUnauthorizedAndForbiddenResponses;
- private readonly string schemeName;
-
- public UnauthorizedResponsesOperationFilter(bool includeUnauthorizedAndForbiddenResponses,
- string schemeName = "Bearer")
- {
- this.includeUnauthorizedAndForbiddenResponses = includeUnauthorizedAndForbiddenResponses;
- this.schemeName = schemeName;
- }
+ private readonly string schemeName = schemeName;
public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
diff --git a/Netina.Common/Extensions/StringExtensions.cs b/Netina.Common/Extensions/StringExtensions.cs
index 95d59a7..a8f7577 100644
--- a/Netina.Common/Extensions/StringExtensions.cs
+++ b/Netina.Common/Extensions/StringExtensions.cs
@@ -1,5 +1,4 @@
using System.Web;
-using System.Xml.Linq;
namespace Netina.Common.Extensions
{
diff --git a/Netina.Common/Models/Entity/PageClassDisplay.cs b/Netina.Common/Models/Entity/PageClassDisplay.cs
index ea80a2e..450ea17 100644
--- a/Netina.Common/Models/Entity/PageClassDisplay.cs
+++ b/Netina.Common/Models/Entity/PageClassDisplay.cs
@@ -1,25 +1,16 @@
namespace Netina.Common.Models.Entity
{
[AttributeUsage(AttributeTargets.Class)]
- public class PageClassDisplay : Attribute
+ public class PageClassDisplay(string name, string description) : Attribute
{
- private readonly string _description;
- private readonly string _name;
-
- public PageClassDisplay(string name, string description)
- {
- _name = name;
- _description = description;
- }
-
public string GetName()
{
- return _name;
+ return name;
}
public string GetDescription()
{
- return _description;
+ return description;
}
}
}
\ No newline at end of file
diff --git a/Netina.Core/BaseServices/AccountService.cs b/Netina.Core/BaseServices/AccountService.cs
index 3ac0f22..8be923e 100644
--- a/Netina.Core/BaseServices/AccountService.cs
+++ b/Netina.Core/BaseServices/AccountService.cs
@@ -1,53 +1,32 @@
namespace Netina.Core.BaseServices;
-public class AccountService : IAccountService
+public class AccountService(
+ UserManager userManager,
+ SignInManager userSignInManager,
+ IJwtService jwtService,
+ ICurrentUserService currentUserService,
+ IRepositoryWrapper repositoryWrapper,
+ ISmsService smsService,
+ IUserService managerUserService)
+ : IAccountService
{
-
- private readonly UserManager _userManager;
- private readonly SignInManager _userSignInManager;
- private readonly IJwtService _jwtService;
- private readonly ICurrentUserService _currentUserService;
- private readonly IRepositoryWrapper _repositoryWrapper;
- private readonly ISmsService _smsService;
- private readonly IUserService _managerUserService;
-
- public AccountService(
- UserManager userManager,
- SignInManager userSignInManager,
- IJwtService jwtService,
- ICurrentUserService currentUserService,
- IRepositoryWrapper repositoryWrapper,
- ISmsService smsService,
- IUserService managerUserService)
- {
- _userManager = userManager;
- _userSignInManager = userSignInManager;
- _jwtService = jwtService;
- _currentUserService = currentUserService;
- _repositoryWrapper = repositoryWrapper;
- _smsService = smsService;
- _managerUserService = managerUserService;
- }
-
-
-
public async Task ForgetPasswordAsync(string phoneNumber)
{
- var user = await _userManager.FindByNameAsync(phoneNumber);
+ var user = await userManager.FindByNameAsync(phoneNumber);
if (user != null)
{
var rand = new Random(DateTime.Now.Millisecond);
var newPass = rand.Next(1000000, 9000000).ToString();
if (!user.PhoneNumberConfirmed)
throw new AppException("شماره تلفن شما تایید نشده است و قابلیت استفاده از فراموشی رمز عبور را ندارید");
- var rp = await _userManager.RemovePasswordAsync(user);
+ var rp = await userManager.RemovePasswordAsync(user);
if (!rp.Succeeded)
throw new AppException(string.Join('-', rp.Errors.Select(e => e.Description)));
- var ap = await _userManager.AddPasswordAsync(user, newPass);
+ var ap = await userManager.AddPasswordAsync(user, newPass);
if (!ap.Succeeded)
throw new AppException(string.Join('-', ap.Errors.Select(e => e.Description)));
- await _smsService.SendForgerPasswordAsync(user.PhoneNumber, newPass);
+ await smsService.SendForgerPasswordAsync(user.PhoneNumber, newPass);
return true;
}
@@ -56,7 +35,7 @@ public class AccountService : IAccountService
public async Task CheckMemberShipAsync(string phoneNumber)
{
- var user = await _userManager.FindByNameAsync(phoneNumber);
+ var user = await userManager.FindByNameAsync(phoneNumber);
if (user == null)
return false;
return true;
@@ -67,23 +46,23 @@ public class AccountService : IAccountService
var newPhoneNumber = StringExtensions.CheckPhoneNumber(phoneNumber);
if (!PhoneNumberExtensions.CheckPhoneNumber(newPhoneNumber))
throw new AppException("شماره تلفن ارسالی اشتباه است");
- var user = await _userManager.FindByNameAsync(newPhoneNumber);
+ var user = await userManager.FindByNameAsync(newPhoneNumber);
if (user == null)
- user = await _managerUserService.CreateUserAsync(phoneNumber);
+ user = await managerUserService.CreateUserAsync(phoneNumber);
- var token = await _userManager.GenerateTwoFactorTokenAsync(user, "Phone");
- await _smsService.SendVerifyCodeAsync(newPhoneNumber, token);
+ var token = await userManager.GenerateTwoFactorTokenAsync(user, "Phone");
+ await smsService.SendVerifyCodeAsync(newPhoneNumber, token);
return new VerifyCodeResponseDto { SignUpStatus = SignUpStatus.StartSignOn };
}
public async Task> LoginWithPasswordAsync(string userName, string password, CancellationToken cancellationToken)
{
- var result = await _userSignInManager.PasswordSignInAsync(userName, password, false, false);
+ var result = await userSignInManager.PasswordSignInAsync(userName, password, false, false);
if (!result.Succeeded)
throw new AppException("رمز عبور یا نام کاربری اشتباه است");
- var admin = await _userManager.FindByNameAsync(userName);
+ var admin = await userManager.FindByNameAsync(userName);
if (admin == null)
throw new AppException("نام کاربری یا رمز عبور اشتباه است");
return await CompleteLogin(admin, cancellationToken);
@@ -91,11 +70,11 @@ public class AccountService : IAccountService
public async Task> LoginWithVerifyCodeAsync(string userName, string verifyCode, CancellationToken cancellationToken)
{
- var user = await _userManager.FindByNameAsync(userName);
+ var user = await userManager.FindByNameAsync(userName);
if (user == null)
throw new AppException("نام کاربری یا کد ارسالی اشتباه است", ApiResultStatusCode.NotFound);
- var verfiyResult = await _userManager.VerifyTwoFactorTokenAsync(user, "Phone", verifyCode);
+ var verfiyResult = await userManager.VerifyTwoFactorTokenAsync(user, "Phone", verifyCode);
if (verifyCode == "859585")
verfiyResult = true;
if (!verfiyResult)
@@ -104,7 +83,7 @@ public class AccountService : IAccountService
{
user.PhoneNumberConfirmed = true;
user.SignUpStatus = SignUpStatus.PhoneNumberVerified;
- var result = await _userManager.UpdateAsync(user);
+ var result = await userManager.UpdateAsync(user);
if (!result.Succeeded)
throw new AppException(string.Join('|', result.Errors));
}
@@ -113,9 +92,9 @@ public class AccountService : IAccountService
public async Task> CompleteSignUpAsync(SignUpRequestDto requestDto, CancellationToken cancellationToken)
{
- if (_currentUserService.UserId == null)
+ if (currentUserService.UserId == null)
throw new AppException("User Id is null");
- var user = await _userManager.FindByIdAsync(_currentUserService.UserId);
+ var user = await userManager.FindByIdAsync(currentUserService.UserId);
if (user == null)
throw new AppException("User not found", ApiResultStatusCode.NotFound);
if (user.SignUpStatus == SignUpStatus.SignUpCompleted)
@@ -132,19 +111,19 @@ public class AccountService : IAccountService
user.FirstName = requestDto.FirstName;
user.LastName = requestDto.LastName;
user.SignUpStatus = SignUpStatus.SignUpCompleted;
- var result = await _userManager.UpdateAsync(user);
+ var result = await userManager.UpdateAsync(user);
if (!result.Succeeded)
throw new AppException(string.Join('|', result.Errors.Select(e => e.Description)));
- var roleResult = await _userManager.AddToRoleAsync(user, "Customer");
+ var roleResult = await userManager.AddToRoleAsync(user, "Customer");
if (!roleResult.Succeeded)
throw new AppException(string.Join('|', roleResult.Errors.Select(e => e.Description)));
- _repositoryWrapper.SetRepository()
+ repositoryWrapper.SetRepository()
.Add(new Customer
{
UserId = user.Id,
});
- await _repositoryWrapper.SaveChangesAsync(default);
+ await repositoryWrapper.SaveChangesAsync(default);
return await CompleteLogin(user, cancellationToken);
}
@@ -153,8 +132,8 @@ public class AccountService : IAccountService
private async Task> CompleteLogin(ApplicationUser user, CancellationToken cancellationToken)
{
AccessToken jwt;
- var role = await _userManager.GetRolesAsync(user);
- jwt = await _jwtService.Generate(user, role.ToList());
+ var role = await userManager.GetRolesAsync(user);
+ jwt = await jwtService.Generate(user, role.ToList());
jwt.User.RoleName = jwt.RoleName;
return jwt;
}
diff --git a/Netina.Core/BaseServices/DashboardService.cs b/Netina.Core/BaseServices/DashboardService.cs
index 606b9a9..f259c66 100644
--- a/Netina.Core/BaseServices/DashboardService.cs
+++ b/Netina.Core/BaseServices/DashboardService.cs
@@ -2,38 +2,31 @@
namespace Netina.Core.BaseServices;
-public class DashboardService : IDashboardService
+public class DashboardService(IRepositoryWrapper repositoryWrapper, UserManager userManager)
+ : IDashboardService
{
- private readonly IRepositoryWrapper _repositoryWrapper;
- private readonly UserManager _userManager;
-
- public DashboardService(IRepositoryWrapper repositoryWrapper,UserManager userManager)
- {
- _repositoryWrapper = repositoryWrapper;
- _userManager = userManager;
- }
public async Task GetHomeDashboardAsyncTask(CancellationToken cancellationToken = default)
{
var response = new HomeDashboardDto
{
- BlogsCount = await _repositoryWrapper.SetRepository()
+ BlogsCount = await repositoryWrapper.SetRepository()
.TableNoTracking
.CountAsync(cancellationToken),
- ProductsCount = await _repositoryWrapper.SetRepository()
+ ProductsCount = await repositoryWrapper.SetRepository()
.TableNoTracking
.CountAsync(cancellationToken),
- TodayOrdersCount = await _repositoryWrapper.SetRepository()
+ TodayOrdersCount = await repositoryWrapper.SetRepository()
.TableNoTracking
.Where(o => o.OrderAt.Date == DateTime.Today.Date)
.CountAsync(cancellationToken),
- UnSubmittedOrdersCount = await _repositoryWrapper.SetRepository()
+ UnSubmittedOrdersCount = await repositoryWrapper.SetRepository()
.TableNoTracking
.Where(o => o.OrderStatus == OrderStatus.Paid || o.OrderStatus == OrderStatus.Submitted)
.CountAsync(cancellationToken),
- BrandsCount = await _repositoryWrapper.SetRepository()
+ BrandsCount = await repositoryWrapper.SetRepository()
.TableNoTracking
.CountAsync(cancellationToken),
- SubscribersCount = await _userManager.Users.CountAsync(cancellationToken)
+ SubscribersCount = await userManager.Users.CountAsync(cancellationToken)
};
return response;
@@ -45,19 +38,19 @@ public class DashboardService : IDashboardService
DateTime endOfThisMonth = startOfThisMonth.AddMonths(1);
var response = new OrderDashboardDto
{
- PayedOrdersCount = await _repositoryWrapper.SetRepository()
+ PayedOrdersCount = await repositoryWrapper.SetRepository()
.TableNoTracking
.Where(o=>o.IsPayed && o.OrderStatus==OrderStatus.Paid)
.CountAsync(cancellationToken),
- ThisMonthOrdersCount = await _repositoryWrapper.SetRepository()
+ ThisMonthOrdersCount = await repositoryWrapper.SetRepository()
.TableNoTracking
.Where(s => s.OrderAt.Date >= startOfThisMonth.Date && s.OrderAt.Date < endOfThisMonth.Date)
.CountAsync(cancellationToken),
- TodayOrdersCount = await _repositoryWrapper.SetRepository()
+ TodayOrdersCount = await repositoryWrapper.SetRepository()
.TableNoTracking
.Where(o => o.OrderAt.Date == DateTime.Now.Date)
.CountAsync(cancellationToken),
- UnSendOrdersCount = await _repositoryWrapper.SetRepository()
+ UnSendOrdersCount = await repositoryWrapper.SetRepository()
.TableNoTracking
.Where(o => o.IsPayed && o.OrderStatus == OrderStatus.Processing)
.CountAsync(cancellationToken)
diff --git a/Netina.Core/BaseServices/JwtService.cs b/Netina.Core/BaseServices/JwtService.cs
index 0ec4497..d8a28c5 100644
--- a/Netina.Core/BaseServices/JwtService.cs
+++ b/Netina.Core/BaseServices/JwtService.cs
@@ -1,21 +1,14 @@
namespace Netina.Core.BaseServices;
-public class JwtService : IJwtService
+public class JwtService(
+ IOptionsSnapshot siteSettings,
+ SignInManager userSignInManager,
+ RoleManager roleManager)
+ : IJwtService
{
- private readonly SignInManager _signInManager;
- private readonly RoleManager _roleManager;
- private readonly SiteSettings _siteSettings;
+ private readonly SiteSettings _siteSettings = siteSettings.Value;
- public JwtService(
- IOptionsSnapshot siteSettings,
- SignInManager userSignInManager,
- RoleManager roleManager)
- {
- _signInManager = userSignInManager;
- _roleManager = roleManager;
- _siteSettings = siteSettings.Value;
- }
public async Task> Generate(TUser user) where TUser : ApplicationUser
{
var tokenId = StringExtensions.GetId(8);
@@ -89,7 +82,7 @@ public class JwtService : IJwtService
private async Task> GetClaims(TUser baseUser, string jwtId) where TUser : ApplicationUser
{
- var clFac = (await _signInManager.ClaimsFactory.CreateAsync(baseUser));
+ var clFac = (await userSignInManager.ClaimsFactory.CreateAsync(baseUser));
var claims = new List();
claims.Add(new Claim("JwtID", jwtId));
claims.Add(new Claim(ClaimTypes.Name, baseUser.UserName));
@@ -108,10 +101,10 @@ public class JwtService : IJwtService
foreach (var roleName in roleNames)
{
- var applicationRole = await _roleManager.FindByNameAsync(roleName);
+ var applicationRole = await roleManager.FindByNameAsync(roleName);
if(applicationRole==null)
continue;
- var roleClaims = await _roleManager.GetClaimsAsync(applicationRole);
+ var roleClaims = await roleManager.GetClaimsAsync(applicationRole);
claims.AddRange(roleClaims);
claims.Add(new Claim(ClaimTypes.Role, applicationRole.EnglishName));
claims.Add(new Claim("RoleId", applicationRole.Id.ToString()));
diff --git a/Netina.Core/BaseServices/PageService.cs b/Netina.Core/BaseServices/PageService.cs
index e221faf..7f2625d 100644
--- a/Netina.Core/BaseServices/PageService.cs
+++ b/Netina.Core/BaseServices/PageService.cs
@@ -2,27 +2,22 @@
namespace Netina.Core.BaseServices;
-public class PageService : IPageService
+public class PageService(
+ IMartenRepositoryWrapper martenRepositoryWrapperWrapper,
+ ICurrentUserService currentUserService)
+ : IPageService
{
- private readonly IMartenRepositoryWrapper _martenRepositoryWrapper;
- private readonly ICurrentUserService _currentUserService;
-
- public PageService(IMartenRepositoryWrapper martenRepositoryWrapperWrapper, ICurrentUserService currentUserService)
- {
- _martenRepositoryWrapper = martenRepositoryWrapperWrapper;
- _currentUserService = currentUserService;
- }
public async Task GetPageAsync(Guid? id = null, string? pageName = null, string? pageSlug = null, string? type = null, CancellationToken cancellationToken = default)
{
BasePage? page = null;
if (id != null)
- page = await _martenRepositoryWrapper.SetRepository().GetEntityAsync(id.Value, cancellationToken);
+ page = await martenRepositoryWrapperWrapper.SetRepository().GetEntityAsync(id.Value, cancellationToken);
else if (pageSlug != null)
- page = await _martenRepositoryWrapper.SetRepository().GetEntityAsync(entity => entity.Slug == pageSlug, cancellationToken);
+ page = await martenRepositoryWrapperWrapper.SetRepository().GetEntityAsync(entity => entity.Slug == pageSlug, cancellationToken);
else if (pageName != null)
- page = await _martenRepositoryWrapper.SetRepository().GetEntityAsync(entity => entity.Title == pageName, cancellationToken);
+ page = await martenRepositoryWrapperWrapper.SetRepository().GetEntityAsync(entity => entity.Title == pageName, cancellationToken);
else if (type != null)
- page = await _martenRepositoryWrapper.SetRepository().GetEntityAsync(entity => entity.Type == type, cancellationToken);
+ page = await martenRepositoryWrapperWrapper.SetRepository().GetEntityAsync(entity => entity.Type == type, cancellationToken);
if (page == null)
throw new AppException("Page not found", ApiResultStatusCode.NotFound);
@@ -45,7 +40,7 @@ public class PageService : IPageService
public async Task> GetPagesAsync(CancellationToken cancellationToken = default)
{
List sDtos = new List();
- var pages = await _martenRepositoryWrapper.SetRepository().GetEntitiesAsync(cancellationToken);
+ var pages = await martenRepositoryWrapperWrapper.SetRepository().GetEntitiesAsync(cancellationToken);
foreach (var page in pages)
{
var dto = new BasePageSDto
@@ -79,23 +74,23 @@ public class PageService : IPageService
Type = entity.Type,
Slug = entity.Slug,
CreatedAt = DateTime.Now,
- CreatedBy = _currentUserService.UserName ?? string.Empty
+ CreatedBy = currentUserService.UserName ?? string.Empty
};
if (!basePage.Type.IsNullOrEmpty())
{
var type = Assembly.GetAssembly(typeof(DomainConfig))?.GetType(entity.Type);
basePage.Data = JsonConvert.SerializeObject(((JsonElement)entity.Data).Deserialize(type));
}
- await _martenRepositoryWrapper.SetRepository().AddOrUpdateEntityAsync(basePage, cancellationToken);
+ await martenRepositoryWrapperWrapper.SetRepository().AddOrUpdateEntityAsync(basePage, cancellationToken);
return true;
}
public async Task DeletePageAsync(Guid id, CancellationToken cancellationToken = default)
{
- var page = await _martenRepositoryWrapper.SetRepository().GetEntityAsync(p => p.Id == id, cancellationToken);
+ var page = await martenRepositoryWrapperWrapper.SetRepository().GetEntityAsync(p => p.Id == id, cancellationToken);
if (page == null)
throw new AppException("Page not found", ApiResultStatusCode.NotFound);
- await _martenRepositoryWrapper.SetRepository().RemoveEntityAsync(page, cancellationToken);
+ await martenRepositoryWrapperWrapper.SetRepository().RemoveEntityAsync(page, cancellationToken);
return true;
}
}
\ No newline at end of file
diff --git a/Netina.Core/BaseServices/SettingService.cs b/Netina.Core/BaseServices/SettingService.cs
index 4d11304..c31f0d0 100644
--- a/Netina.Core/BaseServices/SettingService.cs
+++ b/Netina.Core/BaseServices/SettingService.cs
@@ -1,21 +1,14 @@
-public class SettingService : ISettingService
+public class SettingService(IMartenRepositoryWrapper martenRepositoryWrapper) : ISettingService
{
- private readonly IMartenRepositoryWrapper _martenRepositoryWrapper;
-
- public SettingService(IMartenRepositoryWrapper martenRepositoryWrapper)
- {
- _martenRepositoryWrapper = martenRepositoryWrapper;
- }
-
public async Task