コード例 #1
0
        public async Task <HomeViewModel> GetHomeViewModel()
        {
            var settings = await _settings.Get();

            var catalog    = new List <CatalogModel>();
            var categories = await _categoryService.GetAllPublishedWithProductsAndStyles();

            foreach (var category in categories)
            {
                var catalogModel     = new CatalogModel(category.Name);
                var categoryProducts = category.ProductCategories.Select(x => x.Product).OrderBy(x => x.ProductName);
                foreach (var product in categoryProducts)
                {
                    catalogModel.Products.Add(new ProductsAzViewModel
                    {
                        Id        = product.Id,
                        Name      = product.ProductName,
                        Slug      = product.Slug,
                        Price     = $"{product.Styles?.FirstOrDefault()?.Price:n2}",
                        ImgSource = "images/" + product.Slug + ".jpg"
                    });
                }
                catalog.Add(catalogModel);
            }
            return(new HomeViewModel
            {
                Catalog = catalog,
                SiteTitle = settings?.SiteTitle ?? "NEW SITE",
                Description = settings?.Description ?? "NEW SITE DESCRIPTION"
            });
        }
コード例 #2
0
        public async Task <string> Start(string sessionId, Uri requestUri, bool isSandbox)
        {
            var settings = await _siteSettingsService.Get();

            var cart = await _cartService.GetCartViewModel(sessionId);

            var invoiceId      = DateTime.Now.Ticks;
            var paymentRequest = new PaymentRequest(requestUri, settings, cart.Items, invoiceId, isSandbox);
            var redirectUrl    = _paypalService.PayWithPaypal(paymentRequest);

            return(redirectUrl);
        }
コード例 #3
0
        public async Task SendEmailConfirmationLink(HttpRequest request, string username)
        {
            var user = await _userManager.FindByEmailAsync(username);

            var token = await GetEncodedEmailConfirmToken(user);

            var callbackUrl = $"{request?.Scheme}://{request?.Host}{request?.PathBase}/Account/ConfirmEmail/{user.Id}?code={token}";
            var settings    = await _settings.Get();

            var htmlBody    = $"Please confirm your account by clicking <a href=\"{callbackUrl}\">here</a>";
            var smtpRequest = new SmtpRequest(settings, htmlBody, callbackUrl, user.Email, Subject);
            await _emailSender.SendEmail(smtpRequest);
        }
コード例 #4
0
        public async Task <string> Start(string sessionId, Uri requestUri, bool isSandbox)
        {
            var settings = await _siteSettingsService.Get();

            var profile = await _siteSettingsService.GetSiteProfile();

            var cart = await _cartService.GetCartViewModel(sessionId);

            var paymentRequestOptions = new PaymentRequestOptions(profile, settings, requestUri, isSandbox);
            var paymentRequest        = new PaymentRequest(cart.Items, paymentRequestOptions);
            var redirectUrl           = _paypalService.PayWithPaypal(paymentRequest);

            return(redirectUrl);
        }
コード例 #5
0
        public async Task GetApiContext_GivenAPaymentRequestWithValidApiCredentials_ReturnsAnApiContextWithAValidRequestId()
        {
            //arrange
            var settings = await _settings.Get();

            var sut            = _fixture.Resolve <IPaypalService>();
            var paymentRequest = new PaymentRequest(_fixture.ProductionCheckoutUri, settings, CartViewStubs.Get(), 123);

            //act
            var apiContext = sut.GetApiContext(paymentRequest);

            //assert
            Assert.Equal(36, apiContext.RequestId.Length);
        }
コード例 #6
0
ファイル: ThemeSelector.cs プロジェクト: RabbitTeam/RabbitCMS
 /// <summary>
 /// 根据当前请求获取主题。
 /// </summary>
 /// <param name="context">请求上下文。</param>
 /// <returns>
 /// 主题选择结果。
 /// </returns>
 public ThemeSelectorResult GetTheme(RequestContext context)
 {
     return(new ThemeSelectorResult
     {
         ThemeName = _siteSettingsService.Get().Result.ThemeName
     });
 }
