private FoundationContact CreateFoundationContact(SiteUser user) { if (user == null) { throw new ArgumentNullException("user"); } var contact = FoundationContact.New(); if (!user.FirstName.IsNullOrEmpty() || !user.LastName.IsNullOrEmpty()) { contact.FullName = string.Format("{0} {1}", user.FirstName, user.LastName); } contact.FirstName = user.FirstName; contact.LastName = user.LastName; contact.Email = user.Email; contact.UserId = user.Email; contact.RegistrationSource = user.RegistrationSource; //if (user.Addresses != null && user.Addresses.Any()) //{ // foreach (var address in user.Addresses) // { // contact.Contact.AddContactAddress(address); // } //} contact.SaveChanges(); SetPreferredAddresses(contact.Contact); return(contact); }
public void Add(Guid contentGuid) { var currentContact = CustomerContext.Current.CurrentContact; if (currentContact != null) { var contentReference = _permanentLinkMapper.Find(contentGuid).ContentReference; var contact = new FoundationContact(currentContact); var bookmarkModel = new BookmarkModel(); if (_contentLoader.TryGet <IContent>(contentReference, out var content)) { bookmarkModel.ContentLink = contentReference; bookmarkModel.ContentGuid = content.ContentGuid; bookmarkModel.Name = content.Name; bookmarkModel.Url = _urlResolver.GetUrl(content); } var contactBookmarks = contact.ContactBookmarks; if (contactBookmarks.FirstOrDefault(x => x.ContentGuid == bookmarkModel.ContentGuid) == null) { contactBookmarks.Add(bookmarkModel); } contact.Bookmarks = JsonConvert.SerializeObject(contactBookmarks); contact.SaveChanges(); } }
protected virtual void AddCommerceComponents(FoundationContact contact, HeaderViewModel viewModel) { if (_databaseMode.DatabaseMode == DatabaseMode.ReadOnly) { viewModel.MiniCart = new MiniCartViewModel(); viewModel.WishListMiniCart = new MiniWishlistViewModel(); viewModel.SharedMiniCart = new MiniCartViewModel(); return; } viewModel.MiniCart = _cartViewModelFactory.CreateMiniCartViewModel( _cartService.LoadCart(_cartService.DefaultCartName, true)?.Cart); viewModel.WishListMiniCart = _cartViewModelFactory.CreateMiniWishListViewModel( _cartService.LoadCart(_cartService.DefaultWishListName, true)?.Cart); var organizationId = contact?.FoundationOrganization?.OrganizationId.ToString(); if (!organizationId.IsNullOrEmpty()) { viewModel.SharedMiniCart = _cartViewModelFactory.CreateMiniCartViewModel( _cartService.LoadCart(_cartService.DefaultSharedCartName, organizationId, true)?.Cart, true); viewModel.ShowSharedCart = true; } }
private UserSearchResultModel ConvertToUserSearchResultModel(FoundationContact contact) { return(new UserSearchResultModel { ContactId = contact.ContactId, Email = contact.Email, FirstName = contact.FirstName, LastName = contact.LastName, FullName = contact.FullName }); }
public ContactViewModel(FoundationContact contact) { ContactId = contact.ContactId; FirstName = contact.FirstName; LastName = contact.LastName; Email = contact.Email; Organization = contact.FoundationOrganization != null ? new OrganizationModel(contact.FoundationOrganization) : null; UserRole = contact.UserRole; Budget = contact.Budget != null ? new BudgetViewModel(contact.Budget) : null; Location = contact.UserLocationId; }
public List <BookmarkModel> Get() { var currentContact = CustomerContext.Current.CurrentContact; if (currentContact != null) { var contact = new FoundationContact(currentContact); return(contact.ContactBookmarks); } return(new List <BookmarkModel>()); }
public IActionResult AddUser(UsersPage currentPage) { var organization = _organizationService.GetCurrentFoundationOrganization(); var viewModel = new UsersPageViewModel { CurrentContent = currentPage, Contact = FoundationContact.New(), Organizations = organization?.SubOrganizations ?? new List <FoundationOrganization>() }; return(View(viewModel)); }
public void AddNumberOfOrders() { var currentContact = CustomerContext.Current.CurrentContact; if (currentContact != null) { var contact = new FoundationContact(currentContact); contact.NumberOfOrders += 1; contact.Points += 10; contact.Tier = SetTier(contact.Points); contact.SaveChanges(); } }
public void Remove(Guid contentGuid) { var currentContact = CustomerContext.Current.CurrentContact; if (currentContact != null) { var contact = new FoundationContact(currentContact); var contactBookmarks = contact.ContactBookmarks; var content = contactBookmarks.FirstOrDefault(x => x.ContentGuid == contentGuid); contactBookmarks.Remove(content); contact.Bookmarks = contactBookmarks.Any() ? JsonConvert.SerializeObject(contactBookmarks) : ""; contact.SaveChanges(); } }
public override ActionResult Index(ElevatedRoleBlock currentBlock) { var viewModel = new ElevatedRoleBlockViewModel(currentBlock); var currentContact = CustomerContext.Current.CurrentContact; if (currentContact != null) { var contact = new FoundationContact(currentContact); if (contact.ElevatedRole == ElevatedRoles.Reader.ToString()) { viewModel.IsAccess = true; } } return(PartialView("~/Features/Blocks/ElevatedRoleBlock/ElevatedRoleBlock.cshtml", viewModel)); }
public virtual void CreateContact(FoundationContact contact, string contactId) { contact.ContactId = Guid.Parse(contactId); contact.UserId = contact.Email; contact.UserLocationId = contact.UserRole != B2BUserRoles.Admin.ToString() ? contact.UserLocationId : ""; contact.SaveChanges(); if (contact.UserRole == B2BUserRoles.Admin.ToString()) { AddContactToOrganization(contact); } else { AddContactToOrganization(contact, contact.FoundationOrganization.OrganizationId.ToString()); } }
public void Save(AddressModel addressModel, FoundationContact contact = null) { FoundationContact currentContact; if (contact != null) { currentContact = contact; } else { currentContact = _customerService.GetCurrentContact(); } if (currentContact == null) { return; } var customerAddress = CreateOrUpdateCustomerAddress(currentContact.Contact, addressModel); if (addressModel.BillingDefault) { currentContact.Contact.PreferredBillingAddress = customerAddress; } else if (currentContact.Contact.PreferredBillingAddress != null && currentContact.Contact.PreferredBillingAddress.Name.Equals(addressModel.AddressId)) { currentContact.Contact.PreferredBillingAddressId = null; } if (addressModel.ShippingDefault) { currentContact.Contact.PreferredShippingAddress = customerAddress; } else if (currentContact.Contact.PreferredShippingAddress != null && currentContact.Contact.PreferredShippingAddress.Name.Equals(addressModel.AddressId)) { currentContact.Contact.PreferredShippingAddressId = null; } currentContact.SaveChanges(); addressModel.AddressId = customerAddress.AddressId.ToString(); }
public virtual void AddContactToOrganization(FoundationContact contact, string organizationId = null) { if (organizationId.IsNullOrEmpty()) { var org = GetCurrentOrganization(); if (org != null) { contact.FoundationOrganization = org; contact.SaveChanges(); } } else { var organization = _customerContext.GetOrganizationById(organizationId); if (organization != null) { contact.FoundationOrganization = new FoundationOrganization(organization); contact.SaveChanges(); } } }
public virtual void EditContact(FoundationContact contact) => UpdateContact(contact.ContactId.ToString(), contact.UserRole, contact.UserLocationId);
public virtual void AddContactToOrganization(FoundationOrganization organization, FoundationContact contact, B2BUserRoles userRole) { contact.FoundationOrganization = organization; contact.UserRole = userRole.ToString(); contact.SaveChanges(); }
private bool ValidateUserRole() { var contactRole = new FoundationContact(CustomerContext.Current.CurrentContact).B2BUserRole; return _authorizedRoles.Any(role => contactRole == role); }
private void SaveCustomer(CustomerPoco customer, PrimaryKeyId orgId) { var user = _userManager.FindByEmailAsync(customer.Email) .GetAwaiter() .GetResult(); if (user == null) { user = new SiteUser { CreationDate = DateTime.UtcNow, Username = customer.Email, Email = customer.Email, FirstName = customer.FirstName, LastName = customer.LastName, IsApproved = true }; var result = _userManager.CreateAsync(user, "Episerver123!") .GetAwaiter() .GetResult(); if (!result.Succeeded) { return; } } foreach (var role in customer.Roles) { if (!_roleManager.RoleExistsAsync(role) .GetAwaiter() .GetResult()) { var createdRole = new IdentityRole(role); var roleResult = _roleManager.CreateAsync(createdRole) .GetAwaiter() .GetResult(); if (!roleResult.Succeeded) { continue; } _userManager.AddToRoleAsync(user.Id, role) .GetAwaiter() .GetResult(); } } FoundationContact foundationContact; var contact = CustomerContext.GetContactByUserId($"String:{customer.Email}"); if (contact == null) { foundationContact = FoundationContact.New(); foundationContact.UserId = customer.Email; foundationContact.Email = customer.Email; } else { foundationContact = new FoundationContact(contact); } foundationContact.FirstName = customer.FirstName; foundationContact.LastName = customer.LastName; foundationContact.FullName = $"{foundationContact.FirstName} {foundationContact.LastName}"; foundationContact.RegistrationSource = "Imported customer"; foundationContact.AcceptMarketingEmail = true; foundationContact.ConsentUpdated = DateTime.UtcNow; foundationContact.UserRole = customer.B2BRole; foundationContact.UserLocationId = customer.Location; foundationContact.DemoUserTitle = customer.DemoUserTitle; foundationContact.DemoUserDescription = customer.DemoUserDescription; foundationContact.ShowInDemoUserMenu = customer.ShowInDemoUserMenu == 0 ? 1 : customer.ShowInDemoUserMenu; foundationContact.DemoSortOrder = customer.DemoSortOrder; if (orgId != PrimaryKeyId.Empty) { foundationContact.Contact.OwnerId = orgId; } foundationContact.SaveChanges(); MapAddressesFromCustomerToContact(customer, foundationContact.Contact); MapCreditCardsFromCustomerToContact(customer.CreditCards, foundationContact.Contact); foundationContact.SaveChanges(); }
protected virtual HeaderViewModel CreateViewModel(IContent currentContent, HomePage homePage, FoundationContact contact, bool isBookmarked) { var menuItems = new List <MenuItemViewModel>(); var homeLanguage = homePage.Language.DisplayName; var layoutSettings = _settingsService.GetSiteSettings <LayoutSettings>(); var referenceSettings = _settingsService.GetSiteSettings <ReferencePageSettings>(); var filter = new FilterContentForVisitor(); menuItems = layoutSettings?.MainMenu?.FilteredItems.Where(x => { var _menuItem = _contentLoader.Get <IContent>(x.ContentLink); MenuItemBlock _menuItemBlock; if (_menuItem is MenuItemBlock) { _menuItemBlock = _menuItem as MenuItemBlock; if (_menuItemBlock.Link == null) { return(true); } var linkedItem = UrlResolver.Current.Route(new UrlBuilder(_menuItemBlock.Link)); if (filter.ShouldFilter(linkedItem)) { return(false); } return(true); } return(true); }).Select(x => { var itemCached = CacheManager.Get(x.ContentLink.ID + homeLanguage + ":" + Constant.CacheKeys.MenuItems) as MenuItemViewModel; if (itemCached != null && !PageEditing.PageIsInEditMode) { return(itemCached); } else { var content = _contentLoader.Get <IContent>(x.ContentLink); MenuItemBlock _; MenuItemViewModel menuItem; if (content is MenuItemBlock) { _ = content as MenuItemBlock; menuItem = new MenuItemViewModel { Name = _.Name, ButtonText = _.ButtonText, TeaserText = _.TeaserText, Uri = _.Link == null ? string.Empty : _urlResolver.GetUrl(new UrlBuilder(_.Link.ToString()), new UrlResolverArguments() { ContextMode = ContextMode.Default }), ImageUrl = !ContentReference.IsNullOrEmpty(_.MenuImage) ? _urlResolver.GetUrl(_.MenuImage) : "", ButtonLink = _.ButtonLink?.Host + _.ButtonLink?.PathAndQuery, ChildLinks = _.ChildItems?.ToList() ?? new List <GroupLinkCollection>() }; } else { menuItem = new MenuItemViewModel { Name = content.Name, Uri = _urlResolver.GetUrl(content.ContentLink), ChildLinks = new List <GroupLinkCollection>() }; } if (!PageEditing.PageIsInEditMode) { var keyDependency = new List <string> { _contentCacheKeyCreator.CreateCommonCacheKey(homePage.ContentLink), // If The HomePage updates menu (remove MenuItems) _contentCacheKeyCreator.CreateCommonCacheKey(x.ContentLink) }; var eviction = new CacheEvictionPolicy(TimeSpan.FromDays(1), CacheTimeoutType.Sliding, keyDependency); CacheManager.Insert(x.ContentLink.ID + homeLanguage + ":" + Constant.CacheKeys.MenuItems, menuItem, eviction); } return(menuItem); } }).ToList(); return(new HeaderViewModel { HomePage = homePage, CurrentContentLink = currentContent?.ContentLink, CurrentContentGuid = currentContent?.ContentGuid ?? Guid.Empty, UserLinks = new LinkItemCollection(), Name = contact?.FirstName ?? "", IsBookmarked = isBookmarked, IsReadonlyMode = _databaseMode.DatabaseMode == DatabaseMode.ReadOnly, MenuItems = menuItems ?? new List <MenuItemViewModel>(), LoginViewModel = new LoginViewModel { ResetPasswordPage = referenceSettings?.ResetPasswordPage ?? ContentReference.StartPage }, RegisterAccountViewModel = new RegisterAccountViewModel { Address = new AddressModel() }, }); }
public virtual void EditContact(FoundationContact model) => UpdateContact(model.ContactId.ToString(), model.UserRole, model.UserLocationId);