示例#1
0
        public Submission GenerateNewSubmission(string orderJson = "")
        {
            int siteId     = kenticoSite.GetKenticoSite().Id;
            int userId     = kenticoUsers.GetCurrentUser().UserId;
            int customerId = kenticoUsers.GetCurrentCustomer().Id;

            var oldSubmissions = submissionProvider.GetSubmissions(siteId, userId, customerId);

            foreach (var oldSubmission in oldSubmissions)
            {
                submissionProvider.DeleteSubmission(oldSubmission.SubmissionId);
            }

            var submission = new Submission()
            {
                SubmissionId    = Guid.NewGuid(),
                AlreadyVerified = false,
                Processed       = false,
                UserId          = userId,
                CustomerId      = customerId,
                SiteId          = siteId,
                OrderJson       = orderJson
            };

            submissionProvider.SaveSubmission(submission);
            kenticoLog.LogInfo("Submission Created", "Info", $"Submission {submission.SubmissionId} was generated");
            return(submission);
        }
示例#2
0
        /// <summary>
        /// Handles FE periodical request if payment processeed
        /// </summary>
        public string CreditcardSaved(string submissionId)
        {
            var submission = submissionService.GetSubmission(submissionId);

            if (submission?.AlreadyVerified ?? false)
            {
                int siteId                = kenticoSite.GetKenticoSite().Id;
                int userId                = kenticoUsers.GetCurrentUser().UserId;
                int customerId            = kenticoUsers.GetCurrentCustomer().Id;
                var submissonOwnerChecked = submission.CheckOwner(siteId, userId, customerId);

                if (submissonOwnerChecked && submission.Processed)
                {
                    var redirectUrl = submission.RedirectUrl;
                    submissionService.DeleteProcessedSubmission(submission);
                    return(redirectUrl);
                }
            }

            return(string.Empty);
        }
示例#3
0
        public async Task <ProductTemplates> GetTemplatesByProduct(int nodeId)
        {
            var productTemplates = new ProductTemplates
            {
                Title           = _resources.GetResourceString("KADENA.PRODUCT.ManageProducts"),
                OpenInDesignBtn = _resources.GetResourceString("Kadena.Product.ManageProducts.OpenInDesign"),
                Header          = new []
                {
                    new ProductTemplatesHeader
                    {
                        Name    = nameof(ProductTemplate.Image).ToCamelCase(),
                        Title   = _resources.GetResourceString("KADENA.PRODUCT.IMAGE"),
                        Sorting = SortingType.None
                    },
                    new ProductTemplatesHeader
                    {
                        Name    = nameof(ProductTemplate.ProductName).ToCamelCase(),
                        Title   = _resources.GetResourceString("KADENA.PRODUCT.NAME"),
                        Sorting = SortingType.None
                    },
                    new ProductTemplatesHeader
                    {
                        Name    = nameof(ProductTemplate.CreatedDate).ToCamelCase(),
                        Title   = _resources.GetResourceString("KADENA.PRODUCT.DATECREATED"),
                        Sorting = SortingType.None
                    },
                    new ProductTemplatesHeader
                    {
                        Name    = nameof(ProductTemplate.UpdatedDate).ToCamelCase(),
                        Title   = _resources.GetResourceString("KADENA.PRODUCT.DATEUPDATED"),
                        Sorting = SortingType.Desc
                    },
                },
                Data = new ProductTemplate[0]
            };

            var product = _products.GetProductByNodeId(nodeId);

            if (product != null && !product.HasProductTypeFlag(ProductTypes.TemplatedProduct))
            {
                return(productTemplates);
            }

            var requestResult = await _templateClient
                                .GetTemplates(_users.GetCurrentUser().UserId, product.ProductChiliTemplateID);

            var productEditorUrl = _resources.GetSettingsKey("KDA_Templating_ProductEditorUrl")?.TrimStart('~');

            if (string.IsNullOrWhiteSpace(productEditorUrl))
            {
                _logger.LogError("GET TEMPLATE LIST", "Product editor URL is not configured");
            }
            else
            {
                productEditorUrl = _documents.GetDocumentUrl(productEditorUrl);
            }

            Func <DateTime, DateTime, bool> IsNewTemplate = (created, updated) =>
            {
                var diff  = updated - created;
                var isNew = diff.TotalSeconds < 10;
                return(isNew);
            };

            if (requestResult.Success)
            {
                var defaultQuantity = 1;
                productTemplates.Data = requestResult.Payload
                                        .Where(t => !IsNewTemplate(t.Created, t.Updated ?? t.Created))
                                        .Select(t =>
                {
                    int quantity = defaultQuantity;
                    if (t.MailingList != null)
                    {
                        quantity = t.MailingList.RowCount;
                    }
                    else
                    {
                        if (t.MetaData.quantity != null)
                        {
                            quantity = t.MetaData.quantity.Value;
                        }
                    }

                    return(new ProductTemplate
                    {
                        EditorUrl = BuildTemplateEditorUrl(productEditorUrl, nodeId, t.TemplateId.ToString(),
                                                           product.ProductChiliWorkgroupID.ToString(), quantity, t.MailingList?.ContainerId, t.Name),
                        TemplateId = t.TemplateId,
                        CreatedDate = t.Created,
                        UpdatedDate = t.Updated,
                        ProductName = t.Name,
                        Image = t.PreviewUrls?.FirstOrDefault()
                    });
                })
                                        .OrderByDescending(t => t.UpdatedDate)
                                        .ToArray();
            }
            else
            {
                _logger.LogError("GET TEMPLATE LIST", requestResult.ErrorMessages);
            }

            return(productTemplates);
        }