public ActionResult AddToCart(Dictionary <string, string> item) { if (!item["culture"].IsNullOrEmpty()) { Thread.CurrentThread.CurrentCulture = new CultureInfo(item["culture"]); } Product product_to_add = UvendiaContext.Products.Single <long>(long.Parse(item["p"])); string size = item["size"]; if (product_to_add.HasVariant) { if (size.IsNullOrEmpty()) { product_to_add = product_to_add.Variants.First(); } else { product_to_add = product_to_add.Variants.First(x => string.Equals(x["Size"] as string, size, StringComparison.InvariantCultureIgnoreCase)); } } var currentCart = CurrentCart.Create(SnuffoSettings.STORE_NAME); currentCart.AddProduct(product_to_add, int.Parse(item["qnty"]), SnuffoSettings.GetCurrency(), 0, item["thumb"]); return(PartialView("~/views/partials/_CartShop.cshtml", new CartShopModel())); }
public ActionResult HandleContactUs(ContactPageModel model) { if (!ReCaptcha.Validate(DataUtils.GetConfig("ReCaptcha:SecretKey"))) { ModelState.AddModelError("", "Captcha cannot be empty"); } if (ModelState.IsValid) { EMail mail = new EMail() { Name = model.Name, SenderEmail = model.EmailAddress, Body = model.Message, ToAddress = SnuffoSettings.Create(model.Content).SupportEmail, Subject = model.Subject, IsHtml = true }; EmailUtils.SendEmail(mail); return(Redirect($"/{CurrentUser.LanguageCode}/contact/submitted")); } return(CurrentUmbracoPage()); }
public ActionResult ShopPage(ContentModel model, int page = 1, string sorting = "") { var settings = SnuffoSettings.Create(model.Content); var shopPageModel = new ShopPageModel(model.Content); shopPageModel.Categories = UvendiaContext.Categories.GetByStoreId(settings.StoreId); shopPageModel.PageIndex = page; long totalRows; long categoryId; long.TryParse(Request.QueryString["c"], out categoryId); long priceDefinitionId = UvendiaContext.PriceDefinitions.Single(SnuffoSettings.GetCurrency()).Id; var sortBy = sorting.IsNullOrEmpty() ? ProductSortyBy.Popularity : (ProductSortyBy)Enum.Parse(typeof(ProductSortyBy), sorting, true); var products = UvendiaContext.Products.GetProductsPaged(shopPageModel.PageIndex, shopPageModel.PageSize, out totalRows, categoryId > 0 ? categoryId : (long?)null, true, priceDefinitionId, sortyBy: sortBy); shopPageModel.TotalRows = totalRows; shopPageModel.Products = products; shopPageModel.SelectedSorting = sortBy.ToString(); return(CurrentTemplate(shopPageModel)); }
public ActionResult ChangeEmailAddress(AccountChangeEmailModel model) { var exists = _auth0Helper.SearchAuth0UserByEmail(model.EmailAddress)?.Any(x => x.UserId.StartsWith("auth0") && x.UserId != CurrentUser.UserId); if (exists.GetValueOrDefault()) { ModelState.AddModelError("", "E-mail address already exists"); } if (ModelState.IsValid) { try { _auth0Helper.ChangeEmail(CurrentUser.UserId, model.EmailAddress); this.AuthenticationManager.SignOut(); SnuffoSettings.ShowMessage(TempData, "E-mail Address Updated", "Your E-mail address has been updated. Please login again.", AlertMessageType.Success); return(Redirect($"/{CurrentUser.LanguageCode}/account/login-register/")); } catch (Exception e) { HandleAuth0Exception(e); } } return(CurrentUmbracoPage()); }
public ActionResult ResetPassword(ResetPasswordModel model) { User user = null; var userId = Request.QueryString["u"] ?? CurrentUser.UserId; if (!userId.IsNullOrEmpty()) { user = _auth0Helper.GetAuth0User(userId); } if (user == null) { ModelState.AddModelError("", "User not found"); } if (ModelState.IsValid) { try { _auth0Helper.ChangePassword(userId, model.Password); SnuffoSettings.ShowMessage(TempData, "Reset Password", "Your password has been changed", AlertMessageType.Success); if (model.RedirectToLogin) { return(Redirect($"/{CurrentUser.LanguageCode}/account/login-register/")); } } catch (Exception e) { HandleAuth0Exception(e); } } return(CurrentUmbracoPage()); }
private MailController(HttpRequestBase request, IPublishedContent content, SnuffoSettings settings = null, string language = "en") { _settings = settings ?? SnuffoSettings.Create(content); _systemEmail = _settings.StoreEmail; _request = request; _language = language; if (_request != null) { var data = new RouteData(); data.DataTokens["mail"] = "Mailing"; this.ControllerContext = new ControllerContext(_request.RequestContext.HttpContext, data, this); } }
public ActionResult LanguageCurrencySelect(LanguageCurrencySelectModel model) { var currentCart = CurrentCart.Create(SnuffoSettings.STORE_NAME); if (!currentCart.HasCartItems()) { SnuffoSettings.SetCurrency(model.SelectedCurrency); } else { base.ShowAlertMessage("Multiple Currencies Detected", "It is not allowed to add multiple type of currencies to your shopping cart", AlertMessageType.Error); } return(CurrentUmbracoPage()); }
public ActionResult AccountProfile(AccountProfileModel model) { if (ModelState.IsValid) { try { _auth0Helper.UpdateAuth0User(model); SnuffoSettings.ShowMessage(TempData, "Profile Updated", "Your profile has been updated", AlertMessageType.Success); } catch (Exception e) { HandleAuth0Exception(e); } } return(CurrentUmbracoPage()); }
public ActionResult DeleteAccount(ContentModel model) { if (ModelState.IsValid) { try { _auth0Helper.DeleteAuth0User(CurrentUser.UserId); this.AuthenticationManager.SignOut(); SnuffoSettings.ShowMessage(TempData, "Account Deleted", "Your account has been deleted.", AlertMessageType.Info); return(Redirect($"/{CurrentUser.LanguageCode}/")); } catch (Exception e) { HandleAuth0Exception(e); } } return(CurrentUmbracoPage()); }
public ActionResult Subscribe(SubscribeModel model) { if (!model.HoneyPot.IsNullOrEmpty()) { ModelState.AddModelError("", ""); } if (!DateTime.TryParseExact(model.Timestamp, "ffffHHMMtssddyyyymm", null, DateTimeStyles.None, out DateTime commentDate) && commentDate.Day == DateTime.UtcNow.Day && commentDate.Month == DateTime.UtcNow.Month && commentDate.Year == DateTime.UtcNow.Year && commentDate.Hour == DateTime.UtcNow.Hour) { ModelState.AddModelError("", ""); } if (ModelState.IsValid) { // Persist to database var sub = UvendiaContext.Subscriptions.Single($"{nameof(Subscription.Email)}=@Email", new { model.Email }); if (sub == null) { UvendiaContext.Subscriptions.Insert <long>( new Subscription { Email = model.Email, IsActive = true, ModifiedBy = CurrentUser.UserId, CreatedBy = CurrentUser.UserId }); } else { sub.IsActive = true; sub.ModifiedOn = DateTime.Now; sub.ModifiedBy = CurrentUser.UserId; UvendiaContext.Subscriptions.Save(sub); } SnuffoSettings.ShowMessage(TempData, "Subscribed", "Your e-mail has been subscribed successfully"); } return(CurrentUmbracoPage()); }
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()); }
static CheckoutPageController() { var config = new MapperConfiguration(cfg => { cfg.CreateMap <Order, CheckoutOrder>() .ForMember(dest => dest.Company, opt => opt.MapFrom(src => SnuffoSettings.STORE_NAME)) .ForMember(dest => dest.OrderReference, opt => opt.MapFrom(src => src.OrderNumber)) .ForMember(dest => dest.IssuerId, opt => opt.MapFrom(src => src.MetaData)) .ForMember(dest => dest.PaymentMethod, opt => opt.MapFrom(src => string.Equals(src.PaymentMethod.Name, CS.PaymentMethod.iDEAL.ToString(), StringComparison.InvariantCultureIgnoreCase) ? CS.PaymentMethod.iDEAL : CS.PaymentMethod.PayPal)) .ForMember(dest => dest.OrderDate, opt => opt.MapFrom(src => src.OrderDate)) .ForMember(dest => dest.CallBackUrlOnPaymentSucceed, opt => opt.Ignore()) .ForMember(dest => dest.CallBackUrlOnPaymentFailed, opt => opt.Ignore()) .ForMember(dest => dest.Currency, opt => opt.MapFrom(src => SnuffoSettings.GetCurrency())) .ForMember(dest => dest.ShippingFee, opt => opt.MapFrom(src => src.CalculateShippingFee())) .ForMember(dest => dest.ServiceFee, opt => opt.MapFrom(src => src.CalculatePaymentFee())) .ForMember(dest => dest.Subtotal, opt => opt.MapFrom(src => src.CalculateSubTotalWithoutVAT())) .ForMember(dest => dest.Total, opt => opt.MapFrom(src => src.CalculateTotal())) .ForMember(dest => dest.Discount, opt => opt.Ignore()) .ForMember(dest => dest.VAT, opt => opt.MapFrom(src => src.CalculateVAT())); cfg.CreateMap <ProductOrderDetail, CheckoutOrderDetail>() .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Product.Sku)) .ForMember(dest => dest.Quantity, opt => opt.MapFrom(src => src.Quantity)) .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Product.DisplayName(null))) .ForMember(dest => dest.UnitPrice, opt => opt.MapFrom(src => src.CalculatePriceWithDiscount())); cfg.CreateMap <TicketOrderDetail, CheckoutOrderDetail>() .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.TicketSale.Id)) .ForMember(dest => dest.Quantity, opt => opt.MapFrom(src => src.Quantity)) .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.TicketSale.Description)) .ForMember(dest => dest.UnitPrice, opt => opt.MapFrom(src => src.CalculatePriceWithDiscount())); }); OrderMapper = config.CreateMapper(); //Mapper.AssertConfigurationIsValid(); }
public LanguageCurrencySelectModel(IPublishedContent content) : base(content) { var currency = SnuffoSettings.GetCurrency(); SelectedCurrency = currency; }
/// <summary> /// Sets the alert message to be show for the user. /// </summary> /// <param name="message">Message to be shown.</param> public void ShowAlertMessage(string title, string msg, AlertMessageType messageType = AlertMessageType.Info) { SnuffoSettings.ShowMessage(TempData, title, msg, messageType); }
public static MailController Instance(SnuffoSettings settings, string language) { return(new MailController(null, null, settings, language)); }
public static MailController Instance(HttpRequestBase request, SnuffoSettings settings, string language) { return(new MailController(request, null, settings, language)); }