Esempio n. 1
0
        protected override void OnStartup(StartupEventArgs e)
        {
            try
            {
                bool isRegistered = false;
                if (!File.Exists(MainApp.Properties.Settings.Default.LicenseFilePath))
                {
                    var license = new LicenseAgreement();
                    license.ShowDialog();
                    isRegistered = license.IsRegistered;
                }
                else
                {
                    string info = File.ReadAllText(MainApp.Properties.Settings.Default.LicenseFilePath);
                    isRegistered = LicenseKeyHelper.IsGenuine(info);
                    if (!isRegistered)
                    {
                        var license = new LicenseAgreement();
                        license.ShowDialog();
                        isRegistered = license.IsRegistered;
                    }
                }

                if (isRegistered)
                {
                    base.OnStartup(e);
                }
            }
            catch (Exception ex)
            {
                RadMessageBox.Show("There are error occur in application, please contact with admin!", ex.ToString());
            }
        }
Esempio n. 2
0
        /// <summary>Downloads updates.</summary>
        static void DownloadInstallUpdates()
        {
            for (int x = 0; x < Core.Applications.Count; x++)
            {
                for (int y = 0; y < Core.Applications[x].Updates.Count; y++)
                {
                    if (Core.Applications[x].Updates[y].Selected)
                    {
                        continue;
                    }

                    Core.Applications[x].Updates.RemoveAt(y);
                    y--;
                }

                if (Core.Applications[x].Updates.Count != 0)
                {
                    continue;
                }

                Core.Applications.RemoveAt(x);
                x--;
            }

            if (Core.Applications.Count > 0)
            {
                var sla = new LicenseAgreement();
                if (sla.LoadLicenses() == false)
                {
                    Core.Instance.UpdateAction = UpdateAction.Canceled;
                    return;
                }

                if (WcfService.Install())
                {
                    try
                    {
                        File.Delete(Path.Combine(App.AllUserStore, @"updates.sui"));
                    }
                    catch (Exception e)
                    {
                        if (!(e is UnauthorizedAccessException || e is IOException))
                        {
                            Utilities.ReportError(e, ErrorType.GeneralError);
                        }
                    }

                    Core.Instance.UpdateAction   = isInstallOnly ? UpdateAction.Installing : UpdateAction.Downloading;
                    Settings.Default.LastInstall = DateTime.Now;
                }
                else
                {
                    Core.Instance.UpdateAction = UpdateAction.Canceled;
                }
            }
            else
            {
                Core.Instance.UpdateAction = UpdateAction.Canceled;
            }
        }
Esempio n. 3
0
        private PartyDetails GetDateDetails(LicenseAgreement agreement)
        {
            var dateKey = "DateOfAgreement";

            return(new PartyDetails {
                NodeKey = dateKey, NodeValue = agreement.CreatedAt.ToShortDateString()
            });
        }
Esempio n. 4
0
 private List <PartyDetails> GetGeneralAgreementDetails(LicenseAgreement agreement, string linkToSchema)
 {
     return(new List <PartyDetails>
     {
         GetDateDetails(agreement),
         GetSchemaDetails(linkToSchema)
     });
 }
Esempio n. 5
0
 public ShellViewModel(IEventAggregator eventAggregator, ChocolateyInstaller chocolateyInstaller, LicenseAgreement licenseAgreement, ILifetimeScope lifetimeScope, PowerShellRunner powerShellRunner)
 {
     this.chocolateyInstaller = chocolateyInstaller;
     this.licenseAgreement    = licenseAgreement;
     this.lifetimeScope       = lifetimeScope;
     this.powerShellRunner    = powerShellRunner;
     this.eventAggregator     = eventAggregator;
     RunStartupSequence();
 }
        private void UpdateAgreementText()
        {
            LicenseAgreement licenseAgreement = LicenseAgreementDataSource.Load(_LicenseAgreementIds[this.DisplayIndex]);

            if (licenseAgreement != null)
            {
                Page.Title         = licenseAgreement.DisplayName;
                AgreementText.Text = licenseAgreement.AgreementText;
            }
        }
