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