public async Task <IActionResult> PutEmployeeDetails(EmployeDetailsToGetDto model) { var modelToDb = await _uow.EmployeeRepository.Get(x => x.NationalId == model.NationalId, includes : "EmployeeOrder").SingleOrDefaultAsync(); if (modelToDb == null) { return(NotFound()); } modelToDb = UpdateEmployeeBasicData(modelToDb, model); var orderResult = await UpdateEmployeeOrder(modelToDb, model); if (orderResult == null) { return(BadRequest()); } else { modelToDb = orderResult; } var postResult = await UpdateEmployeePost(modelToDb, model); if (postResult == null) { return(BadRequest()); } else { modelToDb = postResult; } _uow.EmployeeRepository.Update(modelToDb); await _uow.SaveChangesAsync(); return(Ok()); }
private Employee UpdateEmployeeBasicData(Employee modelToDb, EmployeDetailsToGetDto model) { modelToDb.KnownAs = model.KnownAs; modelToDb.DepartmentId = model.Department.Id; modelToDb.BankOption = model.BankOption; modelToDb.ATMOption = model.ATMOption; modelToDb.Phone = model.Phone; modelToDb.Email = model.Email; return(modelToDb); }
private async Task <Employee> UpdateEmployeeOrder(Employee modelToDb, EmployeDetailsToGetDto model) { if (modelToDb.HasATM == false && modelToDb.HasBank == false) { modelToDb.NationalId = model.NationalId; modelToDb.Name = model.Name; } if (modelToDb.HasOrder && model.HasOrder) { var orderEntery = _uow.OrderRepository.Get(x => x.EmployeeId == model.Id).Result.SingleOrDefault(); if (orderEntery == null) { return(null); } orderEntery.BranchCode = model.Order.orderBranchCode; orderEntery.OrderAccountNumber = model.Order.OrderAccountNum; _uow.OrderRepository.Update(orderEntery); } if (!modelToDb.HasOrder && model.HasOrder) { if (model.Order == null) { return(null); } modelToDb.HasOrder = true; modelToDb.EmployeeOrder = new EmployeeOrder() { EmployeeId = model.Id, BranchCode = model.Order.orderBranchCode, OrderAccountNumber = model.Order.OrderAccountNum, }; } else if (!model.HasOrder && modelToDb.HasOrder) { var modelToDelete = await _uow.OrderRepository.Get(x => x.Id == modelToDb.Id); if (modelToDelete == null) { return(null); } modelToDb.HasOrder = false; if (modelToDb.BankOption == PaymentTypeConst.PaymentOrder) { modelToDb.BankOption = string.Empty; } if (modelToDb.ATMOption == PaymentTypeConst.PaymentOrder) { modelToDb.ATMOption = string.Empty; } _uow.OrderRepository.Delete(modelToDelete.SingleOrDefault()); } return(modelToDb); }
private async Task <Employee> UpdateEmployeePost(Employee modelToDb, EmployeDetailsToGetDto model) { if (modelToDb.HasATM == false && modelToDb.HasBank == false) { modelToDb.NationalId = model.NationalId; modelToDb.Name = model.Name; } if (modelToDb.HasPost && model.HasPost) { var postEntery = _uow.PostRepository.Get(x => x.EmployeeId == model.Id).Result.SingleOrDefault(); if (postEntery == null) { return(null); } postEntery.PostTo = model.Post.PostTo; postEntery.PostAddress = model.Post.PostAddress; postEntery.PostPhone = model.Post.PostPhone; _uow.PostRepository.Update(postEntery); } if (!modelToDb.HasPost && model.HasPost) { modelToDb.HasPost = true; modelToDb.EmployeePost = new EmployeePost() { EmployeeId = model.Id, PostTo = model.Post.PostTo, PostAddress = model.Post.PostAddress, PostPhone = model.Post.PostPhone, }; } else if (!model.HasPost && modelToDb.HasPost) { var modelToDelete = await _uow.PostRepository.Get(x => x.EmployeeId == modelToDb.Id); if (modelToDelete == null) { return(null); } modelToDb.HasPost = false; if (modelToDb.BankOption == PaymentTypeConst.PersonalPost) { modelToDb.BankOption = string.Empty; } if (modelToDb.ATMOption == PaymentTypeConst.PersonalPost) { modelToDb.ATMOption = string.Empty; } _uow.PostRepository.Delete(modelToDelete.SingleOrDefault()); } return(modelToDb); }
private EmployeDetailsToGetDto GetEmployeePost(EmployeDetailsToGetDto empToReturn, Employee empFromDb) { if (empToReturn.HasPost) { empToReturn.Post = new EmployeePostDto() { Id = empFromDb.EmployeePost.Id, PostTo = empFromDb.EmployeePost.PostTo, PostAddress = empFromDb.EmployeePost.PostAddress, PostPhone = empFromDb.EmployeePost.PostPhone }; } return(empToReturn); }
private async Task <EmployeDetailsToGetDto> GetEmployeeOrder(EmployeDetailsToGetDto empToReturn, Employee empFromDb) { if (empToReturn.HasOrder) { BankBranch branch = await _uow.BankBranchRepository.Get(empFromDb.EmployeeOrder.BranchCode.Value); Models.Bank bank = _uow.BankRepository.Get(x => x.Id == branch.BankId).Result.SingleOrDefault(); empToReturn.Order = new EmployeeOrderDto() { Id = empFromDb.EmployeeOrder.Id, OrderAccountNum = empFromDb.EmployeeOrder.OrderAccountNumber, orderBranchCode = empFromDb.EmployeeOrder.BranchCode.Value, OrderBankName = bank.BankName, OrderBranchName = branch.BranchName }; } return(empToReturn); }
public async Task <IActionResult> putAddEmployeeOrderBank(string id, EmployeDetailsToGetDto model) { var modelToDb = await _uow.EmployeeRepository.Get(model.Id); if (modelToDb == null) { return(NotFound()); } if (modelToDb.HasOrder) { modelToDb.EmployeeOrder = new EmployeeOrder() { }; } else { } await _uow.SaveChangesAsync(); return(Ok()); }