Esempio n. 7
0
 protected void AddAgreementButton_Click(object sender, EventArgs e)
 {
     if (Page.IsValid)
     {
         LicenseAgreement agreement = new LicenseAgreement();
         agreement.DisplayName   = AddAgreementName.Text;
         agreement.AgreementText = string.Empty;
         agreement.Save();
         Response.Redirect("EditAgreement.aspx?AgreementId=" + agreement.Id);
     }
 }
Esempio n. 8
0
 public ShellViewModel(IEventAggregator eventAggregator, LicenseAgreement licenseAgreement, ILifetimeScope lifetimeScope, RaygunClient raygunClient, Installer installer, ProxyTester proxyTester, RuntimeUpgradeManager runtimeUpgradeManager, CredentialStore credentialStore)
 {
     DisplayName = "Platform Installer";
     this.runtimeUpgradeManager = runtimeUpgradeManager;
     this.raygunClient          = raygunClient;
     this.installer             = installer;
     this.licenseAgreement      = licenseAgreement;
     this.lifetimeScope         = lifetimeScope;
     this.eventAggregator       = eventAggregator;
     this.proxyTester           = proxyTester;
     this.credentialStore       = credentialStore;
     RunStartupSequence();
 }
Esempio n. 9
0
        protected int GetProductCount(object dataItem)
        {
            LicenseAgreement m = (LicenseAgreement)dataItem;

            if (_ProductCounts.ContainsKey(m.Id))
            {
                return(_ProductCounts[m.Id]);
            }
            int count = DigitalGoodDataSource.CountForLicenseAgreement(m.Id);

            _ProductCounts[m.Id] = count;
            return(count);
        }
 protected void Page_Init(object sender, System.EventArgs e)
 {
     _AgreementId = AlwaysConvert.ToInt(Request.QueryString["AgreementId"]);
     _Agreement   = LicenseAgreementDataSource.Load(_AgreementId);
     if (_Agreement == null)
     {
         Response.Redirect("Default.aspx");
     }
     Caption.Text         = string.Format(Caption.Text, _Agreement.DisplayName);
     InstructionText.Text = string.Format(InstructionText.Text, _Agreement.DisplayName);
     BindAgreements();
     ProductsGrid.DataSource = _Agreement.DigitalGoods;
     ProductsGrid.DataBind();
 }
 /// <summary>
 /// Default ctor
 /// </summary>
 internal LicenseAgreementAcceptanceForm(LicenseAgreement license, IEnumerable <string> libraryNames)
 {
     this.license = license;
     InitializeComponent();
     if ((license != null) && (libraryNames != null))
     {
         this.Text        = license.Name;
         tbAgreement.Text = license.Text.Replace("\n", Environment.NewLine);
         foreach (var name in libraryNames)
         {
             lbLibraries.Items.Add(name);
         }
     }
 }
 public void Verify()
 {
     var licenseAgreement = new LicenseAgreement();
     try
     {
         licenseAgreement.Agree();
         Assert.IsTrue(licenseAgreement.HasAgreedToLicense());
         licenseAgreement.Clear();
         Assert.IsFalse(licenseAgreement.HasAgreedToLicense());
     }
     finally
     {
         licenseAgreement.Clear();
     }
 }
Esempio n. 13
0
    public void Verify()
    {
        var licenseAgreement = new LicenseAgreement();

        try
        {
            licenseAgreement.Agree();
            Assert.IsTrue(licenseAgreement.HasAgreedToLicense());
            licenseAgreement.Clear();
            Assert.IsFalse(licenseAgreement.HasAgreedToLicense());
        }
        finally
        {
            licenseAgreement.Clear();
        }
    }
