public static GiftVoucher ToEntity(this GiftVoucherModel model, GiftVoucher destination, IDateTimeService dateTimeService)
        {
            var giftVoucher = model.MapTo(destination);

            giftVoucher.ValidTo = model.ValidTo.ConvertToUtcTime(dateTimeService);
            return(giftVoucher);
        }
        public async Task <IActionResult> NotifyRecipient(GiftVoucherModel model)
        {
            var giftVoucher = await _giftVoucherService.GetGiftVoucherById(model.Id);

            if (!CommonHelper.IsValidEmail(giftVoucher.RecipientEmail))
            {
                ModelState.AddModelError("", "Recipient email is not valid");
            }
            if (!CommonHelper.IsValidEmail(giftVoucher.SenderEmail))
            {
                ModelState.AddModelError("", "Sender email is not valid");
            }

            try
            {
                if (ModelState.IsValid)
                {
                    await _giftVoucherViewModelService.NotifyRecipient(giftVoucher, model);
                }
                else
                {
                    Error(ModelState);
                }
            }
            catch (Exception exc)
            {
                Error(exc, false);
            }

            return(RedirectToAction("Edit", new { id = model.Id }));
        }
        public virtual async Task NotifyRecipient(GiftVoucher giftVoucher, GiftVoucherModel model)
        {
            model = giftVoucher.ToModel(_dateTimeService);
            var order = await FillGiftVoucherModel(giftVoucher, model);

            var languageId = "";

            if (order != null)
            {
                var customerLang = await _languageService.GetLanguageById(order.CustomerLanguageId);

                if (customerLang == null)
                {
                    customerLang = (await _languageService.GetAllLanguages()).FirstOrDefault();
                }
                if (customerLang != null)
                {
                    languageId = customerLang.Id;
                }
            }
            else
            {
                languageId = _languageSettings.DefaultAdminLanguageId;
            }
            int queuedEmailId = await _messageProviderService.SendGiftVoucherMessage(giftVoucher, order, languageId);

            if (queuedEmailId > 0)
            {
                giftVoucher.IsRecipientNotified = true;
                await _giftVoucherService.UpdateGiftVoucher(giftVoucher);

                model.IsRecipientNotified = true;
            }
        }
        public async Task <IActionResult> Edit(GiftVoucherModel model, bool continueEditing)
        {
            var giftVoucher = await _giftVoucherService.GetGiftVoucherById(model.Id);

            if (giftVoucher == null)
            {
                return(RedirectToAction("List"));
            }

            await _giftVoucherViewModelService.FillGiftVoucherModel(giftVoucher, model);

            if (ModelState.IsValid)
            {
                giftVoucher = await _giftVoucherViewModelService.UpdateGiftVoucherModel(giftVoucher, model);

                Success(_translationService.GetResource("Admin.GiftVouchers.Updated"));

                if (continueEditing)
                {
                    //selected tab
                    await SaveSelectedTabIndex();

                    return(RedirectToAction("Edit", new { id = giftVoucher.Id }));
                }
                return(RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            return(View(model));
        }
        public virtual async Task <GiftVoucherModel> PrepareGiftVoucherModel(GiftVoucherModel model)
        {
            foreach (var currency in await _currencyService.GetAllCurrencies())
            {
                model.AvailableCurrencies.Add(new SelectListItem {
                    Text = currency.Name, Value = currency.CurrencyCode
                });
            }

            return(model);
        }
        public virtual async Task <GiftVoucher> InsertGiftVoucherModel(GiftVoucherModel model)
        {
            var giftVoucher = model.ToEntity(_dateTimeService);

            giftVoucher.CreatedOnUtc = DateTime.UtcNow;
            await _giftVoucherService.InsertGiftVoucher(giftVoucher);

            //activity log
            await _customerActivityService.InsertActivity("AddNewGiftVoucher", giftVoucher.Id, _translationService.GetResource("ActivityLog.AddNewGiftVoucher"), giftVoucher.Code);

            return(giftVoucher);
        }
        public async Task <IActionResult> Create(GiftVoucherModel model, bool continueEditing)
        {
            if (ModelState.IsValid)
            {
                var giftVoucher = await _giftVoucherViewModelService.InsertGiftVoucherModel(model);

                Success(_translationService.GetResource("Admin.GiftVouchers.Added"));
                return(continueEditing ? RedirectToAction("Edit", new { id = giftVoucher.Id }) : RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            model = await _giftVoucherViewModelService.PrepareGiftVoucherModel(model);

            return(View(model));
        }
Example #8
0
 public ProductDetailsModel()
 {
     DefaultPictureModel   = new PictureModel();
     PictureModels         = new List <PictureModel>();
     GiftVoucher           = new GiftVoucherModel();
     ProductPrice          = new ProductPriceModel();
     AddToCart             = new AddToCartModel();
     ProductAttributes     = new List <ProductAttributeModel>();
     AssociatedProducts    = new List <ProductDetailsModel>();
     BrandModel            = new BrandBriefInfoModel();
     VendorModel           = new VendorBriefInfoModel();
     Breadcrumb            = new ProductBreadcrumbModel();
     ProductTags           = new List <ProductTagModel>();
     ProductSpecifications = new List <ProductSpecificationModel>();
     ProductCollections    = new List <CollectionModel>();
     ProductReviewOverview = new ProductReviewOverviewModel();
     TierPrices            = new List <TierPriceModel>();
     Parameters            = new List <SelectListItem>();
     ProductBundleModels   = new List <ProductBundleModel>();
     ProductWarehouses     = new List <ProductWarehouseModel>();
 }
        public virtual async Task <GiftVoucher> UpdateGiftVoucherModel(GiftVoucher giftVoucher, GiftVoucherModel model)
        {
            giftVoucher = model.ToEntity(giftVoucher, _dateTimeService);
            await _giftVoucherService.UpdateGiftVoucher(giftVoucher);

            //activity log
            await _customerActivityService.InsertActivity("EditGiftVoucher", giftVoucher.Id, _translationService.GetResource("ActivityLog.EditGiftVoucher"), giftVoucher.Code);

            return(giftVoucher);
        }
        public virtual async Task <Order> FillGiftVoucherModel(GiftVoucher giftVoucher, GiftVoucherModel model)
        {
            Order order = null;

            if (giftVoucher.PurchasedWithOrderItem != null)
            {
                order = await _orderService.GetOrderByOrderItemId(giftVoucher.PurchasedWithOrderItem.Id);
            }

            var currency = await _currencyService.GetCurrencyByCode(giftVoucher.CurrencyCode);

            if (currency == null)
            {
                currency = await _currencyService.GetPrimaryStoreCurrency();
            }

            model.PurchasedWithOrderId = giftVoucher.PurchasedWithOrderItem != null ? order.Id : null;
            model.RemainingAmountStr   = _priceFormatter.FormatPrice(giftVoucher.GetGiftVoucherRemainingAmount(), currency, _workContext.WorkingLanguage, true, false);
            model.AmountStr            = _priceFormatter.FormatPrice(giftVoucher.Amount, currency, _workContext.WorkingLanguage, true, false);
            model.CreatedOn            = _dateTimeService.ConvertToUserTime(giftVoucher.CreatedOnUtc, DateTimeKind.Utc);
            model.CurrencyCode         = giftVoucher.CurrencyCode;
            return(order);
        }