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 }; }
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 }); }