Esempio n. 14
0
        /// <summary>
        /// Default ctor
        /// </summary>
        public LibraryNode(string dllName, string name, LicenseAgreement license, params LibraryNode[] dependingOn)
        {
            this.dllName          = dllName;
            this.license          = license;
            this.dependingOnOther = new List <LibraryNode>();
            if (null != dependingOn)
            {
                this.dependingOnOther.AddRange(dependingOn);
            }

            this.dependingOnMe = new List <LibraryNode>();
            this.Text          = name;
            this.SubItems.Add(new ListViewSubItem(this, (license != null) ? license.Name : "-"));

            foreach (LibraryNode other in this.dependingOnOther)
            {
                other.dependingOnMe.Add(this);
            }
        }
 protected void Page_Load(object sender, System.EventArgs e)
 {
     _AgreementId = AlwaysConvert.ToInt(Request.QueryString["AgreementId"]);
     _Agreement   = LicenseAgreementDataSource.Load(_AgreementId);
     if (_Agreement == null)
     {
         Response.Redirect("Agreements.aspx");
     }
     if (!Page.IsPostBack)
     {
         DisplayName.Text   = _Agreement.DisplayName;
         IsHtml.Checked     = _Agreement.IsHTML;
         AgreementText.Text = _Agreement.AgreementText;
     }
     DigitalGoodsGrid.DataSource = _Agreement.DigitalGoods;
     DigitalGoodsGrid.DataBind();
     Caption.Text = string.Format(Caption.Text, _Agreement.DisplayName);
     AbleCommerce.Code.PageHelper.SetHtmlEditor(AgreementText, HtmlButton);
 }
Esempio n. 16
0
        private LicenseAgreement CreateAgreementIfNotExists(LicenseDetails licenseDetails, Application consumerApp,
                                                            DataSchema schema, string schemaPublicId, Application providerApp)
        {
            // Get published provider license
            var publishedProviderLicense =
                _organisationLicenses.Where(i => i.ApplicationID == providerApp.ID).Where(i => i.DataSchemaID == schema.ID && i.Status == (int)PublishStatus.Published).FirstOrDefault();

            if (publishedProviderLicense == null)
            {
                // Return error if provider does not have published license
                throw new BaseApiException($"Published data agreement from provider for schema '{schemaPublicId}' not found");
            }
            // Get published consumer license
            var consumerRequests = _consumerRegistrationRequests.Where(i => i.ConsumerApplicationID == consumerApp.ID)
                                   .Where(i => i.Status == (int)ConsumerProviderRegistrationStatus.Approved);

            var consumerProviderRequest = GetRequestThatForProvider(consumerRequests, schema.ID, providerApp.ID);

            if (consumerProviderRequest == null)
            {
                // Return error if consumer does not have approved request
                var errorMessage = $" {consumerApp.Name} has not been approved by {providerApp.Name} to access {schema.PublicID}.";
            }

            // Check if this record already exists - try to get license agreement
            var existingAgreement = _licenseAgreements.FirstOrDefault(i => i.ConsumerProviderRegistrationId == consumerProviderRequest.ID);

            // If agreement with these licenses already exists - do not create
            if (existingAgreement != null)
            {
                return(null);
            }
            // Setup new details for license agreement
            var agreement = new LicenseAgreement
            {
                ConsumerProviderRegistrationId = consumerProviderRequest.ID,
                CreatedAt         = GetDate,
                SoftwareStatement = licenseDetails.software_statement
            };

            return(agreement);
        }
        private string GetRecordForLicense(LicenseAgreement licenseAgreement, List <LicenseSection> licenseSections)
        {
            var record = new StringBuilder();

            var consumerRegistration = _consumerProviderRegistrations.GetById(licenseAgreement.ConsumerProviderRegistrationId);
            var providerLicense      = _licenses.FirstOrDefault(i => i.ID == consumerRegistration.OrganizationLicenseID);
            var consumerApp          = _applications.FirstOrDefault(i => i.ID == consumerRegistration.ConsumerApplicationID);
            var providerApp          = _applications.FirstOrDefault(i => i.ID == providerLicense.ApplicationID);

            var providerOrg = _organisations.GetById(providerApp.OrganizationID);
            var consumerOrg = _organisations.GetById(consumerApp.OrganizationID);

            // Get schema
            var schema = _schemas.FirstOrDefault(i => i.ID == providerLicense.DataSchemaID);

            // Add agreement details
            record.Append($"{licenseAgreement.CreatedAt},{providerOrg.Name},{consumerOrg.Name},{schema.Name}");
            // Get organization license clauses
            var orgLicenseClauses = _orgClauses.Where(i => i.OrganizationLicenseID == providerLicense.ID).ToList();
            // Get license clauses for each organization license clause
            var licenseClauses = orgLicenseClauses.Select(i => _clauses.FirstOrDefault(p => p.ID == i.LicenseClauseID)).ToList();
            // Get count of used clauses
            var count = licenseSections.Count;

            // Process each section
            for (int i = 0; i < count; i++)
            {
                // Add separator
                record.Append(",");
                // Get license clause template for section
                var licenseClause = licenseClauses.FirstOrDefault(p => p.LicenseSectionID == licenseSections[i].ID);
                if (licenseClause != null)
                {
                    // Get clause template
                    var clauseTemplate = _clauseTemplates.FirstOrDefault(o => o.LicenseClauseID == licenseClause.ID);
                    // Add short text to the record
                    record.Append($",{clauseTemplate.ShortText}");
                }
            }
            return(record.ToString());
        }
