Beispiel #1
0
        /// <summary>
        /// Skips the received release.
        /// </summary>
        /// <param name="releaseID">Release ID to skip.</param>
        public static void SkipRelease(int releaseID)
        {
            // Get AddIn configuration
            AddInConfig addInConfig = ConfigurationHelper.GetAddInConfig();

            // Check if the release was not already skipped
            if (addInConfig.SkippedReleases.Contains(releaseID) == false)
            {
                // Add the release to the skipped releases collection
                addInConfig.SkippedReleases.Add(releaseID);

                // Save AddIn configuration
                ConfigurationHelper.SaveAddInConfig(addInConfig);
            }
        }
        /// <summary>
        /// Marks this release as rated.
        /// </summary>
        public static void MarkReleaseAsRated()
        {
            try
            {
                AddInConfig addInConfig = ConfigurationHelper.GetAddInConfig();

                addInConfig.IsReleaseRated = true;

                ConfigurationHelper.SaveAddInConfig(addInConfig);
            }
            catch (Exception ex)
            {
                LogManager.LogError(ex);
                throw;
            }
        }
        /// <summary>
        /// Checks if a release rate is pending. If a rate is pending, it updates the LastRateAskedDate of the
        /// AddIn config assuming the user will be asked to rate the release.
        /// </summary>
        /// <returns></returns>
        public static bool IsReleaseRatePending()
        {
            try
            {
                bool isRatePending = false;

                AddInConfig addInConfig = ConfigurationHelper.GetAddInConfig();

                if (addInConfig.RateReleaseID != AssemblyHelper.VersionInfo.ReleaseID)
                {
                    // User has changed the AddIn version
                    addInConfig.RateReleaseID     = AssemblyHelper.VersionInfo.ReleaseID;
                    addInConfig.IsReleaseRated    = false;
                    addInConfig.LastRateAskedDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);

                    ConfigurationHelper.SaveAddInConfig(addInConfig);
                }

                if (addInConfig.IsReleaseRated == false)
                {
                    // Have we waited to ask again?
                    if ((DateTime.Now - addInConfig.LastRateAskedDate).TotalDays >= 1)
                    {
                        isRatePending = true;

                        addInConfig.LastRateAskedDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);

                        ConfigurationHelper.SaveAddInConfig(addInConfig);
                    }
                }

                return(isRatePending);
            }
            catch (Exception ex)
            {
                LogManager.LogError(ex);
                throw;
            }
        }
Beispiel #4
0
        /// <summary>
        /// Gets the EntitiesToDTOs AddIn general configuration.
        /// </summary>
        /// <returns></returns>
        public static AddInConfig GetAddInConfig(bool forceLoad = false)
        {
            if (forceLoad == true)
            {
                ConfigurationHelper.AddInConfig = new AddInConfig();

                if (File.Exists(ConfigurationHelper.AddInConfigFilePath) == false)
                {
                    // Set default configuration
                    ConfigurationHelper.AddInConfig.ReleaseStatusFilter.Add(ReleaseStatus.Stable);
                    ConfigurationHelper.AddInConfig.ReleaseStatusFilter.Add(ReleaseStatus.Beta);
                    ConfigurationHelper.AddInConfig.RateReleaseID = AssemblyHelper.VersionInfo.ReleaseID;

                    ConfigurationHelper.SaveAddInConfig(ConfigurationHelper.AddInConfig);
                }
                else
                {
                    XDocument configDoc = XDocument.Load(ConfigurationHelper.AddInConfigFilePath);

                    XElement updatesNode = configDoc.Descendants(AddInConfigNodes.Updates).First();

                    // Set Stable release status filter if checked
                    if (Convert.ToBoolean(updatesNode.Attribute(AddInConfigNodes.UpdatesAttrStable).Value) == true)
                    {
                        ConfigurationHelper.AddInConfig.ReleaseStatusFilter.Add(ReleaseStatus.Stable);
                    }

                    // Set Beta release status filter if checked
                    if (Convert.ToBoolean(updatesNode.Attribute(AddInConfigNodes.UpdatesAttrBeta).Value) == true)
                    {
                        ConfigurationHelper.AddInConfig.ReleaseStatusFilter.Add(ReleaseStatus.Beta);
                    }

                    // Get skipped releases
                    IEnumerable <XElement> skippedReleases = updatesNode.Descendants(AddInConfigNodes.Release);
                    foreach (XElement release in skippedReleases)
                    {
                        ConfigurationHelper.AddInConfig.SkippedReleases.Add(
                            Convert.ToInt32(release.Attribute(AddInConfigNodes.ReleaseAttrID).Value));
                    }

                    XElement rateInfoNode = configDoc.Descendants(AddInConfigNodes.RateInfo).FirstOrDefault();
                    if (rateInfoNode == null)
                    {
                        // Old AddIn config where rate info node is missing
                        ConfigurationHelper.AddInConfig.RateReleaseID = AssemblyHelper.VersionInfo.ReleaseID;

                        ConfigurationHelper.SaveAddInConfig(ConfigurationHelper.AddInConfig);
                    }
                    else
                    {
                        ConfigurationHelper.AddInConfig.RateReleaseID = Convert.ToInt32(
                            rateInfoNode.Attribute(AddInConfigNodes.RateInfoAttrReleaseID).Value);

                        ConfigurationHelper.AddInConfig.IsReleaseRated =
                            (rateInfoNode.Attribute(AddInConfigNodes.RateInfoAttrIsRated).Value == Resources.XmlBoolTrue);

                        string lastRateAskedDateValue = rateInfoNode.Attribute(AddInConfigNodes.RateInfoAttrLastAskedDate).Value;

                        if (lastRateAskedDateValue.Length > 8)
                        {
                            // Correct previous versions invalid last rate asked date.
                            lastRateAskedDateValue = DateTime.Now.ToString("yyyyMMdd");

                            ConfigurationHelper.SaveAddInConfig(ConfigurationHelper.AddInConfig);
                        }

                        int lastRateAskedYear  = Convert.ToInt32(lastRateAskedDateValue.Substring(0, 4));
                        int lastRateAskedMonth = Convert.ToInt32(lastRateAskedDateValue.Substring(4, 2));
                        int lastRateAskedDay   = Convert.ToInt32(lastRateAskedDateValue.Substring(6, 2));

                        ConfigurationHelper.AddInConfig.LastRateAskedDate =
                            new DateTime(lastRateAskedYear, lastRateAskedMonth, lastRateAskedDay);
                    }
                }
            }

            // Return general configuration
            return(ConfigurationHelper.AddInConfig);
        }