Ejemplo n.º 1
0
        public List <string> ValidatePayerData()
        {
            var errors = new List <string>();

            PayerCity         = PayerCity.Trim();
            PayerFirstName    = PayerFirstName.Trim();
            PayerLastName     = PayerLastName.Trim();
            PayerCity         = PayerCity.Trim();
            PayerState        = PayerState.Trim();
            PayerZip          = PayerZip.Trim();
            PayerPhoneNumber  = PayerPhoneNumber.Trim();
            PayerEmailAddress = PayerEmailAddress.Trim();
            PayerCompanyName  = PayerCompanyName.Trim();

            if (PayerFirstName.Length == 0)
            {
                errors.Add("The Payer's First name is a required field.");
            }
            if (PayerLastName.Length == 0)
            {
                errors.Add("The Payer's Last name is a required field.");
            }
            if (PayerPhoneNumber.Length == 0)
            {
                errors.Add("The Payer's phone number is a required field.");
            }
            if (PayerEmailAddress.Length > 0)
            {
                try
                {
                    var email = new System.Net.Mail.MailAddress(PayerEmailAddress);
                }
#pragma warning disable CS0168 // Variable is declared but never used
                catch (FormatException fe)
#pragma warning restore CS0168 // Variable is declared but never used
                {
                    errors.Add("The email address provided does not appear to be in a valid format.");
                }
            }
            if (PayerStreetAddress.Length == 0)
            {
                errors.Add("The Payer's Street Address must be provided.");
            }
            if (PayerZip.Length == 0)
            {
                errors.Add("The Payer's Zip Code must be provided.");
            }
            return(errors);
        }
Ejemplo n.º 2
0
        public void Registrate(RegistrateViewModel registrateModel)
        {
            if (registrateModel.UserNumber <= 0)
            {
                throw new ArgumentException("Payer number");
            }

            if (string.IsNullOrEmpty(registrateModel.UserPassword) ||
                string.IsNullOrEmpty(registrateModel.UserConfirmPassword))
            {
                throw new ArgumentException("Password or confirm password");
            }

            if (registrateModel.UserPassword != registrateModel.UserConfirmPassword)
            {
                throw new ArgumentException("Passwords are not same");
            }

            var targetRegion = localDb.Regions.FirstOrDefault(region => region.Id == registrateModel.UserRegionId);

            if (targetRegion == null)
            {
                throw new Exception("Region not found");
            }

            var existUser = FindUser(registrateModel.UserNumber, registrateModel.UserRegionId);

            if (existUser != null)
            {
                throw new Exception("User already exist");
            }

            var departments = localDb.Departments.Where(department => department.RegionId == targetRegion.Id);

            PayerState targetPayerState = null;
            Department targetDepartment = null;

            foreach (var department in departments)
            {
                var payerRepository = GetPayerRepository(department.Url, department.Path);
                targetPayerState = payerRepository.Get(registrateModel.UserNumber);
                if (targetPayerState != null)
                {
                    targetDepartment = department;
                    break;
                }
            }

            if (targetPayerState == null || targetDepartment == null)
            {
                throw new Exception($"Payer {registrateModel.UserNumber} in region {targetRegion.Name} is not found");
            }

            var newUser = new User
            {
                Number       = registrateModel.UserNumber,
                Name         = targetPayerState.Name,
                DepartmentId = targetDepartment.Id
            };

            newUser.PasswordHash = passwordHasher.HashPassword(newUser, registrateModel.UserPassword);

            localDb.Users.Add(newUser);
            localDb.SaveChanges();
        }
Ejemplo n.º 3
0
 public UserSessionState(User user, PayerState payerState)
 {
     User       = user;
     PayerState = payerState;
 }