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); }
/// <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); }
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); }