예제 #1
0
        /// <summary>
        /// Add new address
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ResultModel <Guid> > AddAddressAsync(AddNewAddressViewModel model)
        {
            var currentUserRequest = await _userManager.GetCurrentUserAsync();

            if (!currentUserRequest.IsSuccess)
            {
                return(currentUserRequest.Map(Guid.Empty));
            }
            var user    = currentUserRequest.Result;
            var address = new Address
            {
                AddressLine1      = model.AddressLine1,
                AddressLine2      = model.AddressLine2,
                ContactName       = model.ContactName,
                ZipCode           = model.ZipCode,
                Phone             = model.Phone,
                CountryId         = model.CountryId,
                StateOrProvinceId = model.CityId,
                ApplicationUserId = user.Id,
                IsDefault         = model.IsDefault
            };

            if (model.IsDefault)
            {
                _context.Addresses
                .Where(x => x.ApplicationUserId.Equals(user.Id))
                .ToList().ForEach(b => b.IsDefault = false);
            }

            await _context.Addresses.AddAsync(address);

            var dbResult = await _context.PushAsync();

            return(dbResult.Map(address.Id));
        }
예제 #2
0
        public ActionResult AddAddress(AddNewAddressViewModel model)
        {
            if (ModelState.IsValid)
            {
                var userID = IdentityHelpers.GetUserId(User.Identity);

                var address = Mapper.Map <Address>(model);

                address.UserID = userID;

                _userService.AddNewAddress(userID, address);

                _uow.Save();

                return(RedirectToAction("EditAddresses"));
            }

            return(View(model));
        }
예제 #3
0
 public async Task <JsonResult> AddNewAddress(AddNewAddressViewModel model)
 {
     return(!ModelState.IsValid ? Json(new ResultModel <Guid>().AttachModelState(ModelState))
         : Json(await _addressService.AddAddressAsync(model)));
 }
예제 #4
0
        //
        // GET: /Account/AddAddress/
        public ActionResult AddAddress()
        {
            var model = new AddNewAddressViewModel();

            return(View(model));
        }