Esempio n. 1
0
    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);
    }
Esempio n. 3
0
    /// <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);
        }
    }
Esempio n. 4
0
    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();
        }
    }
Esempio n. 5
0
    /// <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);
        }
    }
Esempio n. 6
0
    /// <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);
        }
    }