/// <summary> /// Get the view Model to display the Sign In Header /// </summary> /// <returns> /// The view model to display the Sign In Header /// </returns> public virtual async Task <SignInHeaderViewModel> GetSignInHeaderModel(GetSignInHeaderParam param) { var myAccountUrl = MyAccountUrlProvider.GetMyAccountUrl(new BaseUrlParameter { CultureInfo = param.CultureInfo }); var loginUrl = MyAccountUrlProvider.GetLoginUrl(new BaseUrlParameter { CultureInfo = param.CultureInfo }); var customer = await CustomerRepository.GetCustomerByIdAsync(new GetCustomerByIdParam { CultureInfo = param.CultureInfo, CustomerId = param.CustomerId, Scope = param.Scope }).ConfigureAwait(false); var viewModel = ViewModelMapper.MapTo <SignInHeaderViewModel>(customer, param.CultureInfo) ?? new SignInHeaderViewModel(); viewModel.IsLoggedIn = param.IsAuthenticated; viewModel.EncryptedCustomerId = param.EncryptedCustomerId; viewModel.Url = viewModel.IsLoggedIn ? myAccountUrl : loginUrl; return(viewModel); }
public virtual IHttpActionResult Register(RegisterRequest registerRequest) { //todo: Captcha for bots or not?! if (registerRequest == null) { return(BadRequest("No body found in the request")); } var returnUrl = registerRequest.ReturnUrl; if (string.IsNullOrWhiteSpace(returnUrl) || !UrlFormatter.IsReturnUrlValid(RequestUtils.GetBaseUrl(Request).ToString(), returnUrl)) { returnUrl = MyAccountUrlProvider.GetMyAccountUrl(new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }); } var registerParam = new CreateUserParam { Username = registerRequest.Username, Password = registerRequest.Password, Email = registerRequest.Email, FirstName = registerRequest.FirstName, LastName = registerRequest.LastName, PhoneNumber = registerRequest.PhoneNumber, PasswordQuestion = registerRequest.PasswordQuestion, PasswordAnswer = registerRequest.PasswordAnswer, ReturnUrl = returnUrl, Scope = ComposerContext.Scope, CultureInfo = ComposerContext.CultureInfo, GuestCustomerId = ComposerContext.CustomerId }; var createAccountViewModel = MembershipViewService.RegisterAsync(registerParam).Result; if (!createAccountViewModel.IsSuccess) { return(Ok(createAccountViewModel)); } var loginParam = new LoginParam { CultureInfo = ComposerContext.CultureInfo, Scope = ComposerContext.Scope, GuestCustomerId = ComposerContext.CustomerId, Username = registerRequest.Email, Password = registerRequest.Password }; var loginViewModel = MembershipViewService.LoginAsync(loginParam).Result; ComposerContext.IsGuest = false; ComposerContext.CustomerId = createAccountViewModel.CustomerId; FormsAuthentication.SetAuthCookie(createAccountViewModel.Username, true, WebsiteContext.WebsiteId.ToString()); return(Ok(createAccountViewModel)); }
public virtual IHttpActionResult SignIn(LoginViewModel loginRequest) { if (loginRequest == null) { return(BadRequest("Request body cannot be null")); } var returnUrl = loginRequest.ReturnUrl; if (string.IsNullOrWhiteSpace(returnUrl) || !UrlFormatter.IsReturnUrlValid(RequestUtils.GetBaseUrl(Request).ToString(), returnUrl)) { returnUrl = MyAccountUrlProvider.GetMyAccountUrl(new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }); } var loginParam = new LoginParam { Password = loginRequest.Password, Username = loginRequest.Username, Scope = ComposerContext.Scope, CultureInfo = ComposerContext.CultureInfo, ReturnUrl = returnUrl, GuestCustomerId = ComposerContext.CustomerId, }; var loginViewModel = MembershipViewService.LoginAsync(loginParam).Result; if (!loginViewModel.IsSuccess) { return(Ok(loginViewModel)); } ComposerContext.CustomerId = loginViewModel.CustomerId; ComposerContext.IsGuest = false; if (loginRequest.IsRememberMe) { FormsAuthentication.SetAuthCookie( loginViewModel.Username, SiteConfiguration.CookieAccesserSettings.TimeoutInMinutes, loginRequest.IsRememberMe, WebsiteContext.WebsiteId.ToString(), SiteConfiguration.CookieAccesserSettings.RequireSsl); } else { FormsAuthentication.SetAuthCookie(loginViewModel.Username, true, WebsiteContext.WebsiteId.ToString()); } return(Ok(loginViewModel)); }
/// <summary> /// Get the view Model to display User information /// </summary> /// <returns> /// The view model to display the User information /// </returns> public virtual async Task <UserMetadataViewModel> GetUserMetadataModel(GetUserMetadataParam param) { var urlParam = new BaseUrlParameter { CultureInfo = param.CultureInfo }; var customer = await CustomerRepository.GetCustomerByIdAsync(new GetCustomerByIdParam { CultureInfo = param.CultureInfo, CustomerId = param.CustomerId, Scope = param.Scope }).ConfigureAwait(false); var viewModel = ViewModelMapper.MapTo <UserMetadataViewModel>(customer, param.CultureInfo) ?? new UserMetadataViewModel(); viewModel.IsAuthenticated = param.IsAuthenticated; viewModel.EncryptedCustomerId = param.EncryptedCustomerId; viewModel.Url = viewModel.IsAuthenticated ? MyAccountUrlProvider.GetMyAccountUrl(urlParam) : MyAccountUrlProvider.GetLoginUrl(urlParam); viewModel.RegisterUrl = MyAccountUrlProvider.GetCreateAccountUrl(urlParam); return(viewModel); }
public virtual MenuViewModel CreateMenu(string currentUrl) { var urlParam = new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }; bool recurringOrderConfigEnabled = RecurringOrdersSettings.Enabled; var myAccountUrl = MyAccountUrlProvider.GetMyAccountUrl(urlParam); var addressListUrl = MyAccountUrlProvider.GetAddressListUrl(urlParam); var myOrderHistoryUrl = OrderUrlProvider.GetOrderHistoryUrl(new GetOrderUrlParameter { CultureInfo = ComposerContext.CultureInfo }); var myWishListUrl = WishListUrlProvider.GetWishListUrl(new GetWishListUrlParam { CultureInfo = ComposerContext.CultureInfo }); var myRecurringScheduleUrl = RecurringScheduleUrlProvider.GetRecurringScheduleUrl(new GetRecurringScheduleUrlParam { CultureInfo = ComposerContext.CultureInfo }); var currentPageId = new Guid(currentUrl); var menu = new MenuViewModel { MenuItems = new List <MenuItemViewModel>() }; var pageConfiguration = SiteConfiguration.GetPagesConfiguration(ComposerContext.CultureInfo, WebsiteContext.WebsiteId); var myAccountPage = PageService.GetPage(pageConfiguration.MyAccountPageId, ComposerContext.CultureInfo); var myAddressPage = PageService.GetPage(pageConfiguration.AddressListPageId, ComposerContext.CultureInfo); var myOrderHistoryPage = PageService.GetPage(pageConfiguration.OrderHistoryPageId, ComposerContext.CultureInfo); var myWishListage = PageService.GetPage(pageConfiguration.MyWishListPageId, ComposerContext.CultureInfo); var myRecurringSchedulePage = PageService.GetPage(RecurringOrdersSettings.RecurringSchedulePageId, ComposerContext.CultureInfo); var myAccountMenuItem = new MenuItemViewModel { Name = myAccountPage.MenuTitle, Url = myAccountUrl, IsActive = currentPageId == pageConfiguration.MyAccountPageId || currentPageId == pageConfiguration.ChangePasswordPageId }; var myAdressesMenuItem = new MenuItemViewModel { Name = myAddressPage.MenuTitle, Url = addressListUrl, IsActive = currentPageId == pageConfiguration.AddressListPageId || currentPageId == pageConfiguration.AddAddressPageId || currentPageId == pageConfiguration.UpdateAddressPageId }; var myWishListMenuItem = new MenuItemViewModel { Name = myWishListage.MenuTitle, Url = myWishListUrl, IsActive = currentPageId == pageConfiguration.MyWishListPageId }; var myOrderHistoryMenuItem = new MenuItemViewModel { Name = myOrderHistoryPage.MenuTitle, Url = myOrderHistoryUrl, IsActive = currentPageId == pageConfiguration.OrderHistoryPageId || currentPageId == pageConfiguration.OrderDetailsPageId || currentPageId == RecurringOrdersSettings.RecurringCartDetailsPageId }; var myRecurringScheduleMenuItem = new MenuItemViewModel { Name = myRecurringSchedulePage.MenuTitle, Url = myRecurringScheduleUrl, IsActive = currentPageId == RecurringOrdersSettings.RecurringSchedulePageId || currentPageId == RecurringOrdersSettings.RecurringScheduleDetailsPageId }; menu.MenuItems.AddRange(new List <MenuItemViewModel> { myAccountMenuItem, myWishListMenuItem, myAdressesMenuItem, myOrderHistoryMenuItem }); if (recurringOrderConfigEnabled) { menu.MenuItems.Add(myRecurringScheduleMenuItem); } return(menu); }