public async Task <IActionResult> Edit(int id, [Bind("Id,AccountAddress,MnemonicKey")] AccountAddressModel accountAddressModel)
        {
            if (id != accountAddressModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(accountAddressModel);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AccountAddressModelExists(accountAddressModel.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(accountAddressModel));
        }
        public async Task <IActionResult> Create([Bind("Id,AccountAddress,MnemonicKey")] AccountAddressModel accountAddressModel)
        {
            if (ModelState.IsValid)
            {
                Account account = new Account();
                accountAddressModel.AccountAddress = account.Address.ToString();
                accountAddressModel.MnemonicKey    = account.ToMnemonic();
                _context.Add(accountAddressModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(accountAddressModel));
        }
Example #3
0
        public ActionResult AccountAddress(ContentModel model)
        {
            var aam         = new AccountAddressModel(model.Content);
            var addresess   = UvendiaContext.Addresses.AllByUserId(CurrentUser.UserId);
            var shipAddress = addresess.FirstOrDefault(x => x.AddressType == Uvendia.Domain.Enums.AddressType.ShipAddress);

            if (shipAddress == null)
            {
                aam.ShippingAddress = new Address();
                aam.HasSameAddress  = true;
            }
            else
            {
                aam.HasSameAddress  = false;
                aam.ShippingAddress = shipAddress;
            }

            aam.ContactAddress = addresess.FirstOrDefault(x => x.AddressType == Uvendia.Domain.Enums.AddressType.Default) ?? new Address();

            return(CurrentTemplate(aam));
        }
Example #4
0
        public ActionResult UpdateAccountAddress(AccountAddressModel model)
        {
            model.ContactAddress.AddressTypeId = AddressType.Default.Id;
            if (model.ShippingAddress != null)
            {
                model.ShippingAddress.AddressTypeId = AddressType.ShipAddress.Id;
            }

            base.SuppressValidation(model.GetPropertyName(x => x.UserId));
            base.SuppressValidation(model.GetPropertyName(x => x.EmailAddress));
            base.SuppressValidation(model.GetPropertyName(x => x.FirstName));
            base.SuppressValidation(model.GetPropertyName(x => x.LastName));
            base.SuppressValidation(model.GetPropertyName(x => x.Phone));

            if (model.HasSameAddress)
            {
                base.SuppressValidation(model.GetPropertyName(x => x.ShippingAddress));
                model.ShippingAddress = null;
                UvendiaContext.Addresses.DeleteByUseryIdAndAddressType(CurrentUser.UserId, AddressType.ShipAddress);
            }

            if (ModelState.IsValid)
            {
                model.ContactAddress.CreatedBy = CurrentUser.UserId;
                var addresses = new List <Address>()
                {
                    model.ContactAddress
                };
                if (model.ShippingAddress != null)
                {
                    model.ShippingAddress.Phone     = model.ContactAddress.Phone;
                    model.ShippingAddress.CreatedBy = CurrentUser.UserId;
                    addresses.Add(model.ShippingAddress);
                }

                UvendiaContext.Addresses.Save(addresses);
                SnuffoSettings.ShowMessage(TempData, "Updated", "Your address updated successfuly.", AlertMessageType.Success);
            }
            return(CurrentUmbracoPage());
        }
Example #5
0
        public ActionResult UpdateOrderCheckoutAddress(AccountAddressModel model)
        {
            model.ContactAddress.AddressTypeId = AddressType.Default.Id;
            model.ContactAddress.FirstName     = model.FirstName;
            model.ContactAddress.LastName      = model.LastName;
            model.ContactAddress.Email         = model.EmailAddress;
            model.ContactAddress.Phone         = model.Phone;

            base.SuppressValidation(model.GetPropertyName(x => x.ContactAddress.Phone));
            base.SuppressValidation(model.GetPropertyName(x => x.ContactAddress.AddressTypeId));
            base.SuppressValidation(model.GetPropertyName(x => x.ShippingAddress.AddressTypeId));
            base.SuppressValidation(model.GetPropertyName(x => x.ShippingAddress.Phone));

            if (model.ShippingAddress != null)
            {
                model.ShippingAddress.AddressTypeId = AddressType.ShipAddress.Id;
            }

            if (model.HasSameAddress)
            {
                base.SuppressValidation(model.GetPropertyName(x => x.ShippingAddress));
                model.ShippingAddress = null;
            }

            if (!CurrentUser.IsAuthenticated)
            {
                base.SuppressValidation(model.GetPropertyName(x => x.UserId));
            }
            else
            {
                if (model.HasSameAddress)
                {
                    UvendiaContext.Addresses.DeleteByUseryIdAndAddressType(CurrentUser.UserId, AddressType.ShipAddress);
                }
            }

            if (ModelState.IsValid)
            {
                // Save user data
                if (CurrentUser.IsAuthenticated)
                {
                    _auth0Helper.UpdateAuth0User(model);
                }

                model.ContactAddress.CreatedBy = CurrentUser.UserId;
                var addresses = new List <Address>()
                {
                    model.ContactAddress
                };
                if (model.ShippingAddress != null)
                {
                    model.ShippingAddress.CreatedBy = CurrentUser.UserId;
                    model.ShippingAddress.Phone     = model.ContactAddress.Phone;
                    addresses.Add(model.ShippingAddress);
                }

                UvendiaContext.Addresses.Save(addresses);

                var currentCart = CurrentCart.Create(SnuffoSettings.STORE_NAME);
                var order       = currentCart.GetOrder();

                // Attach address to order
                var invoiceAddress = addresses.Single(a => a.AddressTypeId == AddressType.Default.Id);
                order.InvoiceAddressId = invoiceAddress.Id;
                order.ShipAddressId    = (model.ShippingAddress == null) ? (long?)null : addresses.Single(a => a.AddressTypeId != AddressType.Default.Id).Id;

                // Save the order
                currentCart.SaveOrder(order);

                if (order.HasOrderProductDetails())
                {
                    return(Redirect($"/{CurrentUser.LanguageCode}/cart/checkout-shipping"));
                }
                else
                {
                    return(Redirect($"/{CurrentUser.LanguageCode}/cart/checkout-payment"));
                }
            }

            return(CurrentUmbracoPage());
        }