Merge branch 'Feature/InstitutionContract/add-registration-style' into Main
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace _0_Framework.Exceptions;
|
||||
|
||||
@@ -14,16 +15,13 @@ public class BadRequestException:Exception
|
||||
Details = details;
|
||||
}
|
||||
|
||||
public string Details { get; }
|
||||
}
|
||||
|
||||
public class SmsServiceException:BadRequestException
|
||||
{
|
||||
|
||||
public SmsServiceException(string message, int expireTime) : base(message)
|
||||
public BadRequestException(string message, Dictionary<string, object?> extra) :
|
||||
base(message)
|
||||
{
|
||||
ExpireTime = expireTime;
|
||||
Extra = extra;
|
||||
}
|
||||
|
||||
public int ExpireTime { get; set; }
|
||||
public string Details { get; }
|
||||
public Dictionary<string,object> Extra { get; set; }
|
||||
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Diagnostics;
|
||||
@@ -24,37 +25,42 @@ public class CustomExceptionHandler : IExceptionHandler
|
||||
"Error Message: {exceptionMessage}, Time of occurrence {time}",
|
||||
exception.Message, DateTime.UtcNow);
|
||||
|
||||
(string Detail, string Title, int StatusCode) details = exception switch
|
||||
(string Detail, string Title, int StatusCode, Dictionary<string, object>? Extra) details = exception switch
|
||||
{
|
||||
InternalServerException =>
|
||||
(
|
||||
exception.Message,
|
||||
exception.GetType().Name,
|
||||
context.Response.StatusCode = StatusCodes.Status500InternalServerError
|
||||
context.Response.StatusCode = StatusCodes.Status500InternalServerError,
|
||||
null
|
||||
),
|
||||
BadRequestException =>
|
||||
BadRequestException bre =>
|
||||
(
|
||||
exception.Message,
|
||||
exception.GetType().Name,
|
||||
context.Response.StatusCode = StatusCodes.Status400BadRequest
|
||||
context.Response.StatusCode = StatusCodes.Status400BadRequest,
|
||||
bre.Extra
|
||||
),
|
||||
NotFoundException =>
|
||||
(
|
||||
exception.Message,
|
||||
exception.GetType().Name,
|
||||
context.Response.StatusCode = StatusCodes.Status404NotFound
|
||||
context.Response.StatusCode = StatusCodes.Status404NotFound,
|
||||
null
|
||||
),
|
||||
UnAuthorizeException =>
|
||||
(
|
||||
exception.Message,
|
||||
exception.GetType().Name,
|
||||
context.Response.StatusCode = StatusCodes.Status401Unauthorized
|
||||
context.Response.StatusCode = StatusCodes.Status401Unauthorized,
|
||||
null
|
||||
),
|
||||
_ =>
|
||||
(
|
||||
exception.Message,
|
||||
exception.GetType().Name,
|
||||
context.Response.StatusCode = StatusCodes.Status500InternalServerError
|
||||
context.Response.StatusCode = StatusCodes.Status500InternalServerError,
|
||||
null
|
||||
)
|
||||
};
|
||||
|
||||
@@ -63,9 +69,12 @@ public class CustomExceptionHandler : IExceptionHandler
|
||||
Title = details.Title,
|
||||
Detail = details.Detail,
|
||||
Status = details.StatusCode,
|
||||
Instance = context.Request.Path
|
||||
Instance = context.Request.Path,
|
||||
Extensions = details.Extra ?? new Dictionary<string, object>()
|
||||
};
|
||||
|
||||
|
||||
|
||||
problemDetails.Extensions.Add("traceId", context.TraceIdentifier);
|
||||
|
||||
await context.Response.WriteAsJsonAsync(problemDetails, cancellationToken: cancellationToken);
|
||||
|
||||
@@ -25,6 +25,7 @@ using CompanyManagment.App.Contracts.InstitutionContractContactinfo;
|
||||
using CompanyManagment.App.Contracts.PersonalContractingParty;
|
||||
using CompanyManagment.App.Contracts.Workshop;
|
||||
using CompanyManagment.EFCore.Migrations;
|
||||
using OfficeOpenXml.Packaging.Ionic.Zip;
|
||||
using PersianTools.Core;
|
||||
using ConnectedPersonnelViewModel = CompanyManagment.App.Contracts.Workshop.ConnectedPersonnelViewModel;
|
||||
using FinancialStatment = Company.Domain.FinancialStatmentAgg.FinancialStatment;
|
||||
@@ -1102,7 +1103,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
{
|
||||
return await _institutionContractRepository.GetVerificationDetails(id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public async Task<OperationResult<OtpResultViewModel>> SendVerifyOtp(Guid id)
|
||||
{
|
||||
@@ -1114,14 +1115,18 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
|
||||
if (institutionContract.VerificationStatus == InstitutionContractVerificationStatus.Verified)
|
||||
throw new BadRequestException("این قرارداد مالی قبلا تایید شده است");
|
||||
|
||||
|
||||
if (institutionContract.VerificationStatus == InstitutionContractVerificationStatus.PendingForVerify &&
|
||||
institutionContract.VerifyCodeCreation != DateTime.MinValue)
|
||||
{
|
||||
if (!institutionContract.CanResendVerifyCode)
|
||||
{
|
||||
throw new SmsServiceException("کد تایید قبلی هنوز منقضی نشده است",
|
||||
(int)institutionContract.ReSendTime.TotalSeconds - (int)(DateTime.Now - institutionContract.VerifyCodeCreation).TotalSeconds);
|
||||
throw new BadRequestException("کد تایید قبلی هنوز منقضی نشده است",
|
||||
new Dictionary<string, object>
|
||||
{
|
||||
{ "expireTime", (int)institutionContract.ReSendTime.TotalSeconds -
|
||||
(int)(DateTime.Now - institutionContract.VerifyCodeCreation).TotalSeconds }
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user