Esempio n. 18
0
        /// <summary>
        /// Gets all assets for a product regardless of variant.
        /// </summary>
        /// <param name="page">Page context</param>
        /// <param name="product">Product to get assets for</param>
        /// <param name="returnUrl">URL to use for the return location when pages visited.</param>
        /// <returns></returns>
        public static List <AbleCommerce.Code.ProductAssetWrapper> GetAssets(Page page, Product product, string returnUrl)
        {
            // BUILD LIST OF ASSETS
            List <string> assetTracker = new List <string>();
            string        encodedReturnUrl;

            if (!string.IsNullOrEmpty(returnUrl))
            {
                encodedReturnUrl = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(returnUrl));
            }
            else
            {
                encodedReturnUrl = string.Empty;
            }
            List <AbleCommerce.Code.ProductAssetWrapper> assetList = new List <AbleCommerce.Code.ProductAssetWrapper>();
            string agreeUrl    = page.ResolveUrl("~/ViewLicenseAgreement.aspx") + "?id={0}&ReturnUrl=" + encodedReturnUrl;
            string agreePopup  = agreeUrl + "\" onclick=\"" + AbleCommerce.Code.PageHelper.GetPopUpScript(agreeUrl, "license", 640, 480, "resizable=1,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no") + ";return false";
            string readmeUrl   = page.ResolveUrl("~/ViewReadme.aspx") + "?ReadmeId={0}&ReturnUrl=" + encodedReturnUrl;
            string readmePopup = readmeUrl + "\" onclick=\"" + AbleCommerce.Code.PageHelper.GetPopUpScript(readmeUrl, "readme", 640, 480, "resizable=1,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no") + ";return false";

            foreach (ProductDigitalGood pdg in product.DigitalGoods)
            {
                DigitalGood digitalGood = pdg.DigitalGood;
                Readme      readme      = digitalGood.Readme;
                if (readme != null && assetTracker.IndexOf("R" + readme.Id.ToString()) < 0)
                {
                    assetList.Add(new AbleCommerce.Code.ProductAssetWrapper(string.Format(readmePopup, readme.Id), readme.DisplayName));
                    assetTracker.Add("R" + readme.Id.ToString());
                }
                LicenseAgreement agreement = digitalGood.LicenseAgreement;
                if (agreement != null && assetTracker.IndexOf("L" + agreement.Id.ToString()) < 0)
                {
                    assetList.Add(new AbleCommerce.Code.ProductAssetWrapper(string.Format(agreePopup, agreement.Id), agreement.DisplayName));
                    assetTracker.Add("L" + agreement.Id.ToString());
                }
            }
            return(assetList);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            int licenseAgreementId            = AlwaysConvert.ToInt(Request.QueryString["id"]);
            LicenseAgreement licenseAgreement = LicenseAgreementDataSource.Load(licenseAgreementId);

            if (licenseAgreement == null)
            {
                Response.Redirect(AcceptUrl);
            }
            Page.Title         = licenseAgreement.DisplayName;
            AgreementText.Text = licenseAgreement.AgreementText;
            if (HasReturnUrl)
            {
                OKLink.NavigateUrl  = ReturnUrl;
                AcceptLink.Visible  = false;
                DeclineLink.Visible = false;
            }
            else
            {
                OKLink.Visible          = false;
                AcceptLink.NavigateUrl  = AcceptUrl;
                DeclineLink.NavigateUrl = DeclineUrl;
            }
        }
