Esempio n. 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!"
            });
        }
 public Builder(string residentInformation, string name, string lastName)
 {
     _residentInformation = new ResidentInformation
     {
         ResidentInformationId = residentInformation,
         Name     = name,
         LastName = lastName
     };
 }
Esempio n. 3
0
 private ResidentRequest GetResidentMaterializeObject(ResidentInformation resident, HouseInformation houseInformation, EmailContact emailContact, PhoneContact phoneContact)
 {
     return(new ResidentRequest()
     {
         ResidentInformationId = resident.ResidentInformationId,
         Name = resident.Name,
         LastName = resident.LastName,
         PhoneNumber = phoneContact.PhoneNumber,
         CountryCode = phoneContact.CountryCode,
         Email = emailContact.Email,
         HouseNumber = houseInformation.HouseNumber,
         BlockNumber = houseInformation.BlockNumber
     });
 }