private void layoutElem_OnAfterSave(object sender, EventArgs e) { // Delete all attachments if layout was deleted if (FormInfo != null) { var dci = DataClassInfoProvider.GetDataClassInfo(FormInfo.FormClassID); if ((dci != null) && string.IsNullOrEmpty(dci.ClassFormLayout)) { // Delete all attachments MetaFileInfoProvider.DeleteFiles(FormInfo.FormID, BizFormInfo.OBJECT_TYPE, ObjectAttachmentsCategories.LAYOUT); } } // Log synchronization SynchronizationHelper.LogObjectChange(FormInfo, TaskTypeEnum.UpdateObject); }
private void layoutElem_OnAfterSave(object sender, EventArgs e) { BizFormInfo bfi = BizFormInfoProvider.GetBizFormInfo(bizFormId); // Delete all attachments if layout was deleted if (bfi != null) { DataClassInfo dci = DataClassInfoProvider.GetDataClass(bfi.FormClassID); if ((dci != null) && string.IsNullOrEmpty(dci.ClassFormLayout)) { // Delete all attachments MetaFileInfoProvider.DeleteFiles(bfi.FormID, FormObjectType.BIZFORM, MetaFileInfoProvider.OBJECT_CATEGORY_LAYOUT); } } // Log synchronization SynchronizationHelper.LogObjectChange(bfi, TaskTypeEnum.UpdateObject); }
/// <summary> /// Save button is clicked. /// </summary> protected void lnkSave_Click(object sender, EventArgs e) { // Check 'EditForm' permission if (!currentUser.IsAuthorizedPerResource("cms.form", "EditForm")) { RedirectToAccessDenied("cms.form", "EditForm"); } // Validate form string errorMessage = new Validator().NotEmpty(txtEmailFrom.Text.Trim(), GetString("bizform_edit_autoresponder.emptyemail")).NotEmpty(txtEmailSubject.Text.Trim(), GetString("bizform_edit_autoresponder.emptysubject")).Result; // Check if from e-mail contains macro expression or e-mails separated by semicolon if (string.IsNullOrEmpty(errorMessage) && !MacroProcessor.ContainsMacro(txtEmailFrom.Text.Trim()) && !ValidationHelper.IsEmail(txtEmailFrom.Text.Trim())) { errorMessage = GetString("bizform_edit_autoresponder.emptyemail"); } if ((string.IsNullOrEmpty(errorMessage)) || (!pnlCustomLayout.Visible)) { errorMessage = String.Empty; if (formInfo != null) { // Save custom layout if (!string.IsNullOrEmpty(drpEmailField.SelectedValue)) { formInfo.FormConfirmationTemplate = htmlEditor.ResolvedValue.Trim(); formInfo.FormConfirmationEmailField = drpEmailField.SelectedValue; formInfo.FormConfirmationEmailSubject = txtEmailSubject.Text.Trim(); formInfo.FormConfirmationSendFromEmail = txtEmailFrom.Text.Trim(); try { BizFormInfoProvider.SetBizFormInfo(formInfo); ShowChangesSaved(); EnableDisableForm(formInfo.FormConfirmationTemplate); } catch (Exception ex) { errorMessage = ex.Message; } } // Delete custom layout if exists else { formInfo.FormConfirmationTemplate = null; formInfo.FormConfirmationEmailField = drpEmailField.SelectedValue; formInfo.FormConfirmationEmailSubject = string.Empty; formInfo.FormConfirmationSendFromEmail = string.Empty; // Delete all attachments MetaFileInfoProvider.DeleteFiles(formInfo.FormID, BizFormInfo.OBJECT_TYPE, ObjectAttachmentsCategories.FORMLAYOUT); try { BizFormInfoProvider.SetBizFormInfo(formInfo); if (IsLayoutSet) { ShowConfirmation(GetString("Bizform_Edit_Autoresponder.LayoutDeleted")); } else { ShowChangesSaved(); } EnableDisableForm(formInfo.FormConfirmationTemplate); } catch (Exception ex) { errorMessage = ex.Message; } } } } if (!string.IsNullOrEmpty(errorMessage)) { ShowError(errorMessage); } }
protected void variantDailog_OnDeleteVariant(object sender, EventArgs e) { if (Variants.Count <= 0) { return; } // Allow modifying issues in idle state only IssueInfo parentIssue = IssueInfoProvider.GetOriginalIssue(IssueID); if ((parentIssue == null) || (parentIssue.IssueStatus != IssueStatusEnum.Idle)) { return; } int currVariant = CurrentVariant; if (Variants.Count > 2) { IssueInfoProvider.DeleteIssueInfo(Variants[currVariant].IssueID); Variants.RemoveAt(currVariant); RaiseVariantDeleted(); } else { if (Variants.Count == 2) { // Remove variant IssueInfoProvider.DeleteIssueInfo(Variants[currVariant].IssueID); Variants.RemoveAt(currVariant); } // Get remaining variant IssueABVariantItem issueVariant = Variants[0]; Variants.Clear(); IssueInfo issue = IssueInfoProvider.GetIssueInfo(issueVariant.IssueID); if (issue != null) { // Transfer all data from child to parent and delete child const string ignoredColumns = ";issueid;issueguid;issuevariantname;"; foreach (string column in parentIssue.ColumnNames) { if (!ignoredColumns.Contains(String.Format(";{0};", column.ToLowerCSafe()))) { parentIssue.SetValue(column, issue.GetValue(column)); } } parentIssue.IssueIsABTest = false; parentIssue.IssueVariantName = null; parentIssue.IssueVariantOfIssueID = 0; IssueInfoProvider.SetIssueInfo(parentIssue); // Delete files from parent issue if any MetaFileInfoProvider.DeleteFiles(parentIssue.IssueID, IssueInfo.OBJECT_TYPE, ObjectAttachmentsCategories.ISSUE); MetaFileInfoProvider.DeleteFiles(parentIssue.IssueID, IssueInfo.OBJECT_TYPE_VARIANT, ObjectAttachmentsCategories.ISSUE); // Move attachments (meta files) from child to parent MetaFileInfoProvider.MoveMetaFiles(issue.IssueID, parentIssue.IssueID, IssueInfo.OBJECT_TYPE_VARIANT, ObjectAttachmentsCategories.ISSUE, IssueInfo.OBJECT_TYPE, ObjectAttachmentsCategories.ISSUE); MetaFileInfoProvider.MoveMetaFiles(issue.IssueID, parentIssue.IssueID, IssueInfo.OBJECT_TYPE, ObjectAttachmentsCategories.ISSUE, IssueInfo.OBJECT_TYPE, ObjectAttachmentsCategories.ISSUE); // Delete last variant IssueInfoProvider.DeleteIssueInfo(issue); OriginalIssueID = parentIssue.IssueID; // A/B variants have been deleted => deleting A/B test itself ABTestInfo abi = ABTestInfoProvider.GetABTestInfoForIssue(OriginalIssueID); ABTestInfoProvider.DeleteABTestInfo(abi); } RaiseVariantDeleted(); } }
/// <summary> /// Save button is clicked. /// </summary> protected void lnkSave_Click(object sender, EventArgs e) { string errorMessage = null; // check 'ReadForm' permission if (!currentUser.IsAuthorizedPerResource("cms.form", "EditForm")) { RedirectToCMSDeskAccessDenied("cms.form", "EditForm"); } // Validate form errorMessage = new Validator().NotEmpty(txtEmailFrom.Text.Trim(), GetString("bizform_edit_autoresponder.emptyemail")).NotEmpty(txtEmailSubject.Text.Trim(), GetString("bizform_edit_autoresponder.emptysubject")).Result; // Check if from e-mail contains macro expression or e-mails separated by semicolon if (string.IsNullOrEmpty(errorMessage) && !MacroResolver.ContainsMacro(txtEmailFrom.Text.Trim()) && !ValidationHelper.IsEmail(txtEmailFrom.Text.Trim())) { errorMessage = GetString("bizform_edit_autoresponder.emptyemail"); } if ((string.IsNullOrEmpty(errorMessage)) || (!pnlCustomLayout.Visible)) { errorMessage = String.Empty; BizFormInfo bfi = BizFormInfoProvider.GetBizFormInfo(formId); if (bfi != null) { // Save custom layout if (!string.IsNullOrEmpty(drpEmailField.SelectedValue)) { bfi.FormConfirmationTemplate = htmlEditor.ResolvedValue.Trim(); bfi.FormConfirmationEmailField = drpEmailField.SelectedValue; bfi.FormConfirmationEmailSubject = txtEmailSubject.Text.Trim(); bfi.FormConfirmationSendFromEmail = txtEmailFrom.Text.Trim(); try { BizFormInfoProvider.SetBizFormInfo(bfi); DisplayInfoMessage(GetString("General.ChangesSaved")); EnableDisableForm(bfi.FormConfirmationTemplate); } catch (Exception ex) { errorMessage = ex.Message; } } // Delete custom layout if exists else { bfi.FormConfirmationTemplate = null; bfi.FormConfirmationEmailField = drpEmailField.SelectedValue; bfi.FormConfirmationEmailSubject = string.Empty; bfi.FormConfirmationSendFromEmail = string.Empty; // Delete all attachments MetaFileInfoProvider.DeleteFiles(bfi.FormID, FormObjectType.BIZFORM, MetaFileInfoProvider.OBJECT_CATEGORY_FORM_LAYOUT); try { BizFormInfoProvider.SetBizFormInfo(bfi); DisplayInfoMessage(IsLayoutSet ? GetString("Bizform_Edit_Autoresponder.LayoutDeleted") : GetString("General.ChangesSaved")); EnableDisableForm(bfi.FormConfirmationTemplate); } catch (Exception ex) { errorMessage = ex.Message; } } } } if (!string.IsNullOrEmpty(errorMessage)) { DisplayErrorMessage(errorMessage); } }
/// <summary> /// Saves edited SKU and returns it's ID. In case of error 0 is returned. Does not fire product saved event. /// </summary> private int SaveInternal() { // Check permissions this.CheckModifyPermission(); // If form is valid and enabled if (this.Validate() && this.FormEnabled) { bool newItem = false; // Get SKUInfo SKUInfo skuiObj = SKUInfoProvider.GetSKUInfo(mProductId); if (skuiObj == null) { newItem = true; // Create new item -> insert skuiObj = new SKUInfo(); skuiObj.SKUSiteID = editedSiteId; } else { SKUProductTypeEnum oldProductType = skuiObj.SKUProductType; SKUProductTypeEnum newProductType = SKUInfoProvider.GetSKUProductTypeEnum((string)this.selectProductTypeElem.Value); // Remove e-product dependencies if required if ((oldProductType == SKUProductTypeEnum.EProduct) && (newProductType != SKUProductTypeEnum.EProduct)) { // Delete meta files MetaFileInfoProvider.DeleteFiles(skuiObj.SKUID, ECommerceObjectType.SKU, MetaFileInfoProvider.OBJECT_CATEGORY_EPRODUCT); // Delete SKU files DataSet skuFiles = SKUFileInfoProvider.GetSKUFiles("FileSKUID = " + skuiObj.SKUID, null); foreach (DataRow skuFile in skuFiles.Tables[0].Rows) { SKUFileInfo skufi = new SKUFileInfo(skuFile); SKUFileInfoProvider.DeleteSKUFileInfo(skufi); } } // Remove bundle dependencies if required if ((oldProductType == SKUProductTypeEnum.Bundle) && (newProductType != SKUProductTypeEnum.Bundle)) { // Delete SKU to bundle mappings DataSet bundles = BundleInfoProvider.GetBundles("BundleID = " + skuiObj.SKUID, null); foreach (DataRow bundle in bundles.Tables[0].Rows) { BundleInfo bi = new BundleInfo(bundle); BundleInfoProvider.DeleteBundleInfo(bi); } } } skuiObj.SKUName = this.txtSKUName.Text.Trim(); skuiObj.SKUNumber = this.txtSKUNumber.Text.Trim(); skuiObj.SKUDescription = this.htmlTemplateBody.ResolvedValue; skuiObj.SKUPrice = this.txtSKUPrice.Value; skuiObj.SKUEnabled = this.chkSKUEnabled.Checked; skuiObj.SKUInternalStatusID = this.internalStatusElem.InternalStatusID; skuiObj.SKUDepartmentID = this.departmentElem.DepartmentID; skuiObj.SKUManufacturerID = this.manufacturerElem.ManufacturerID; skuiObj.SKUPublicStatusID = this.publicStatusElem.PublicStatusID; skuiObj.SKUSupplierID = this.supplierElem.SupplierID; skuiObj.SKUSellOnlyAvailable = this.chkSKUSellOnlyAvailable.Checked; skuiObj.SKUNeedsShipping = this.chkNeedsShipping.Checked; skuiObj.SKUWeight = ValidationHelper.GetDouble(this.txtSKUWeight.Text.Trim(), 0); skuiObj.SKUHeight = ValidationHelper.GetDouble(this.txtSKUHeight.Text.Trim(), 0); skuiObj.SKUWidth = ValidationHelper.GetDouble(this.txtSKUWidth.Text.Trim(), 0); skuiObj.SKUDepth = ValidationHelper.GetDouble(this.txtSKUDepth.Text.Trim(), 0); skuiObj.SKUConversionName = ValidationHelper.GetString(this.ucConversion.Value, String.Empty); skuiObj.SKUConversionValue = this.txtConversionValue.Text.Trim(); if (String.IsNullOrEmpty(this.txtSKUAvailableItems.Text.Trim())) { skuiObj.SetValue("SKUAvailableItems", null); } else { skuiObj.SKUAvailableItems = ValidationHelper.GetInteger(this.txtSKUAvailableItems.Text.Trim(), 0); } if (String.IsNullOrEmpty(this.txtSKUAvailableInDays.Text.Trim())) { skuiObj.SetValue("SKUAvailableInDays", null); } else { skuiObj.SKUAvailableInDays = ValidationHelper.GetInteger(this.txtSKUAvailableInDays.Text.Trim(), 0); } if (String.IsNullOrEmpty(this.txtMaxOrderItems.Text.Trim())) { skuiObj.SetValue("SKUMaxItemsInOrder", null); } else { skuiObj.SKUMaxItemsInOrder = ValidationHelper.GetInteger(this.txtMaxOrderItems.Text.Trim(), 0); } if (!ProductOrdered) { // Set product type skuiObj.SKUProductType = SKUInfoProvider.GetSKUProductTypeEnum((string)this.selectProductTypeElem.Value); } // Clear product type specific properties skuiObj.SetValue("SKUMembershipGUID", null); skuiObj.SetValue("SKUValidity", null); skuiObj.SetValue("SKUValidFor", null); skuiObj.SetValue("SKUValidUntil", null); skuiObj.SetValue("SKUMaxDownloads", null); skuiObj.SetValue("SKUBundleInventoryType", null); skuiObj.SetValue("SKUPrivateDonation", null); skuiObj.SetValue("SKUMinPrice", null); skuiObj.SetValue("SKUMaxPrice", null); // Set product type specific properties switch (skuiObj.SKUProductType) { // Set membership specific properties case SKUProductTypeEnum.Membership: skuiObj.SKUMembershipGUID = this.membershipElem.MembershipGUID; skuiObj.SKUValidity = this.membershipElem.MembershipValidity; if (skuiObj.SKUValidity == ValidityEnum.Until) { skuiObj.SKUValidUntil = this.membershipElem.MembershipValidUntil; } else { skuiObj.SKUValidFor = this.membershipElem.MembershipValidFor; } break; // Set e-product specific properties case SKUProductTypeEnum.EProduct: skuiObj.SKUValidity = this.eProductElem.EProductValidity; if (skuiObj.SKUValidity == ValidityEnum.Until) { skuiObj.SKUValidUntil = this.eProductElem.EProductValidUntil; } else { skuiObj.SKUValidFor = this.eProductElem.EProductValidFor; } break; // Set donation specific properties case SKUProductTypeEnum.Donation: skuiObj.SKUPrivateDonation = this.donationElem.DonationIsPrivate; if (this.donationElem.MinimumDonationAmount == 0.0) { skuiObj.SetValue("SKUMinPrice", null); } else { skuiObj.SKUMinPrice = this.donationElem.MinimumDonationAmount; } if (this.donationElem.MaximumDonationAmount == 0.0) { skuiObj.SetValue("SKUMaxPrice", null); } else { skuiObj.SKUMaxPrice = this.donationElem.MaximumDonationAmount; } break; // Set bundle specific properties case SKUProductTypeEnum.Bundle: skuiObj.SKUBundleInventoryType = this.bundleElem.RemoveFromInventory; break; } // When creating new product option if ((this.ProductID == 0) && (this.OptionCategoryID > 0)) { skuiObj.SKUOptionCategoryID = this.OptionCategoryID; } if ((newItem) && (!SKUInfoProvider.LicenseVersionCheck(URLHelper.GetCurrentDomain(), FeatureEnum.Ecommerce, VersionActionEnum.Insert))) { lblError.Visible = true; lblError.Text = GetString("ecommerceproduct.versioncheck"); return(0); } SKUInfoProvider.SetSKUInfo(skuiObj); if (newItem) { if (ECommerceSettings.UseMetaFileForProductImage) { // Get allowed extensions string settingKey = (skuiObj.IsGlobal) ? "CMSUploadExtensions" : (CMSContext.CurrentSiteName + ".CMSUploadExtensions"); string allowedExtensions = SettingsKeyProvider.GetStringValue(settingKey); // Get posted file HttpPostedFile file = this.ucMetaFile.PostedFile; if ((file != null) && (file.ContentLength > 0)) { // Get file extension string extension = Path.GetExtension(file.FileName); // Check if file is an image and its extension is allowed if (ImageHelper.IsImage(extension) && (String.IsNullOrEmpty(allowedExtensions) || FileHelper.CheckExtension(extension, allowedExtensions))) { // Upload SKU image meta file this.ucMetaFile.ObjectID = skuiObj.SKUID; this.ucMetaFile.UploadFile(); // Update SKU image path this.UpdateSKUImagePath(skuiObj); } else { // Set error message string error = ValidationHelper.GetString(SessionHelper.GetValue("NewProductError"), null); error += ";" + String.Format(this.GetString("com.productedit.invalidproductimage"), extension); SessionHelper.SetValue("NewProductError", error); } } } else { skuiObj.SKUImagePath = this.imgSelect.Value; } // Upload initial e-product file if (skuiObj.SKUProductType == SKUProductTypeEnum.EProduct) { this.eProductElem.SKUID = skuiObj.SKUID; this.eProductElem.UploadNewProductFile(); } } else { // Update SKU image path UpdateSKUImagePath(skuiObj); } SKUInfoProvider.SetSKUInfo(skuiObj); if ((mNodeId > 0) && (mProductId == 0)) { TreeProvider tree = new TreeProvider(CMSContext.CurrentUser); TreeNode node = tree.SelectSingleNode(mNodeId, TreeProvider.ALL_CULTURES); node.NodeSKUID = skuiObj.SKUID; node.Update(); // Update search index for node if ((node.PublishedVersionExists) && (SearchIndexInfoProvider.SearchEnabled)) { SearchTaskInfoProvider.CreateTask(SearchTaskTypeEnum.Update, PredefinedObjectType.DOCUMENT, SearchHelper.ID_FIELD, node.GetSearchID()); } // Log synchronization DocumentSynchronizationHelper.LogDocumentChange(node, TaskTypeEnum.UpdateDocument, tree); // Ensure new SKU values SKUInfoProvider.SetSKUInfo(skuiObj); } // If SKU is of bundle product type and bundle does not exist yet if ((skuiObj.SKUProductType == SKUProductTypeEnum.Bundle) && (this.bundleElem.BundleID == 0)) { // Set bundle ID this.bundleElem.BundleID = skuiObj.SKUID; // Save selected products this.bundleElem.SaveProductsSelectionChanges(); } this.ProductID = skuiObj.SKUID; // Reload form this.LoadData(skuiObj); // Set changes saved message this.lblInfo.Text = this.GetString("general.changessaved"); return(ValidationHelper.GetInteger(skuiObj.SKUID, 0)); } else { return(0); } }