Esempio n. 20
0
        /// <summary>Downloads updates.</summary>
        static void DownloadInstallUpdates()
        {
            for (int x = 0; x < Core.Applications.Count; x++)
            {
                for (int y = 0; y < Core.Applications[x].Updates.Count; y++)
                {
                    if (Core.Applications[x].Updates[y].Selected)
                    {
                        continue;
                    }

                    Core.Applications[x].Updates.RemoveAt(y);
                    y--;
                }

                if (Core.Applications[x].Updates.Count != 0)
                {
                    continue;
                }

                Core.Applications.RemoveAt(x);
                x--;
            }

            if (Core.Applications.Count > 0)
            {
                var sla = new LicenseAgreement();
                if (sla.LoadLicenses() == false)
                {
                    Core.Instance.UpdateAction = UpdateAction.Canceled;
                    return;
                }

                if (WcfService.Install())
                {
                    try
                    {
                        File.Delete(Path.Combine(App.AllUserStore, @"updates.sui"));
                    }
                    catch (Exception e)
                    {
                        if (!(e is UnauthorizedAccessException || e is IOException))
                        {
                            Utilities.ReportError(e, ErrorType.GeneralError);
                        }
                    }

                    Core.Instance.UpdateAction = isInstallOnly ? UpdateAction.Installing : UpdateAction.Downloading;
                    Settings.Default.LastInstall = DateTime.Now;
                }
                else
                {
                    Core.Instance.UpdateAction = UpdateAction.Canceled;
                }
            }
            else
            {
                Core.Instance.UpdateAction = UpdateAction.Canceled;
            }
        }
