/// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public virtual void Validate()
 {
     if (Email == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Email");
     }
     if (NameFirst == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "NameFirst");
     }
     if (NameLast == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "NameLast");
     }
     if (Phone == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Phone");
     }
     if (AddressMailing != null)
     {
         AddressMailing.Validate();
     }
 }
Exemple #2
0
        public async Task <IActionResult> OnPostAsync(bool isMailing)
        {
            _isMailing = isMailing;
            //Street
            if (String.IsNullOrEmpty(Input.Street))
            {
                ModelState.AddModelError("Input.Street", "Street is required.");
            }
            else if (Input.Street.Length > 20)
            {
                ModelState.AddModelError("Input.Street", "Street must be 20 or less characters");
            }
            else if (Input.Street.Length < 2)
            {
                ModelState.AddModelError("Input.Street", "Street must be 2 or more characters");
            }
            //Postal Code
            if (String.IsNullOrWhiteSpace(Input.PostalCode))
            {
                ModelState.AddModelError("Input.PostalCode", "Postal Code required.");
            }
            else if (!ModelValidations.PostalCodeValidation(Input.PostalCode))
            {
                ModelState.AddModelError("Input.PostalCode", "Invalid Postal Code. Ex. N2N2N2");
            }
            //City
            if (String.IsNullOrEmpty(Input.City))
            {
                ModelState.AddModelError("Input.City", "City is required.");
            }
            else if (Input.City.Length > 20)
            {
                ModelState.AddModelError("Input.City", "City must be 20 or less characters");
            }
            else if (Input.City.Length < 2)
            {
                ModelState.AddModelError("Input.City", "City must be 2 or more characters");
            }
            //Apartment Number
            if (!String.IsNullOrEmpty(Input.ApartmentNumber))
            {
                if (Input.ApartmentNumber.Length > 20)
                {
                    ModelState.AddModelError("Input.ApartmentNumber", "Apartment Number must be 20 or less characters");
                }
            }
            //First Name
            if (String.IsNullOrEmpty(Input.FirstName))
            {
                ModelState.AddModelError("Input.FirstName", "First Name is required.");
            }
            else if (Input.FirstName.Length > 20)
            {
                ModelState.AddModelError("Input.FirstName", "First Name must be 20 or less characters");
            }
            else if (Input.FirstName.Length < 2)
            {
                ModelState.AddModelError("Input.FirstName", "First Name must be 2 or more characters");
            }
            //Last Name
            if (String.IsNullOrEmpty(Input.LastName))
            {
                ModelState.AddModelError("Input.LastName", "LastName is required.");
            }
            else if (Input.LastName.Length > 20)
            {
                ModelState.AddModelError("Input.LastName", "LastName must be 20 or less characters");
            }
            else if (Input.LastName.Length < 2)
            {
                ModelState.AddModelError("Input.LastName", "LastName must be 2 or more characters");
            }
            if (!ModelState.IsValid)
            {
                FillViewData(isMailing);
                return(Page());
            }
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }
            if (_isMailing)
            {
                AddressMailing newAddress = new AddressMailing
                {
                    MailingId       = Guid.NewGuid(),
                    FirstName       = Input.FirstName,
                    LastName        = Input.LastName,
                    City            = Input.City,
                    ApartmentNumber = Input.ApartmentNumber,
                    PostalCode      = Input.PostalCode,
                    ProvinceCode    = null,
                    Street          = Input.Street,
                    CountryCode     = Input.CountryCode,
                    LastModified    = DateTime.Now,
                    Archived        = false,
                    UserId          = user.Id
                };
                if (!ValidCountry(Input.CountryCode))
                {
                    newAddress.ProvinceCode = null;
                }
                if (newAddress.ApartmentNumber == null)
                {
                    newAddress.ApartmentNumber = "";
                }
                _context.Add(newAddress);
                StatusMessage = "New Mailing Address added.";
            }
            else
            {
                AddressShipping newAddress = new AddressShipping
                {
                    ShippingId      = Guid.NewGuid(),
                    FirstName       = Input.FirstName,
                    LastName        = Input.LastName,
                    City            = Input.City,
                    ApartmentNumber = Input.ApartmentNumber,
                    PostalCode      = Input.PostalCode,
                    ProvinceCode    = null,
                    Street          = Input.Street,
                    CountryCode     = Input.CountryCode,
                    LastModified    = DateTime.Now,
                    Archived        = false,
                    UserId          = user.Id
                };
                if (!ValidCountry(Input.CountryCode))
                {
                    newAddress.ProvinceCode = null;
                }
                if (newAddress.ApartmentNumber == null)
                {
                    newAddress.ApartmentNumber = "";
                }
                _context.Add(newAddress);
                StatusMessage = "New Shipping Address added.";
            }
            await _context.SaveChangesAsync();

            return(RedirectToPage("Addresses"));
        }