Пример #1
0
        private UserDetailResponseDTO FillUserDetail(PayLendUser resultDto)
        {
            UserDetailResponseDTO userDetail = new UserDetailResponseDTO();

            try
            {
                userDetail.simpleReturnDTO = new SimpleReturnDTO();
                if (resultDto != null)
                {
                    userDetail.payLendUser         = resultDto;
                    userDetail.payLendUser.Country = _countryManager.GetAll().FirstOrDefault(x => x.ID == resultDto.CountryId);
                    userDetail.payLendUser.Banks   = _repository.GetAll <PayLend.Core.Entities.BankUser>(includeProperties: "Bank").Where(x => x.PayLendUser.Id == resultDto.Id).ToList();

                    var memberInfo = resultDto.GetType().BaseType;
                    if (memberInfo != null && memberInfo.Name == DiscriminatorEnum.Borrower.ToString())
                    {
                        userDetail.payLendUser.DiscriminatorType = DiscriminatorEnum.Borrower;
                        //Legal Representative tem que passar a ser os dados da empresa
                        if (userDetail.payLendUser.RegisterType == RegisterTypeEnum.EmpresaCompleto)
                        {
                            //userDetail.legalRepresentative = Repository.GetAll<LegalRepresentative>(x => x.PayLendUserId == resultDTO.Id).FirstOrDefault();
                        }
                    }
                    else if (resultDto.GetType().BaseType.Name == DiscriminatorEnum.Lender.ToString())
                    {
                        userDetail.payLendUser.DiscriminatorType = DiscriminatorEnum.Lender;
                    }
                    else if (resultDto.GetType().BaseType.Name == DiscriminatorEnum.Admin.ToString())
                    {
                        userDetail.payLendUser.DiscriminatorType = DiscriminatorEnum.Admin;
                    }
                    else
                    {
                        userDetail.payLendUser.DiscriminatorType = DiscriminatorEnum.Todos;
                    }

                    userDetail.payLendUser.PayLendCard.FirstOrDefault().Balance         = userDetail.payLendUser.PayLendCard.FirstOrDefault().Balance;
                    userDetail.payLendUser.PayLendCard.FirstOrDefault().PendingBalance  = userDetail.payLendUser.PayLendCard.FirstOrDefault().PendingBalance;
                    userDetail.payLendUser.PayLendCard.FirstOrDefault().AvaiableBalance = userDetail.payLendUser.PayLendCard.FirstOrDefault().AvaiableBalance;
                }
                else
                {
                    userDetail.simpleReturnDTO.ErrorMessage = "HaveUserID_DontHaveData";
                    userDetail.simpleReturnDTO.ErrorType    = ErrorType.Form;
                    userDetail.simpleReturnDTO.ErrorKey     = "UserDetails";
                }
            }
            catch (Exception e)
            {
                userDetail.simpleReturnDTO.ErrorMessage = e.Message;
                userDetail.simpleReturnDTO.ErrorType    = ErrorType.Form;
                userDetail.simpleReturnDTO.ErrorKey     = "UserDetails";
                return(userDetail);
            }
            return(userDetail);
        }
Пример #2
0
        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);
            }
        }