Esempio n. 21
0
        public static List <AbleCommerce.Code.ProductAssetWrapper> GetAssets(Page page, Product product, string optionList, string kitList, string returnUrl)
        {
            // BUILD LIST OF ASSETS
            List <string> assetTracker = new List <string>();
            string        encodedReturnUrl;

            if (!string.IsNullOrEmpty(returnUrl))
            {
                encodedReturnUrl = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(returnUrl));
            }
            else
            {
                encodedReturnUrl = string.Empty;
            }
            List <AbleCommerce.Code.ProductAssetWrapper> assetList = new List <AbleCommerce.Code.ProductAssetWrapper>();

            string agreeUrl    = page.ResolveUrl("~/ViewLicenseAgreement.aspx") + "?id={0}&ReturnUrl=" + encodedReturnUrl;
            string agreePopup  = agreeUrl + "\" onclick=\"" + AbleCommerce.Code.PageHelper.GetPopUpScript(agreeUrl, "license", 640, 480, "resizable=1,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no") + ";return false";
            string readmeUrl   = page.ResolveUrl("~/ViewReadme.aspx") + "?ReadmeId={0}&ReturnUrl=" + encodedReturnUrl;
            string readmePopup = readmeUrl + "\" onclick=\"" + AbleCommerce.Code.PageHelper.GetPopUpScript(readmeUrl, "readme", 640, 480, "resizable=1,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no") + ";return false";

            List <ProductAndOptionList> products = new List <ProductAndOptionList>();

            products.Add(new ProductAndOptionList(product, optionList));

            // IF IT IS A KIT LOOK FOR CHILD PRODUCTS AS WELL
            if (!String.IsNullOrEmpty(kitList))
            {
                if (product.IsKit)
                {
                    bool  kitIsBundled  = !product.Kit.ItemizeDisplay;
                    int[] kitProductIds = AlwaysConvert.ToIntArray(kitList);
                    if (kitProductIds != null && kitProductIds.Length > 0)
                    {
                        foreach (int kitProductId in kitProductIds)
                        {
                            KitProduct kitProduct = KitProductDataSource.Load(kitProductId);
                            if ((kitProduct != null) &&
                                (kitProduct.KitComponent.InputType == KitInputType.IncludedHidden || kitIsBundled))
                            {
                                products.Add(new ProductAndOptionList(kitProduct.Product, kitProduct.OptionList));
                            }
                        }
                    }
                }
            }

            foreach (ProductAndOptionList pol in products)
            {
                foreach (ProductDigitalGood pdg in pol.Product.DigitalGoods)
                {
                    if ((string.IsNullOrEmpty(pdg.OptionList)) || (pol.OptionList == pdg.OptionList))
                    {
                        DigitalGood digitalGood = pdg.DigitalGood;
                        Readme      readme      = digitalGood.Readme;
                        if (readme != null && assetTracker.IndexOf("R" + readme.Id.ToString()) < 0)
                        {
                            assetList.Add(new AbleCommerce.Code.ProductAssetWrapper(string.Format(readmePopup, readme.Id), readme.DisplayName));
                            assetTracker.Add("R" + readme.Id.ToString());
                        }
                        LicenseAgreement agreement = digitalGood.LicenseAgreement;
                        if (agreement != null && assetTracker.IndexOf("L" + agreement.Id.ToString()) < 0)
                        {
                            assetList.Add(new AbleCommerce.Code.ProductAssetWrapper(string.Format(agreePopup, agreement.Id), agreement.DisplayName));
                            assetTracker.Add("L" + agreement.Id.ToString());
                        }
                    }
                }
            }
            return(assetList);
        }