コード例 #7
0
        public async Task <ActionResult> ListHome(int pageIndex)
        {
            ViewBag.AppendTenantName = false;

            var siteSettings = await _siteSettingsService.Get();

            return(List(pageIndex, _postService.GetHomeList(), siteSettings.Seo, true));
        }
コード例 #8
0
        private async Task <SmtpRequest> GetSmtpRequest(Order order)
        {
            var settings = await _siteSettingsService.Get();

            var textBody = EmailHelper.GetOrderConfirmationTextBody(order, order.IsGuestOrder);
            var htmlBody = EmailHelper.GetOrderConfirmationHtmlBody(order);

            return(new SmtpRequest(settings, htmlBody, textBody, order.Email, Orders.EmailSubject));
        }
コード例 #9
0
        public async Task Subscribe(string email)
        {
            var settings = await _siteSettingsService.Get();

            var mc     = new MailChimpManager(settings.MailChimpApiKey);
            var member = new Member {
                EmailAddress = email, StatusIfNew = Status.Subscribed
            };
            await mc.Members.AddOrUpdateAsync(settings.MailChimpListId, member);
        }
コード例 #10
0
ファイル: OrderService.cs プロジェクト: Muulfz/bluetapecrew
        private async Task <SmtpRequest> GetSmtpRequest(Order order)
        {
            var settings = await _siteSettingsService.Get();

            var user = await _users.Find(order.Email);

            var textBody = EmailTemplates.GetOrderConfirmationTextBody(order, user != null);
            var htmlBody = EmailTemplates.GetOrderConfirmationHtmlBody(order);

            return(new SmtpRequest(settings, htmlBody, textBody, order.Email, Orders.EmailSubject));
        }
コード例 #11
0
        public async Task <IActionResult> Get(string email)
        {
            try
            {
                var request = EmailHelper.GetTestEmailRequest(await _siteSettingsService.Get(), email, _sessionService.SessionId(), TestEmailSubject);
                await _emailService.SendEmail(request);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
コード例 #12
0
        public async Task <decimal> Calculate(decimal subtotal)
        {
            if (subtotal == 0.00m)
            {
                return(0.00m);
            }
            var settings = await _siteSettingsService.Get();

            var freeShippingThreshold = settings?.FreeShippingThreshold ?? 0.0m;
            var flatShippingRate      = settings?.FlatShippingRate ?? 0.0m;

            return(subtotal >= freeShippingThreshold
                ? 0.00m
                : flatShippingRate);
        }
コード例 #13
0
 public async Task <JObject> SiteSettings() => JObject.FromObject(await _siteSettingsService.Get());
コード例 #14
0
 public async Task <SiteSetting> Get() => await _siteSettingsService.Get();
コード例 #15
0
 public async Task <IActionResult> GetSite([FromQuery] string id) => OkOrBadRequest(await siteService.Get(id, UserId));
コード例 #16
0
        public async Task <ActionResult> Index()
        {
            var model = (SiteSettingsViewModel)await _siteSettingsService.Get();

            return(View(model));
        }
コード例 #17
0
ファイル: TenantService.cs プロジェクト: RabbitTeam/RabbitCMS
 /// <summary>
 /// 获取当前租户设置。
 /// </summary>
 /// <returns>
 /// 当前租户设置实例。
 /// </returns>
 public ITenant GetTenantSettings()
 {
     return(new DefaultTenant(_siteSettingsService.Get().Result.Name));
 }
コード例 #18
0
 public async Task <SiteSettingsViewModel> Get() => new SiteSettingsViewModel
 {
     SiteSettings = await _siteSettingsService.Get(),
     SiteProfile  = await _siteSettingsService.GetSiteProfile()
 };
コード例 #19
0
 public FeedController(IThemePostService postService, ISiteSettingsService siteSettingsService)
 {
     _postService  = postService;
     _siteSettings = siteSettingsService.Get().Result;
 }