private Dictionary<string, string> GetAvailableCountries(AddressListItemJsonResult result) { var countries = new Dictionary<string, string>(); var response = OrderManager.GetAvailableCountries(); if (response.ServiceProviderResult.Success && response.Result != null) { countries = response.Result; } result.SetErrors(response.ServiceProviderResult); return countries; }
private List<Models.CustomCommerceParty> AllAddresses(AddressListItemJsonResult result) { var addresses = new List<Models.CustomCommerceParty>(); var response = this.AccountManager.GetCurrentUserParties(this.CurrentStorefront, this.CurrentVisitorContext); if (response.ServiceProviderResult.Success && response.Result != null) { addresses = response.Result.ToList(); } result.SetErrors(response.ServiceProviderResult); return addresses; }
public JsonResult AddressModify(PartyInputModelItem model) { try { Assert.ArgumentNotNull(model, "model"); var validationResult = new BaseJsonResult(); this.ValidateModel(validationResult); if (validationResult.HasErrors) { return Json(validationResult, JsonRequestBehavior.AllowGet); } var addresses = new List<Models.CustomCommerceParty>(); var userResponse = this.AccountManager.GetUser(Context.User.Name); var result = new AddressListItemJsonResult(userResponse.ServiceProviderResult); if (userResponse.ServiceProviderResult.Success && userResponse.Result != null) { var commerceUser = userResponse.Result; var customer = new CommerceCustomer { ExternalId = commerceUser.ExternalId }; var party = new Models.CustomCommerceParty { ExternalId = model.ExternalId, Name = model.Name, Address1 = model.Address1, City = model.City, Country = model.Country, State = model.State, ZipPostalCode = model.ZipPostalCode, PartyId = model.PartyId, IsPrimary = model.IsPrimary }; if (string.IsNullOrEmpty(party.ExternalId)) { // Verify we have not reached the maximum number of addresses supported. int numberOfAddresses = this.AllAddresses(result).Count; if (numberOfAddresses >= StorefrontManager.CurrentStorefront.MaxNumberOfAddresses) { var message = StorefrontManager.GetSystemMessage("MaxAddresseLimitReached"); result.Errors.Add(string.Format(CultureInfo.InvariantCulture, message, numberOfAddresses)); result.Success = false; } else { var response = this.AccountManager.AddParties(this.CurrentStorefront, customer, new List<Models.CustomCommerceParty> { party }); result.SetErrors(response.ServiceProviderResult); if (response.ServiceProviderResult.Success) { addresses = this.AllAddresses(result); } result.Initialize(addresses, null); } } else { var response = this.AccountManager.UpdateParties(this.CurrentStorefront, customer, new List<Models.CustomCommerceParty> { party }); result.SetErrors(response.ServiceProviderResult); if (response.ServiceProviderResult.Success) { addresses = this.AllAddresses(result); } result.Initialize(addresses, null); } } return Json(result, JsonRequestBehavior.AllowGet); } catch (Exception e) { CommerceLog.Current.Error("AddressModify", this, e); return Json(new BaseJsonResult("AddressModify", e), JsonRequestBehavior.AllowGet); } }
public JsonResult AddressList() { try { var result = new AddressListItemJsonResult(); var addresses = this.AllAddresses(result); var countries = this.GetAvailableCountries(result); result.Initialize(addresses, countries); return Json(result, JsonRequestBehavior.AllowGet); } catch (Exception e) { CommerceLog.Current.Error("AddressList", this, e); return Json(new BaseJsonResult("AddressList", e), JsonRequestBehavior.AllowGet); } }
public JsonResult AddressDelete(DeletePartyInputModelItem model) { try { Assert.ArgumentNotNull(model, "model"); var validationResult = new BaseJsonResult(); this.ValidateModel(validationResult); if (validationResult.HasErrors) { return Json(validationResult, JsonRequestBehavior.AllowGet); } var addresses = new List<Models.CustomCommerceParty>(); var response = this.AccountManager.RemovePartiesFromCurrentUser(this.CurrentStorefront, this.CurrentVisitorContext, model.ExternalId); var result = new AddressListItemJsonResult(response.ServiceProviderResult); if (response.ServiceProviderResult.Success) { addresses = this.AllAddresses(result); } result.Initialize(addresses, null); return Json(result, JsonRequestBehavior.AllowGet); } catch (Exception e) { CommerceLog.Current.Error("AddressDelete", this, e); return Json(new BaseJsonResult("AddressDelete", e), JsonRequestBehavior.AllowGet); } }
private void GetUserInfo(CheckoutDataBaseJsonResult result) { var isUserAuthenticated = Sitecore.Context.User.IsAuthenticated; result.IsUserAuthenticated = isUserAuthenticated; result.UserEmail = isUserAuthenticated && !Context.User.Profile.IsAdministrator ? this.AccountManager.ResolveCommerceUser().Result.Email : string.Empty; if (!isUserAuthenticated) { return; } var addresses = new List<Sitecore.Reference.Storefront.Connect.Models.CommerceParty>(); var response = this.AccountManager.GetCurrentCustomerParties(this.CurrentStorefront, this.CurrentVisitorContext); if (response.ServiceProviderResult.Success && response.Result != null) { addresses = response.Result.ToList(); } var addressesResult = new AddressListItemJsonResult(); addressesResult.Initialize(addresses, null); result.UserAddresses = addressesResult; result.SetErrors(response.ServiceProviderResult); }