public async Task <Response> SaveResident(ResidentRequest residentResquest) { var residentId = GetMaterializeResidentId(residentResquest.BlockNumber, residentResquest.HouseNumber); var getResidentDuplicated = _securityPaymentContext.ResidentInformation.ToList() .Find(x => x.ResidentInformationId == residentId); if (getResidentDuplicated == null) { ControlTransactionFields transactionInfo = TransactionInfo.GetTransactionInfo(); IDbContextTransaction transaction = _securityPaymentContext.Database.BeginTransaction(); ResidentInformation residentInformation = MaterializeGeneralResidentInformation(residentResquest, residentId, transactionInfo); PhoneContact phoneContact = MaterializeContactInformation(residentResquest, residentId, transactionInfo); EmailContact emailContact = MaterializeEmailContact(residentResquest, residentId, transactionInfo); HouseInformation houseInformation = MaterializeHouseInformation(residentResquest, residentId, transactionInfo); await _securityPaymentContext.AddAsync <ResidentInformation>(residentInformation); await _securityPaymentContext.AddAsync <PhoneContact>(phoneContact); await _securityPaymentContext.AddAsync <EmailContact>(emailContact); await _securityPaymentContext.AddAsync <HouseInformation>(houseInformation); await _securityPaymentContext.SaveChangesAsync(); transaction.Commit(); return(new Response { Data = residentInformation }); } return(new Response { Message = "Failed, the resident already exist!" }); }
public async Task <Response> SaveVoucher(VoucherRequest voucherRequest) { var existResident = _securityPaymentContext.ResidentInformation.ToList().FirstOrDefault(c => c.ResidentInformationId == voucherRequest.ResidentId); var paymentCalendarConfigurationExist = _securityPaymentContext.PaymentCalendar.ToList() .Where(x => x.PaymentDate.Year == voucherRequest.PaymentCalendarDate.Year && x.PaymentDate.Month == voucherRequest.PaymentCalendarDate.Month && x.PaymentDate.Day == voucherRequest.PaymentCalendarDate.Day).ToList(); if (paymentCalendarConfigurationExist != null && existResident.ResidentInformationId == voucherRequest.ResidentId) { ControlTransactionFields transactionInfo = TransactionInfo.GetTransactionInfo(); IDbContextTransaction transaction = _securityPaymentContext.Database.BeginTransaction(); Voucher paymentCalendarConfiguration = MaterializeVoucherByResident(voucherRequest, transactionInfo); await _securityPaymentContext.AddAsync <Voucher>(paymentCalendarConfiguration); await _securityPaymentContext.SaveChangesAsync(); transaction.Commit(); return(new Response { Data = paymentCalendarConfiguration }); } return(new Response { Message = "Failed, the payment configuration already exist!" }); }
public async Task <Response> SavePaymentCalendarConfiguration(PaymentCalendarRequest paymentCalendarRequest) { var paymentConfigurationDuplicated = _securityPaymentContext.PaymentCalendar.ToList() .Find(x => x.PaymentDate == paymentCalendarRequest.PaymentDate); if (paymentConfigurationDuplicated == null) { ControlTransactionFields transactionInfo = TransactionInfo.GetTransactionInfo(); IDbContextTransaction transaction = _securityPaymentContext.Database.BeginTransaction(); PaymentCalendar paymentCalendarConfiguration = MaterializePaymentConfiguration(paymentCalendarRequest, transactionInfo); await _securityPaymentContext.AddAsync <PaymentCalendar>(paymentCalendarConfiguration); await _securityPaymentContext.SaveChangesAsync(); transaction.Commit(); return(new Response { Data = paymentCalendarConfiguration }); } return(new Response { Message = "Failed, the payment configuration already exist!" }); }