コード例 #1
0
        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!"
            });
        }
コード例 #2
0
        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!"
            });
        }
コード例 #3
0
        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!"
            });
        }