Registration Worklow api
This commit is contained in:
@@ -213,4 +213,14 @@ public class PersonalContractingParty : EntityBase
|
||||
this.Gender = gender;
|
||||
this.IsAuthenticated = true;
|
||||
}
|
||||
|
||||
public void RegisterComplete(string fatherName, string idNumberSeri, string idNumberSerial, DateTime dateOfBirth, Gender gender)
|
||||
{
|
||||
this.FatherName = fatherName;
|
||||
this.IdNumberSeri = idNumberSeri;
|
||||
this.IdNumberSerial = idNumberSerial;
|
||||
this.DateOfBirth = dateOfBirth;
|
||||
this.Gender = gender;
|
||||
this.IsAuthenticated = true;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework_b.Domain;
|
||||
using CompanyManagment.App.Contracts.TemporaryClientRegistration;
|
||||
|
||||
@@ -15,4 +16,11 @@ public interface IInstitutionContractTempRepository : IRepository<long, Institut
|
||||
/// <param name="contractingPartyId"></param>
|
||||
/// <returns></returns>
|
||||
Task<InstitutionContractTempViewModel> GetInstitutionContractTemp(long id,long contractingPartyTempId);
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست طرف حساب هایی که ثبت نام آنها تکمیل شده
|
||||
/// جهت نمایش در کارپوشه
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<List<RegistrationWorkflowMainList>> GetAllCompletedRegistration();
|
||||
}
|
||||
@@ -131,6 +131,9 @@ public class InstitutionContractTemp : EntityBase
|
||||
VerifyCodeEndTime = verifyCodeEndTime;
|
||||
}
|
||||
|
||||
|
||||
public void ChangeRegistrationStatus(string registrationStatus)
|
||||
{
|
||||
RegistrationStatus = registrationStatus;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -93,4 +93,11 @@ public interface ITemporaryClientRegistrationApplication
|
||||
/// <param name="verifyCode"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> PayOffCompleted(long contractingPartyTempId);
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست طرف حساب هایی که ثبت نام آنها تکمیل شده
|
||||
/// جهت نمایش در کارپوشه
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<List<RegistrationWorkflowMainList>> RegistrationWorkflowMainList();
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
namespace CompanyManagment.App.Contracts.TemporaryClientRegistration;
|
||||
|
||||
public class RegistrationWorkflowMainList
|
||||
{
|
||||
/// <summary>
|
||||
/// آی دی طرف حساب ثبت شده موقت
|
||||
/// </summary>
|
||||
public long ContractingPartyTempId { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// نام کامل طرف حساب
|
||||
/// </summary>
|
||||
public string ContractingPartyFullName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره همراه
|
||||
/// </summary>
|
||||
public string Phone { get; set; }
|
||||
|
||||
}
|
||||
@@ -13,6 +13,7 @@ using CompanyManagment.App.Contracts.TemporaryClientRegistration;
|
||||
using IPE.SmsIrClient.Models.Results;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using PersianTools.Core;
|
||||
using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
|
||||
|
||||
namespace CompanyManagment.Application;
|
||||
|
||||
@@ -531,6 +532,9 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
{
|
||||
|
||||
var op = new OperationResult();
|
||||
|
||||
|
||||
|
||||
var institutionContractTemp = await
|
||||
_institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId);
|
||||
var contractStartDate = contractStart;
|
||||
@@ -544,6 +548,11 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
var create = new InstitutionContractTemp(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractStartDate, contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null);
|
||||
_institutionContractTempRepository.Create(create);
|
||||
_institutionContractTempRepository.SaveChanges();
|
||||
|
||||
//temporary
|
||||
var res = await PayOffCompleted(contractingPartyTempId);
|
||||
if (!res.IsSuccedded)
|
||||
return op.Failed(res.Message);
|
||||
return op.Succcedded();
|
||||
}
|
||||
else
|
||||
@@ -565,6 +574,11 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
var update = _institutionContractTempRepository.Get(institutionContractTemp.Id);
|
||||
update.Edit(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractStartDate, contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null);
|
||||
_institutionContractTempRepository.SaveChanges();
|
||||
|
||||
//temporary
|
||||
var res = await PayOffCompleted(contractingPartyTempId);
|
||||
if (!res.IsSuccedded)
|
||||
return op.Failed(res.Message);
|
||||
return op.Succcedded();
|
||||
}
|
||||
|
||||
@@ -582,8 +596,10 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
{
|
||||
|
||||
var op = new OperationResult();
|
||||
|
||||
|
||||
var institutionContractTemp = await
|
||||
_institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId);
|
||||
_institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId);
|
||||
if (institutionContractTemp == null)
|
||||
return op.Failed("خطا");
|
||||
|
||||
@@ -717,7 +733,38 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
public async Task<OperationResult> PayOffCompleted(long contractingPartyTempId)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
|
||||
var temp = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId);
|
||||
if (_personalContractingPartyRepository.Exists(x =>
|
||||
x.Nationalcode == temp.NationalCode))
|
||||
return op.Failed("امکان ثبت رکورد تکراری وجود ندارد");
|
||||
|
||||
var lastArchiveCode = _personalContractingPartyRepository.GetLastArchiveCode();
|
||||
var personalContractingParty = new PersonalContractingParty(temp.FName, temp.LName,
|
||||
temp.NationalCode, temp.IdNumber, "*", "*",
|
||||
"حقیقی",
|
||||
temp.Phone, null, temp.Address, 1, "-", lastArchiveCode,
|
||||
temp.State, temp.City, null, null);
|
||||
_personalContractingPartyRepository.Create(personalContractingParty);
|
||||
_personalContractingPartyRepository.SaveChanges();
|
||||
|
||||
personalContractingParty.RegisterComplete(temp.FatherName, temp.IdNumberSeri, temp.IdNumberSerial, temp.DateOfBirth, temp.Gender);
|
||||
_personalContractingPartyRepository.SaveChanges();
|
||||
var institutionContractTemp = await
|
||||
_institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId);
|
||||
var update = _institutionContractTempRepository.Get(institutionContractTemp.Id);
|
||||
update.ChangeRegistrationStatus("Completed");
|
||||
_institutionContractTempRepository.SaveChanges();
|
||||
|
||||
|
||||
return op.Succcedded();
|
||||
}
|
||||
|
||||
|
||||
public async Task<List<RegistrationWorkflowMainList>> RegistrationWorkflowMainList()
|
||||
{
|
||||
|
||||
return await _institutionContractTempRepository.GetAllCompletedRegistration();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.InfraStructure;
|
||||
using Company.Domain.TemporaryClientRegistrationAgg;
|
||||
@@ -46,4 +47,20 @@ public class InstitutionContractTempRepository : RepositoryBase<long, Institutio
|
||||
MessageId = x.MessageId
|
||||
}).FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
public async Task<List<RegistrationWorkflowMainList>> GetAllCompletedRegistration()
|
||||
{
|
||||
return await _context.InstitutionContractTemps.Where(x => x.RegistrationStatus == "Completed")
|
||||
.Join(_context.ContractingPartyTemps,
|
||||
institutionContract => institutionContract.ContractingPartyTempId,
|
||||
contractingParty => contractingParty.id,
|
||||
(institutionContract, contractingParty) => new { institutionContract, contractingParty }).Select(x =>
|
||||
new RegistrationWorkflowMainList
|
||||
{
|
||||
ContractingPartyTempId = x.contractingParty.id,
|
||||
ContractingPartyFullName = $"{x.contractingParty.FName} {x.contractingParty.LName}",
|
||||
Phone = x.contractingParty.Phone
|
||||
|
||||
}).ToListAsync();
|
||||
}
|
||||
}
|
||||
@@ -233,8 +233,10 @@ public class PersonalContractingPartyRepository : RepositoryBase<long, PersonalC
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
#region Mahan
|
||||
public List<string> SearchByName(string name)
|
||||
|
||||
|
||||
#region Mahan
|
||||
public List<string> SearchByName(string name)
|
||||
{
|
||||
var contractingParties = _context.PersonalContractingParties.Select(x => new PersonalContractingPartyViewModel()
|
||||
{
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
using CompanyManagment.App.Contracts.AdminMonthlyOverview;
|
||||
using CompanyManagment.App.Contracts.TemporaryClientRegistration;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using ServiceHost.BaseControllers;
|
||||
|
||||
namespace ServiceHost.Areas.Admin.Controllers
|
||||
{
|
||||
public class RegistrationWorkflowController : AdminBaseController
|
||||
{
|
||||
private readonly ITemporaryClientRegistrationApplication _temporaryClientRegistrationApplication;
|
||||
|
||||
public RegistrationWorkflowController(ITemporaryClientRegistrationApplication temporaryClientRegistrationApplication)
|
||||
{
|
||||
_temporaryClientRegistrationApplication = temporaryClientRegistrationApplication;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// لیست کارپوشه ثبت نام
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("")]
|
||||
public async Task<ActionResult<List<RegistrationWorkflowMainList>>> GetList()
|
||||
{
|
||||
var result = await _temporaryClientRegistrationApplication.RegistrationWorkflowMainList();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user