feat: enhance institution contract creation with representative retrieval and code formatting improvements

This commit is contained in:
2025-12-30 14:25:11 +03:30
parent 12318a6a51
commit d11fdcf106
4 changed files with 254 additions and 206 deletions

View File

@@ -132,4 +132,5 @@ public interface IPersonalContractingPartyApp
#endregion
Task<long> GetRepresentativeIdByNationalCode(string nationalCode);
}

View File

@@ -722,5 +722,11 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
return await _personalContractingPartyRepository.GetLegalDetails(id);
}
public async Task<long> GetRepresentativeIdByNationalCode(string nationalCode)
{
var entity = await _personalContractingPartyRepository.GetByNationalCode(nationalCode);
return entity?.RepresentativeId??0;
}
#endregion
}

View File

@@ -5269,58 +5269,57 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
throw new BadRequestException("دیتای درخواست شده نامعتبر است");
}
if (contractingParty == null)
List<WorkshopTempViewModel> workshopDetails=[];
if (contractingParty != null)
{
throw new BadRequestException("طرف قرارداد یافت نشد");
var employerWorkshopIds = _context.Employers
.Where(x => x.ContractingPartyId == contractingParty.id)
.Include(x => x.WorkshopEmployers)
.SelectMany(x => x.WorkshopEmployers).Select(x => x.WorkshopId).Distinct().ToList();
var workshopsNotInInstitution = employerWorkshopIds.ToList();
var workshops = await _context.Workshops
.Where(x => employerWorkshopIds.Contains(x.id))
.ToListAsync();
var notIncludeWorskhopsLeftWork = await _context.LeftWorkList
.Where(x => workshopsNotInInstitution.Contains(x.WorkshopId) && x.StartWorkDate <= DateTime.Now &&
x.LeftWorkDate >= DateTime.Now)
.GroupBy(x => x.WorkshopId).ToListAsync();
workshopDetails = workshopsNotInInstitution.Select(x =>
{
var workshop = workshops.FirstOrDefault(w => w.id == x);
var leftWorks = notIncludeWorskhopsLeftWork.FirstOrDefault(l => l.Key == x);
return new WorkshopTempViewModel()
{
WorkshopName = workshop?.WorkshopName ?? "فاقد کارگاه",
WorkshopServicesAmount = 0,
WorkshopServicesAmountStr = "0",
WorkshopId = x,
Id = 0,
ContractAndCheckout = false,
ContractAndCheckoutInPerson = false,
CustomizeCheckout = false,
CountPerson = leftWorks?.Count() ?? 0,
Insurance = false,
InsuranceInPerson = false,
RollCall = false,
RollCallInPerson = false,
};
}).ToList();
}
var employerWorkshopIds = _context.Employers
.Where(x => x.ContractingPartyId == contractingParty.id)
.Include(x => x.WorkshopEmployers)
.SelectMany(x => x.WorkshopEmployers).Select(x => x.WorkshopId).Distinct().ToList();
creationTemp.SetContractingPartyContactInfo(request.Address, request.City, request.Province,
request.ContactInfos,request.RepresentativeId);
await _institutionContractCreationTemp.ReplaceOneAsync(
x => x.Id == creationTemp.Id,
creationTemp
);
var workshopsNotInInstitution = employerWorkshopIds.ToList();
var workshops = await _context.Workshops
.Where(x => employerWorkshopIds.Contains(x.id))
.ToListAsync();
var notIncludeWorskhopsLeftWork = await _context.LeftWorkList
.Where(x => workshopsNotInInstitution.Contains(x.WorkshopId) && x.StartWorkDate <= DateTime.Now &&
x.LeftWorkDate >= DateTime.Now)
.GroupBy(x => x.WorkshopId).ToListAsync();
var workshopDetails = workshopsNotInInstitution.Select(x =>
{
var workshop = workshops.FirstOrDefault(w => w.id == x);
var leftWorks = notIncludeWorskhopsLeftWork.FirstOrDefault(l => l.Key == x);
return new WorkshopTempViewModel()
{
WorkshopName = workshop?.WorkshopName ?? "فاقد کارگاه",
WorkshopServicesAmount = 0,
WorkshopServicesAmountStr = "0",
WorkshopId = x,
Id = 0,
ContractAndCheckout = false,
ContractAndCheckoutInPerson = false,
CustomizeCheckout = false,
CountPerson = leftWorks?.Count() ?? 0,
Insurance = false,
InsuranceInPerson = false,
RollCall = false,
RollCallInPerson = false,
};
}).ToList();
var res = new InstitutionContractCreationWorkshopsResponse()
{
TotalAmount = workshopDetails.Sum(x => x.WorkshopServicesAmount).ToMoney(),

View File

@@ -40,16 +40,15 @@ public class institutionContractController : AdminBaseController
private readonly ITemporaryClientRegistrationApplication _clientRegistrationApplication;
private readonly IPaymentGateway _paymentGateway;
private static readonly ConcurrentDictionary<Guid, SemaphoreSlim> _locks
private static readonly ConcurrentDictionary<Guid, SemaphoreSlim> _locks
= new ConcurrentDictionary<Guid, SemaphoreSlim>();
public institutionContractController(IInstitutionContractApplication institutionContractApplication,
IPersonalContractingPartyApp contractingPartyApplication, IContactInfoApplication contactInfoApplication,
IAccountApplication accountApplication, IEmployerApplication employerApplication,
IWorkshopApplication workshopApplication, ITemporaryClientRegistrationApplication temporaryClientRegistration,
ITemporaryClientRegistrationApplication clientRegistrationApplication,IHttpClientFactory httpClientFactory)
ITemporaryClientRegistrationApplication clientRegistrationApplication, IHttpClientFactory httpClientFactory)
{
_institutionContractApplication = institutionContractApplication;
_contractingPartyApplication = contractingPartyApplication;
@@ -72,12 +71,13 @@ public class institutionContractController : AdminBaseController
{
return await _institutionContractApplication.GetList(searchModel);
}
[HttpGet("select-list")]
public async Task<ActionResult<List<InstitutionContractSelectListViewModel>>> GetContractingPartySelectList(string search,string selected)
public async Task<ActionResult<List<InstitutionContractSelectListViewModel>>> GetContractingPartySelectList(
string search, string selected)
{
var result = await _institutionContractApplication
.GetInstitutionContractSelectList(search,selected);
.GetInstitutionContractSelectList(search, selected);
return result;
}
@@ -225,9 +225,8 @@ public class institutionContractController : AdminBaseController
{
_institutionContractApplication.RemoveContract(id);
return new OperationResult().Succcedded();
}
[HttpPost("deActive/{id}")]
public ActionResult<OperationResult> DeActive(long id, string balance)
{
@@ -358,7 +357,8 @@ public class institutionContractController : AdminBaseController
}
[HttpPost("workshop-service-calculator")]
public ActionResult<WorkshopServiceCalculatorResponse> WorkshopServiceCalculator([FromBody]CreateWorkshopTemp command)
public ActionResult<WorkshopServiceCalculatorResponse> WorkshopServiceCalculator(
[FromBody] CreateWorkshopTemp command)
{
var workshopTemp = new WorkshopTempViewModel
{
@@ -373,7 +373,7 @@ public class institutionContractController : AdminBaseController
};
var response = _temporaryClientRegistration.GetInstitutionPlanForWorkshop(workshopTemp);
var result = new WorkshopServiceCalculatorResponse
{
TotalAmount = response.OnlineAndInPersonSumAmountStr
@@ -385,7 +385,8 @@ public class institutionContractController : AdminBaseController
public async Task<ActionResult<InstitutionPlanCalculatorResponse>> InstitutionPlanCalculator(
[FromBody] InstitutionPlanCalculatorRequest request)
{
var res = await _temporaryClientRegistration.GetTotalPaymentAndWorkshopList(request.TotalAmountMonth,duration: request.Duration,request.HasInPersonContract);
var res = await _temporaryClientRegistration.GetTotalPaymentAndWorkshopList(request.TotalAmountMonth,
duration: request.Duration, request.HasInPersonContract);
var result = new InstitutionPlanCalculatorResponse()
{
TotalAmountWithTax = res.OneTimeTotalPaymentStr,
@@ -403,7 +404,6 @@ public class institutionContractController : AdminBaseController
Obligation = res.OneTimeTotalPaymentStr,
PaymentForOneMonth = res.SumOfWorkshopsPayment,
DiscountedAmountForOneMonth = res.DiscountedAmountForOneMonth
};
return result;
}
@@ -414,13 +414,13 @@ public class institutionContractController : AdminBaseController
/// <param name="command"></param>
/// <returns></returns>
[HttpPost]
public async Task<ActionResult<OperationResult>> Create([FromBody]CreateInstitutionContractRequest command)
public async Task<ActionResult<OperationResult>> Create([FromBody] CreateInstitutionContractRequest command)
{
var res =await _institutionContractApplication.CreateAsync(command);
if(!res.IsSuccedded)
var res = await _institutionContractApplication.CreateAsync(command);
if (!res.IsSuccedded)
throw new BadRequestException(res.Message);
return res;
}
@@ -448,22 +448,26 @@ public class institutionContractController : AdminBaseController
if (operationResult.IsSuccedded)
transaction.Complete();
return operationResult;
}
[HttpPost("create/set-discount")]
public ActionResult<InstitutionContractDiscountResponse> SetDiscountForInstitutionContract([FromBody]InstitutionContractSetDiscountRequest request)
public ActionResult<InstitutionContractDiscountResponse> SetDiscountForInstitutionContract(
[FromBody] InstitutionContractSetDiscountRequest request)
{
var res = _institutionContractApplication.CalculateDiscount(request);
return res;
}
[HttpPost("create/reset-discount")]
public ActionResult<InstitutionContractDiscountResponse> ResetDiscountForCreate([FromBody]InstitutionContractResetDiscountForCreateRequest request)
public ActionResult<InstitutionContractDiscountResponse> ResetDiscountForCreate(
[FromBody] InstitutionContractResetDiscountForCreateRequest request)
{
var res = _institutionContractApplication.ResetDiscountCreate(request);
return res;
}
/// <summary>
///
/// </summary>
@@ -484,15 +488,15 @@ public class institutionContractController : AdminBaseController
var paymentRedirectUrl = Url.Action("ProcessPayment", "institutionContract", null, Request.Scheme);
var callback = Url.Action("Verify", "General", null, Request.Scheme);
var res = await _institutionContractApplication.VerifyOtpAndMakeGateway(command.Id, command.Code, callback);
if (!res.IsSuccedded)
return new OperationResult<string>().Failed(res.Message);
var payUrl = _paymentGateway.GetStartPayUrl(res.Data);
// URL کامل برای redirect شامل paymentUrl به عنوان query parameter
var redirectUrl = $"{paymentRedirectUrl}?paymentUrl={Uri.EscapeDataString(payUrl)}";
return new OperationResult<string>().Succcedded(redirectUrl);
}
@@ -504,13 +508,12 @@ public class institutionContractController : AdminBaseController
{
return BadRequest("Payment URL is required");
}
// redirect به درگاه پرداخت
return Redirect(paymentUrl);
}
[HttpPost("/api/institutionContract/Verification/{id:guid}/send-otp")]
[AllowAnonymous]
public async Task<ActionResult<OperationResult<OtpResultViewModel>>> SendVerifyOtp(Guid id)
@@ -529,52 +532,71 @@ public class institutionContractController : AdminBaseController
}
#region Create
[HttpPost("creation/inquiry/")]
public async Task<ActionResult<InstitutionContractCreationInquiryResult>> CreationInquiry(InstitutionContractCreationInquiryRequest request)
public async Task<ActionResult<InstitutionContractCreationInquiryResult>> CreationInquiry(
InstitutionContractCreationInquiryRequest request)
{
var res= await _institutionContractApplication.CreationInquiry(request);
var res = await _institutionContractApplication.CreationInquiry(request);
return res;
}
[HttpPost("creation/workshops")]
public async Task<ActionResult<InstitutionContractCreationWorkshopsResponse>> CreationWorkshops([FromBody] InstitutionContractCreationWorkshopsRequest request)
[HttpGet("creation/get-representative")]
public async Task<ActionResult<InstitutionContractCreationGetRepresentativeIdResponse>> GetRepresentatives(
string nationalCode)
{
var res =await _institutionContractApplication.GetCreationWorkshops(request);
var res = await _contractingPartyApplication.GetRepresentativeIdByNationalCode(nationalCode);
return new InstitutionContractCreationGetRepresentativeIdResponse()
{
RepresentativeId = res
};
}
[HttpPost("creation/workshops")]
public async Task<ActionResult<InstitutionContractCreationWorkshopsResponse>> CreationWorkshops(
[FromBody] InstitutionContractCreationWorkshopsRequest request)
{
var res = await _institutionContractApplication.GetCreationWorkshops(request);
return res;
}
[HttpPost("creation/institution-plan")]
public async Task<ActionResult<InstitutionContractCreationPlanResponse>> CreationInstitutionPlan([FromBody]InstitutionContractCreationPlanRequest request)
public async Task<ActionResult<InstitutionContractCreationPlanResponse>> CreationInstitutionPlan(
[FromBody] InstitutionContractCreationPlanRequest request)
{
var res =await _institutionContractApplication.GetCreationInstitutionPlan(request);
var res = await _institutionContractApplication.GetCreationInstitutionPlan(request);
return res;
}
[HttpPost("creation/payment-method")]
public async Task<ActionResult<InstitutionContractCreationPaymentResponse>> GetCreationPaymentMethod([FromBody]InstitutionContractCreationPaymentRequest request)
public async Task<ActionResult<InstitutionContractCreationPaymentResponse>> GetCreationPaymentMethod(
[FromBody] InstitutionContractCreationPaymentRequest request)
{
var res =await _institutionContractApplication.GetCreationPaymentMethod(request);
var res = await _institutionContractApplication.GetCreationPaymentMethod(request);
return res;
}
[HttpPost("creation/set-discount")]
public async Task<ActionResult<InstitutionContractDiscountResponse>> SetDiscountForCreation([FromBody]InstitutionContractSetDiscountForCreationRequest request)
public async Task<ActionResult<InstitutionContractDiscountResponse>> SetDiscountForCreation(
[FromBody] InstitutionContractSetDiscountForCreationRequest request)
{
var res =await _institutionContractApplication.SetDiscountForCreation(request);
var res = await _institutionContractApplication.SetDiscountForCreation(request);
return res;
}
[HttpPost("creation/reset-discount")]
public async Task<ActionResult<InstitutionContractDiscountResponse>> ResetDiscountForCreation([FromBody]InstitutionContractResetDiscountForExtensionRequest request)
public async Task<ActionResult<InstitutionContractDiscountResponse>> ResetDiscountForCreation(
[FromBody] InstitutionContractResetDiscountForExtensionRequest request)
{
var res =await _institutionContractApplication.ResetDiscountForCreation(request);
var res = await _institutionContractApplication.ResetDiscountForCreation(request);
return res;
}
[HttpPost("creation/complete")]
public async Task<ActionResult<OperationResult>> CreationComplete([FromBody]InstitutionContractExtensionCompleteRequest request)
public async Task<ActionResult<OperationResult>> CreationComplete(
[FromBody] InstitutionContractExtensionCompleteRequest request)
{
var res =await _institutionContractApplication.CreationComplete(request);
var res = await _institutionContractApplication.CreationComplete(request);
return res;
}
@@ -583,93 +605,104 @@ public class institutionContractController : AdminBaseController
[HttpGet("extenstion/inquiry/{previousContractId}")]
public async Task<ActionResult<InstitutionContractExtensionInquiryResult>> ExtensionInquiry(long previousContractId)
{
var res= await _institutionContractApplication.GetExtensionInquiry(previousContractId);
var res = await _institutionContractApplication.GetExtensionInquiry(previousContractId);
return res;
}
[HttpPost("extenstion/workshops")]
public async Task<ActionResult<InstitutionContractExtensionWorkshopsResponse>> ExtensionWorkshops([FromBody] InstitutionContractExtensionWorkshopsRequest request)
public async Task<ActionResult<InstitutionContractExtensionWorkshopsResponse>> ExtensionWorkshops(
[FromBody] InstitutionContractExtensionWorkshopsRequest request)
{
var res =await _institutionContractApplication.GetExtensionWorkshops(request);
var res = await _institutionContractApplication.GetExtensionWorkshops(request);
return res;
}
[HttpPost("extenstion/institution-plan")]
public async Task<ActionResult<InstitutionContractExtensionPlanResponse>> ExtensionInstitutionPlan([FromBody]InstitutionContractExtensionPlanRequest request)
public async Task<ActionResult<InstitutionContractExtensionPlanResponse>> ExtensionInstitutionPlan(
[FromBody] InstitutionContractExtensionPlanRequest request)
{
var res =await _institutionContractApplication.GetExtensionInstitutionPlan(request);
var res = await _institutionContractApplication.GetExtensionInstitutionPlan(request);
return res;
}
[HttpPost("extenstion/payment-method")]
public async Task<ActionResult<InstitutionContractExtensionPaymentResponse>> GetExtensionPaymentMethod([FromBody]InstitutionContractExtensionPaymentRequest request)
public async Task<ActionResult<InstitutionContractExtensionPaymentResponse>> GetExtensionPaymentMethod(
[FromBody] InstitutionContractExtensionPaymentRequest request)
{
var res =await _institutionContractApplication.GetExtensionPaymentMethod(request);
var res = await _institutionContractApplication.GetExtensionPaymentMethod(request);
return res;
}
[HttpPost("extension/set-discount")]
public async Task<ActionResult<InstitutionContractDiscountResponse>> SetDiscountForExtension([FromBody]InstitutionContractSetDiscountForExtensionRequest request)
public async Task<ActionResult<InstitutionContractDiscountResponse>> SetDiscountForExtension(
[FromBody] InstitutionContractSetDiscountForExtensionRequest request)
{
var res =await _institutionContractApplication.SetDiscountForExtension(request);
var res = await _institutionContractApplication.SetDiscountForExtension(request);
return res;
}
[HttpPost("extension/reset-discount")]
public async Task<ActionResult<InstitutionContractDiscountResponse>> ResetDiscountForExtension([FromBody]InstitutionContractResetDiscountForExtensionRequest request)
public async Task<ActionResult<InstitutionContractDiscountResponse>> ResetDiscountForExtension(
[FromBody] InstitutionContractResetDiscountForExtensionRequest request)
{
var res =await _institutionContractApplication.ResetDiscountForExtension(request);
var res = await _institutionContractApplication.ResetDiscountForExtension(request);
return res;
}
[HttpPost("extenstion/complete")]
public async Task<ActionResult<OperationResult>> ExtensionComplete([FromBody]InstitutionContractExtensionCompleteRequest request)
public async Task<ActionResult<OperationResult>> ExtensionComplete(
[FromBody] InstitutionContractExtensionCompleteRequest request)
{
var res =await _institutionContractApplication.ExtensionComplete(request);
var res = await _institutionContractApplication.ExtensionComplete(request);
return res;
}
[HttpGet("amendment/workshops/{institutionContractId}")]
public async Task<ActionResult<InstitutionContractAmendmentWorkshopsResponse>> GetAmendmentWorkshops(long institutionContractId)
public async Task<ActionResult<InstitutionContractAmendmentWorkshopsResponse>> GetAmendmentWorkshops(
long institutionContractId)
{
var res =await _institutionContractApplication.GetAmendmentWorkshops(institutionContractId);
var res = await _institutionContractApplication.GetAmendmentWorkshops(institutionContractId);
return res;
}
[HttpPost("resend-verify-link/{institutionContractId}")]
public async Task<OperationResult> ResendVerifyLink(long institutionContractId)
{
var res = await _institutionContractApplication.ResendVerifyLink(institutionContractId);
return res;
}
[HttpPost("amendment/insert-temp-workshops")]
public async Task<ActionResult<InsertAmendmentTempWorkshopResponse>> InsertAmendmentTempWorkshops([FromBody]InstitutionContractAmendmentTempWorkshopViewModel request)
public async Task<ActionResult<InsertAmendmentTempWorkshopResponse>> InsertAmendmentTempWorkshops(
[FromBody] InstitutionContractAmendmentTempWorkshopViewModel request)
{
var res =await _institutionContractApplication.InsertAmendmentTempWorkshops(request);
var res = await _institutionContractApplication.InsertAmendmentTempWorkshops(request);
return res;
}
[HttpDelete("amendment/remove-temp-workshops/{workshopTempId:guid}")]
public async Task<ActionResult> RemoveAmendmentWorkshops(Guid workshopTempId)
{
{
await _institutionContractApplication.RemoveAmendmentWorkshops(workshopTempId);
return Ok();
}
[HttpPost("amendment/payment-details")]
public async Task<ActionResult<InsitutionContractAmendmentPaymentResponse>> GetAmendmentPaymentDetails([FromBody]InsitutionContractAmendmentPaymentRequest request)
public async Task<ActionResult<InsitutionContractAmendmentPaymentResponse>> GetAmendmentPaymentDetails(
[FromBody] InsitutionContractAmendmentPaymentRequest request)
{
var res =await _institutionContractApplication.GetAmendmentPaymentDetails(request);
var res = await _institutionContractApplication.GetAmendmentPaymentDetails(request);
return res;
}
[HttpGet("edit-old/{id}")]
public ActionResult<EditInstitutionContract> GetEditOldDetails(long id)
public ActionResult<EditInstitutionContract> GetEditOldDetails(long id)
{
var representativList = new List<RepresentativeViewModel>();
var contractingPartyList = new List<PersonalContractingPartyViewModel>();
var res = _institutionContractApplication.GetDetails(id);
var representative = new RepresentativeViewModel
{
Id = res.RepresentativeId,
@@ -734,13 +767,14 @@ public class institutionContractController : AdminBaseController
res.ContractAmountOAlone = res.ContractAmountString;
res.ValueAddedTaxStr = "0";
}
return res;
}
[HttpPost("edit-old")]
public ActionResult<OperationResult> EditOld([FromBody] EditInstitutionContract command)
{
var op = new OperationResult();
var op = new OperationResult();
var phoneNumber = command.ContactInformationList.FirstOrDefault(x =>
x.SendSmsString == "true" && x.Position == "طرف قرارداد" && x.PhoneType == "شماره همراه");
var conractingParty = _contractingPartyApplication.GetDetails(command.ContractingPartyId);
@@ -754,57 +788,58 @@ public class institutionContractController : AdminBaseController
//if (string.IsNullOrWhiteSpace(command.HasValueAddedTax))
// command.HasValueAddedTax = "false";
var result = _institutionContractApplication.Edit(command);
var contractingPartyId = _institutionContractApplication.GetDetails(result.SendId);
var counter = command.ContactInformationList.Count;
var getOldContarct = _institutionContractApplication.NewSearch(new InstitutionContractSearchModel()
{ ContractingPartyId = contractingPartyId.ContractingPartyId, IsActiveString = "both" }).Where(x=>x.IsActiveString == "false" || x.IsActiveString == "blue").ToList();
if (result.IsSuccedded && counter > 0)
{
if (getOldContarct.Count > 0)
{
foreach (var item in getOldContarct)
{
_contactInfoApplication.RemoveContactInfo(item.Id);
foreach (var phone in command.ContactInformationList)
{
if (phone.PhoneNumber != null)
{
var contactinfo = new CreateContactInfo
{
InstitutionContractId = item.Id,
PhoneType = phone.PhoneType,
Position = phone.Position,
PhoneNumber = phone.PhoneNumber,
FnameLname = phone.FnameLname,
SendSms = phone.SendSmsString == "true" ? true : false
};
_contactInfoApplication.Create(contactinfo);
}
var contractingPartyId = _institutionContractApplication.GetDetails(result.SendId);
var counter = command.ContactInformationList.Count;
var getOldContarct = _institutionContractApplication.NewSearch(new InstitutionContractSearchModel()
{ ContractingPartyId = contractingPartyId.ContractingPartyId, IsActiveString = "both" })
.Where(x => x.IsActiveString == "false" || x.IsActiveString == "blue").ToList();
if (result.IsSuccedded && counter > 0)
{
if (getOldContarct.Count > 0)
{
foreach (var item in getOldContarct)
{
_contactInfoApplication.RemoveContactInfo(item.Id);
foreach (var phone in command.ContactInformationList)
{
if (phone.PhoneNumber != null)
{
var contactinfo = new CreateContactInfo
{
InstitutionContractId = item.Id,
PhoneType = phone.PhoneType,
Position = phone.Position,
PhoneNumber = phone.PhoneNumber,
FnameLname = phone.FnameLname,
SendSms = phone.SendSmsString == "true" ? true : false
};
_contactInfoApplication.Create(contactinfo);
}
Thread.Sleep(500);
}
}
}
_contactInfoApplication.RemoveContactInfo(command.Id);
foreach (var item in command.ContactInformationList)
{
if (item.PhoneNumber != null)
{
var contactinfo = new CreateContactInfo
{
InstitutionContractId = result.SendId,
PhoneType = item.PhoneType,
Position = item.Position,
PhoneNumber = item.PhoneNumber,
FnameLname = item.FnameLname,
SendSms = item.SendSmsString == "true" ? true : false
};
_contactInfoApplication.Create(contactinfo);
}
Thread.Sleep(500);
}
}
}
Thread.Sleep(500);
}
_contactInfoApplication.RemoveContactInfo(command.Id);
foreach (var item in command.ContactInformationList)
{
if (item.PhoneNumber != null)
{
var contactinfo = new CreateContactInfo
{
InstitutionContractId = result.SendId,
PhoneType = item.PhoneType,
Position = item.Position,
PhoneNumber = item.PhoneNumber,
FnameLname = item.FnameLname,
SendSms = item.SendSmsString == "true" ? true : false
};
_contactInfoApplication.Create(contactinfo);
}
Thread.Sleep(500);
}
//ساخت اکانت کلاینت
@@ -814,7 +849,6 @@ public class institutionContractController : AdminBaseController
var checkExistAccount = _accountApplication.CheckExistClientAccount(userPass);
if (!checkExistAccount)
{
var createAcc = new RegisterAccount
{
Fullname = conractingParty.LName,
@@ -825,69 +859,72 @@ public class institutionContractController : AdminBaseController
};
var res = _accountApplication.RegisterClient(createAcc);
if (res.IsSuccedded)
_institutionContractApplication.CreateContractingPartyAccount(command.ContractingPartyId, res.SendId);
_institutionContractApplication.CreateContractingPartyAccount(command.ContractingPartyId,
res.SendId);
}
}
//Thread.Sleep(500);
//for (int i = 0; i <= counter - 1; i++)
//{
// if (command.ContactInformationList[i].PhoneNumber != null)
// {
//Thread.Sleep(500);
//for (int i = 0; i <= counter - 1; i++)
//{
// if (command.ContactInformationList[i].PhoneNumber != null)
// {
// var contactinfo = new CreateContactInfo()
// {
// InstitutionContractId = result.SendId,
// PhoneType = command.ContactInformationList[i].PhoneType,
// Position = command.ContactInformationList[i].Position,
// PhoneNumber = command.ContactInformationList[i].PhoneNumber,
// FnameLname = command.ContactInformationList[i].FnameLname,
// SendSms = command.ContactInformationList[i].SendSmsString == "true" ? true : false
// };
// _contactInfoApplication.Create(contactinfo);
// var contactinfo = new CreateContactInfo()
// {
// InstitutionContractId = result.SendId,
// PhoneType = command.ContactInformationList[i].PhoneType,
// Position = command.ContactInformationList[i].Position,
// PhoneNumber = command.ContactInformationList[i].PhoneNumber,
// FnameLname = command.ContactInformationList[i].FnameLname,
// SendSms = command.ContactInformationList[i].SendSmsString == "true" ? true : false
// };
// _contactInfoApplication.Create(contactinfo);
// }
// Thread.Sleep(500);
//}
// }
// Thread.Sleep(500);
//}
return result;
return result;
}
[HttpGet("print/{id}")]
public async Task<ActionResult<InstitutionContractPrintViewModel>> PrintOne(long id)
{
var res =await _institutionContractApplication.PrintOneAsync(id);
var res = await _institutionContractApplication.PrintOneAsync(id);
return res;
}
[HttpPost("mannual-verify/{id}")]
public async Task<ActionResult<OperationResult>> VerifyInstitutionContractManually(long id)
{
var res= await _institutionContractApplication.VerifyInstitutionContractManually(id);
var res = await _institutionContractApplication.VerifyInstitutionContractManually(id);
return res;
}
[HttpGet("excel-download")]
public async Task<IActionResult> ExcelDownload()
{
var searchModel = new InstitutionContractListSearchModel();
var dataVm=new List<InstitutionContractExcelViewModel>();
var dataVm = new List<InstitutionContractExcelViewModel>();
foreach (var name in typeof(InstitutionContractListStatus).GetEnumNames())
{
var @enum = Enum.Parse<InstitutionContractListStatus>(name);
searchModel.Status = @enum;
searchModel.PageSize = 99999;
var data =( await(_institutionContractApplication.GetList(searchModel))).List;
dataVm.Add(new InstitutionContractExcelViewModel(){Tab = @enum, GetInstitutionContractListItemsViewModels = data});
var data = (await (_institutionContractApplication.GetList(searchModel))).List;
dataVm.Add(new InstitutionContractExcelViewModel()
{ Tab = @enum, GetInstitutionContractListItemsViewModels = data });
}
searchModel.Status = null;
var nullData = ( await(_institutionContractApplication.GetList(searchModel))).List;
dataVm.Add(new InstitutionContractExcelViewModel(){Tab = null, GetInstitutionContractListItemsViewModels = nullData});
var nullData = (await (_institutionContractApplication.GetList(searchModel))).List;
dataVm.Add(new InstitutionContractExcelViewModel()
{ Tab = null, GetInstitutionContractListItemsViewModels = nullData });
var bytes = InstitutionContractExcelGenerator.GenerateExcel(dataVm);
return File(bytes,
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
@@ -895,6 +932,10 @@ public class institutionContractController : AdminBaseController
}
}
public class InstitutionContractCreationGetRepresentativeIdResponse
{
public long RepresentativeId { get; set; }
}
public class VerifyOtpRequest
{
@@ -933,10 +974,11 @@ public class WorkshopServiceCalculatorResponse
public string TotalAmount { get; set; }
}
public record InstitutionPlanCalculatorRequest(double TotalAmountMonth,bool HasInPersonContract,
public record InstitutionPlanCalculatorRequest(
double TotalAmountMonth,
bool HasInPersonContract,
InstitutionContractDuration Duration = InstitutionContractDuration.TwelveMonths);
public class VerifyCodeRequest
{
public long ContractingPartyId { get; set; }