public ActionResult Shipping(int addressIndex, string recipientName, string street, string zipCode, string city, int countryId)
        {
            Logger.Info("Delivery address selected");

            var cart = CartService.GetCurrentOrderCart(User.GetUserPrincipal());

            if (cart == null
                || cart.ItemCount == 0)
            {
                // RedirectToAction("Shipping");
                return RedirectToERPStoreRoute(ERPStoreRoutes.HOME);
            }

            var user = (User as Models.UserPrincipal).CurrentUser;
            ViewData.Model = cart;

            if (cart.BillingAddress == null)
            {
                cart.BillingAddress = user.DefaultAddress;
            }

            ViewData["SelectedAddressId"] = addressIndex;

            Models.Address address = null;
            // Nouvelle adresse
            if (addressIndex == -1)
            {
                address = new ERPStore.Models.Address();
                address.RecipientName = recipientName;
                address.Street = street;
                address.ZipCode = zipCode;
                address.City = city;
                address.CountryId = countryId;
                ModelState.AddModelErrors(AccountService.ValidateUserAddress(address, HttpContext));
                if (!ModelState.IsValid)
                {
                    return View(string.Format(m_ViewPath,"shipping"));
                }
                AddressService.SaveAddress(user, address, true);
                user.DeliveryAddressList.Add(address);
            }
            else
            {
                address = user.DeliveryAddressList[addressIndex];
            }

            cart.DeliveryAddress = address;
            using (var ts = TransactionHelper.GetNewReadCommitted())
            {
                CartService.Save(cart);
                ts.Complete();
            }
            // return RedirectToAction("Configuration");
            return RedirectToERPStoreRoute(ERPStoreRoutes.CHECKOUT_CONFIGURATION);
        }
Example #2
0
        private IEnumerable<Models.Address> AddressesDatas()
        {
            var result = new List<Models.Address>();
            for (int i = 0; i < 4; i++)
            {
                var address = new ERPStore.Models.Address()
                        {
                            City = string.Format("City{0}", i),
                            CountryId = Models.Country.Default.Id,
                            Id = i,
                            RecipientName = string.Format("M Test {0}", i),
                            Region = string.Empty,
                            Street = string.Format("Street{0}", i),
                            ZipCode = string.Format("010{0:00}", i),
                        };

                result.Add(address);
            }
            return result;
        }
        public ActionResult EditAddressList(FormCollection form)
        {
            var user = User.GetUserPrincipal().CurrentUser;
            // SetupDefault();
            ViewData.Model = user;
            ViewData["success"] = 0;

            var addressId = 0;
            if (!int.TryParse(form["addressId"], out addressId))
            {
                ModelState.AddModelError("_FORM", "Adresse introuvable");
                return View("EditAddresses");
            }

            int oldAddressId = 0;
            var city = string.Format("city{0}", addressId);
            var corporateName = string.Format("corporateName{0}", addressId);
            var countryId = string.Format("countryId{0}", addressId);
            var recipientName = string.Format("recipientName{0}", addressId);
            var street = string.Format("street{0}", addressId);
            var zipCode = string.Format("zipCode{0}", addressId);

            var address = new ERPStore.Models.Address();
            address.City = form[city];
            address.CorporateName = form[corporateName];
            address.CountryId = Convert.ToInt32(form[countryId]);
            address.RecipientName = form[recipientName];
            address.Street = form[street];
            address.ZipCode = form[zipCode];

            var brokenRules = AccountService.ValidateUserAddress(address, HttpContext);
            if (brokenRules.IsNotNullOrEmpty())
            {
                foreach (var item in brokenRules)
                {
                    foreach (var error in item.ErrorList)
                    {
                        ModelState.AddModelError(string.Format("{0}{1}", item.PropertyName, addressId) , error);
                    }
                }
            }

            if (!ModelState.IsValid)
            {
                return View("EditAddresses");
            }

            if (addressId == -1)
            {
                oldAddressId = user.DefaultAddress.Id;
                user.DefaultAddress = address;
                user.DefaultAddress.Id = oldAddressId;
            }
            else
            {
                oldAddressId = user.DeliveryAddressList[addressId].Id;
                user.DeliveryAddressList[addressId] = address;
                // Cas ou l'adresse de livraison est la meme
                // que l'adresse de facturation
                if (oldAddressId == user.DefaultAddress.Id)
                {
                    user.DeliveryAddressList[addressId].Id = 0;
                }
                else
                {
                    user.DeliveryAddressList[addressId].Id = oldAddressId;
                }
            }

            AddressService.SaveAddress(user, address, addressId != -1);
            ViewData["success"] = addressId.ToString();
            return View("EditAddresses");
        }
Example #4
0
        public ERPStore.Models.User RegisterUser(ERPStore.Models.RegistrationUser user)
        {
            var result = new ERPStore.Models.User();
            var billingAddress = new ERPStore.Models.Address();
            billingAddress.City = user.BillingAddressCity;
            billingAddress.CorporateName = user.CorporateName;
            billingAddress.CountryId = user.BillingAddressCountryId;
            billingAddress.RecipientName = user.FullName;
            billingAddress.Region = user.BillingAddressRegion;
            billingAddress.Street = user.BillingAddressStreet;
            billingAddress.ZipCode = user.BillingAddressZipCode;

            result.Code = user.VisitorId;
            if (!user.CorporateName.IsNullOrTrimmedEmpty())
            {
                result.Corporate = new ERPStore.Models.Corporate();
                result.Corporate.Code = user.VisitorId;
                result.Corporate.CreationDate = DateTime.Now;
                result.Corporate.DefaultAddress = billingAddress;
                result.Corporate.Email = user.CorporateEmail;
                result.Corporate.FaxNumber = user.CorporateFaxNumber;
                result.Corporate.NafCode = user.NAFCode;
                result.Corporate.Name = user.CorporateName;
                result.Corporate.PhoneNumber = user.CorporatePhoneNumber;
                result.Corporate.RcsNumber = user.RcsNumber;
                result.Corporate.SiretNumber = user.SiretNumber;
                result.Corporate.SocialStatus = user.CorporateSocialStatus;
                result.Corporate.VatMandatory = user.VatMandatory;
                result.Corporate.VatNumber = user.TVANumber;
                result.Corporate.WebSite = user.CorporateWebSite;
            }

            result.CreationDate = DateTime.Now;
            result.DefaultAddress = billingAddress;
            result.Email = user.Email;
            result.FaxNumber = user.FaxNumber;
            result.FirstName = user.FirstName;
            result.LastName = user.LastName;
            result.Login = user.Email;
            result.MobileNumber = user.MobileNumber;
            result.PhoneNumber = user.PhoneNumber;
            result.Presentation = (ERPStore.Models.UserPresentation)Enum.Parse(typeof(ERPStore.Models.UserPresentation), user.PresentationId.ToString());
            result.State = ERPStore.Models.UserState.Completed;

            m_List.Add(result);
            result.Id = m_List.IndexOf(result) + 1;
            m_PasswordList.Add(result.Id, user.Password);

            return result;
        }