public SimpleReturnDTO CreateNewLender(Lender entity) { SimpleReturnDTO simpleReturnDto = new SimpleReturnDTO(); try { var isDuplicated = FindBy(x => x.Email.Equals(entity.Email)).Any(); if (isDuplicated) { simpleReturnDto.ErrorKey = "DuplicateEmail"; simpleReturnDto.ErrorMessage = "DuplicateEmail"; simpleReturnDto.ErrorType = ErrorType.Register; } else { entity.DiscriminatorType = DiscriminatorEnum.Lender; if (entity.SWIFT == null) { string zip = entity.IBAN.Substring(4, 4); var result = _bankManager.FindBy(x => x.IbanCode.Equals(zip)).ToList(); entity.SWIFT = result.FirstOrDefault()?.SwiftCode; } if (!entity.Banks.Any() || !entity.Banks.Any(x => x.Bank.SwiftCode.Equals(entity.SWIFT))) { var bank = _bankManager.GetAll().FirstOrDefault(x => x.SwiftCode.Equals(entity.SWIFT)); entity.Banks.Add(new PayLend.Core.Entities.BankUser { IBAN = entity.IBAN, Bank = bank, NIB = entity.IBAN, Default = true, }); } _repository.Create(entity); _bankUserManager.Create(entity.Banks.FirstOrDefault()); //this._repository.Create(entity); //this._repository.SaveChanges(); var permissions = _repository.GetAll <Permission>(x => x.CategoryID == 5 && x.isVisible == true).ToList(); foreach (var item in permissions) { _userPermissionManager.Create(new PayLend.Core.Entities.Perfil.User_Permission { PayLendUser = entity, Permission = item, Active = true, CreatedDate = DateTime.Now }); } var currency = _repository.Get <Currency>(11); _payLendCardManager.Create(new PayLend.Core.Entities.PayLendCard { CardNumber = (entity.CountryId.ToString() + (entity.Id.ToString().PadLeft(000000, '0'))), PayLendUser = entity, Active = true, CardFriendlyName = "Conta Paylend", Currency = currency, Default = true }); //this._repository.SaveChanges(); } return(simpleReturnDto); } catch (Exception e) { simpleReturnDto.ErrorMessage = e.Message; return(simpleReturnDto); } }