public UserDetailResponseDTO EditSave(EditUserRequestDTO model, HttpPostedFileBase filedata) { UserDetailResponseDTO result = new UserDetailResponseDTO(); result.simpleReturnDTO = new SimpleReturnDTO(); try { var users = _repository.GetAll <PayLendUser>(); var user = users.FirstOrDefault(x => x.Id == model.Id); var bouser = users.FirstOrDefault(x => x.Email == model.BoUserEmail); var bank = _bankManager.GetAll().FirstOrDefault(x => x.SwiftCode.Equals(model.SWIFT)); if (user == null) { result.simpleReturnDTO.ErrorKey = "User"; result.simpleReturnDTO.ErrorMessage = "User Not Registered"; result.simpleReturnDTO.ErrorType = ErrorType.Conclusion; return(result); } user.Name = model.Name; user.MobilePhone = model.MobilePhone; user.Email = model.Email; user.NIF = model.NIF; user.Address = model.Address; user.City = model.City; user.PostalCode = model.PostalCode; user.MobilePhone = model.MobilePhone; user.BirthdayDate = model.BirthdayDate; user.PhonePrefixID = model.PhonePrefixID; user.DocumentValidDate = model.DocumentValidDate == DateTime.MinValue ? null : model.DocumentValidDate; user.Nationality = model.Nationality; user.IdentificationDocNumber = model.IdentificationDocNumber; var userBank = _repository.GetAll <PayLend.Core.Entities.BankUser>(x => x.UserId == user.Id).ToList(); if (userBank.Any()) { user.Banks.FirstOrDefault().IBAN = model.IBAN; user.Banks.FirstOrDefault().NIB = model.IBAN; user.Banks.FirstOrDefault().BankId = bank.Id; } else { var bankUser = new PayLend.Core.Entities.BankUser { UserId = user.Id, BankId = bank.Id, IBAN = model.IBAN, NIB = model.IBAN, Default = true, }; _bankUserManager.Create(bankUser); } if (user.BorrowerCompanyData != null) { user.BorrowerCompanyData = model.borrowerCompanyData; } //Caso exista alteração de saldo if (filedata != null) { var url = ""; var containerUrlCpcv = _payLendConfigManager.GetConfigValue("BlobContainerTopUpReceipt"); string extension = Path.GetExtension(filedata.FileName); if (filedata.FileName != null) { String filenameCpcv = Guid.NewGuid().ToString() + "_" + filedata.FileName.Replace(" ", ""); _azureStorageManager.uploadFile(filedata.InputStream, filenameCpcv, filedata.ContentLength, FileType.PaymentReceipt); url = containerUrlCpcv + filenameCpcv; } //Criar o pedido de carregamento de saldo que tem que ter aprovação var topUp = new PayLend.Core.Entities.BackOfficeTopUp { UserId = user.Id, Ammount = model.TopUpValue, BoUserIdRequest = bouser.Id, PaymentReceiptUrl = url, Status = TopUpStatusEnum.Pendente, }; _backOfficeTopUpManager.Create(topUp); //Enviar email a informar que foi feito um pedido de aumento de saldo _emailLogManager.SendRequestToTopUp(bouser.Id, user); } _repository.Update(user); // _repository.SaveChanges(true); return(result); } catch (Exception ex) { result.simpleReturnDTO.ErrorKey = "Error"; result.simpleReturnDTO.ErrorMessage = ex.Message; result.simpleReturnDTO.ErrorType = ErrorType.Form; var erroTratado = TreatmentError.SerializedErrorDetail(ex); erroTratado.User = ClassName; _logManager.SaveError(erroTratado); return(result); } }