Esempio n. 22
0
        private void InitializeForm(bool forceRefresh)
        {
            int digitalGoodId = AlwaysConvert.ToInt(Request.QueryString["DigitalGoodId"]);

            _DigitalGood = DigitalGoodDataSource.Load(digitalGoodId);
            if (_DigitalGood == null)
            {
                Response.Redirect(CancelButton.NavigateUrl);
            }
            RenameFileExtensions.Text = AbleContext.Current.Store.Settings.FileExt_DigitalGoods;
            if (!Page.IsPostBack || forceRefresh)
            {
                Name.Text     = _DigitalGood.Name;
                FileName.Text = _DigitalGood.FileName;
                MediaKey.Text = _DigitalGood.MediaKey;
                ListItem item = ActivationMode.Items.FindByValue(_DigitalGood.ActivationModeId.ToString());
                if (item != null)
                {
                    item.Selected = true;
                }
                if (_DigitalGood.MaxDownloads > 0)
                {
                    MaxDownloads.Text = _DigitalGood.MaxDownloads.ToString();
                }
                int days, hours, minutes;
                DigitalGood.ParseTimeout(_DigitalGood.ActivationTimeout, out days, out hours, out minutes);
                if (days > 0)
                {
                    ActivationTimeoutDays.Text = days.ToString();
                }
                if (hours > 0)
                {
                    ActivationTimeoutHours.Text = hours.ToString();
                }
                if (minutes > 0)
                {
                    ActivationTimeoutMinutes.Text = minutes.ToString();
                }
                DigitalGood.ParseTimeout(_DigitalGood.DownloadTimeout, out days, out hours, out minutes);
                if (days > 0)
                {
                    DownloadTimeoutDays.Text = days.ToString();
                }
                if (hours > 0)
                {
                    DownloadTimeoutHours.Text = hours.ToString();
                }
                if (minutes > 0)
                {
                    DownloadTimeoutMinutes.Text = minutes.ToString();
                }
                //bind license agreements
                LicenseAgreement.DataSource = LicenseAgreementDataSource.LoadAll();
                LicenseAgreement.DataBind();
                item = LicenseAgreement.Items.FindByValue(_DigitalGood.LicenseAgreementId.ToString());
                if (item != null)
                {
                    LicenseAgreement.SelectedIndex = LicenseAgreement.Items.IndexOf(item);
                }
                item = LicenseAgreementMode.Items.FindByValue(_DigitalGood.LicenseAgreementModeId.ToString());
                if (item != null)
                {
                    LicenseAgreementMode.SelectedIndex = LicenseAgreementMode.Items.IndexOf(item);
                }

                // BIND GROUPs
                Groups.DataBind();
                Groups.ClearSelection();

                foreach (DigitalGoodGroup dgg in _DigitalGood.DigitalGoodGroups)
                {
                    item = Groups.Items.FindByValue(dgg.Group.Id.ToString());
                    if (item != null)
                    {
                        item.Selected = true;
                    }
                }

                //bind readmes
                Readme.DataSource = ReadmeDataSource.LoadAll();
                Readme.DataBind();
                item = Readme.Items.FindByValue(_DigitalGood.ReadmeId.ToString());
                if (item != null)
                {
                    Readme.SelectedIndex = Readme.Items.IndexOf(item);
                }
                EnableSerialKeys.Checked = _DigitalGood.EnableSerialKeys;

                // INITIALIZE SERIAL KEY PROVIDERS
                KeySource.Items.Clear();
                KeySource.Items.Add(new ListItem("Manual Entry", "0"));

                // ADD PROVIDERS
                IList <ISerialKeyProvider> providers = SerialKeyProviderDataSource.GetSerialKeyProviders();
                foreach (ISerialKeyProvider provider in providers)
                {
                    string   classId = Misc.GetClassId(provider.GetType());
                    ListItem providerItem;
                    // (BUG # 8347) ABLECOMMERCE DEFAULT KEY PROVIDER SHOULD BE NAMED AS "Managed List of Keys"
                    if (provider.GetType() == typeof(DefaultSerialKeyProvider))
                    {
                        providerItem = new ListItem("Managed List of Keys", classId);
                    }
                    else
                    {
                        providerItem = new ListItem(provider.Name, classId);
                    }
                    KeySource.Items.Add(providerItem);
                }
                //SELECT CORRECT PROVIDER
                if (_DigitalGood.SerialKeyProviderId != null)
                {
                    ListItem providerItem = KeySource.Items.FindByValue(_DigitalGood.SerialKeyProviderId);
                    if (providerItem != null)
                    {
                        KeySource.SelectedIndex = KeySource.Items.IndexOf(providerItem);
                    }
                }

                IList <EmailTemplate> templates = EmailTemplateDataSource.LoadAll();
                foreach (EmailTemplate template in templates)
                {
                    ListItem activationItem = new ListItem(template.Name, template.Id.ToString());
                    ListItem fulfillItem    = new ListItem(template.Name, template.Id.ToString());

                    if (_DigitalGood.ActivationEmailId == template.Id)
                    {
                        activationItem.Selected = true;
                    }

                    if (_DigitalGood.FulfillmentEmailId == template.Id)
                    {
                        fulfillItem.Selected = true;
                    }

                    ActivationEmailTemplateList.Items.Add(activationItem);
                    FulfillmentEmailTemplateList.Items.Add(fulfillItem);
                }

                if (_DigitalGood.FulfillmentMode == CommerceBuilder.DigitalDelivery.FulfillmentMode.Manual)
                {
                    FulfillmentMode.SelectedIndex = 0;
                }
                else if (_DigitalGood.FulfillmentMode == CommerceBuilder.DigitalDelivery.FulfillmentMode.OnOrder)
                {
                    FulfillmentMode.SelectedIndex = 1;
                }
                else
                {
                    FulfillmentMode.SelectedIndex = 2;
                }

                ToggleConfigureProvider();
            }
        }