コード例 #1
0
 public SyncViewModel(Dispatcher dispatcher, MainNotifViewModel mainNotifViewModel, IRecurrence recurrence,string Assembly)
 {
     this.LoadPropiedades();
     this._Dispatcher = dispatcher;
     this._MainNotifViewModel = mainNotifViewModel;
     this._Recurrence = recurrence;
     this.Message = "Sincronizando...";
     this.VersionAssembly = Assembly;
     this._jobDone = false;
     this.IdUsuario = mainNotifViewModel.Usuario.IdUsuario.ToString();
 }
コード例 #2
0
ファイル: RecurrenceExpander.cs プロジェクト: udbeeq5566/ESB
 /// <summary>
 /// Initializes a new instance of the <see cref="RecurrenceExpander"/> class.
 /// </summary>
 /// <param name="pattern">The pattern.</param>
 /// <param name="scope">The scope.</param>
 /// <param name="maxInstances">The maximum instances.</param>
 public RecurrenceExpander(IRecurrencePattern pattern, TimeInterval scope, int maxInstances)
 {
     AsyncServiceException.ThrowIfNull(pattern, "pattern");
     AsyncServiceException.ThrowIfNegative(maxInstances, "maxInstances");
     this._pattern = pattern;
     // 取消多时区支持
     //this._scope = new TimeInterval(pattern.TimeZone.ToLocalTime(scope.Start), scope.IsStartInclusive, pattern.TimeZone.ToLocalTime(scope.End), scope.IsEndInclusive);
     this._scope = new TimeInterval(scope.Start, scope.IsStartInclusive, scope.End, scope.IsEndInclusive);
     this._maxInstances = maxInstances;
     DateTime windowStart = this._pattern.PatternStart;
     if (this._pattern.Count == 0 && this._scope.Start - this._pattern.Duration > this._pattern.PatternStart)
     {
         windowStart = this._scope.Start - this._pattern.Duration;
     }
     this._generator = RecurrenceFactory.Create(this._pattern, windowStart);
     this._expandedInstances = 0;
 }
コード例 #3
0
        public RavenApplicationNodeRunner()
        {
            var cf         = Catalog.Factory.Resolve <IConfig>(SpecialFactoryContexts.Routed);
            var companyKey = cf[ApplicationTopologyLocalConfig.CompanyKey];
            var appKey     = cf[ApplicationTopologyLocalConfig.ApplicationKey];

            _reg = new ApplicationNodeRegistry(companyKey, appKey);

            var logPath  = cf[ApplicationTopologyLocalConfig.LogFilePath];
            var compType = cf[ApplicationTopologyLocalConfig.ComponentType];
            var logName  = compType + ".log";

            _recurrence  = Catalog.Factory.Resolve <IRecurrence <object> >();
            _logFilePath = Path.Combine(logPath, logName);
            _logConfig   = new LogConfigConsumer(_logFilePath);
            _gatherer    = Catalog.Factory.Resolve <IApplicationNodeGatherer>();

            _alert = Catalog.Factory.Resolve <IApplicationAlert>();

            var rnd = new Random();

            _updateCycle = TimeSpan.FromSeconds(60.0 + (rnd.NextDouble() * 30.0));
        }
コード例 #4
0
        /// <summary>
        /// Gets the month NTH date.
        /// </summary>
        /// <param name="recurrence">The recurrence pattern.</param>
        /// <param name="startDate">The start date.</param>
        /// <returns>DateTime.</returns>
        private DateTime GetMonthNthDate(IRecurrence recurrence, DateTime startDate)
        {
            var date     = new DateTime(startDate.Year, startDate.Month, 1);
            var instance = 1;

            if (recurrence.Instance > 4)
            {
                //last
                for (int day = DateTime.DaysInMonth(date.Year, date.Month); day >= 1; day--)
                {
                    date = new DateTime(date.Year, date.Month, day);
                    if (IsDateMatchingRecurrenceDayOfWeek(recurrence, date))
                    {
                        break;
                    }
                }
            }
            else
            {
                //specific
                for (int day = 1; day <= DateTime.DaysInMonth(date.Year, date.Month); day++)
                {
                    date = new DateTime(date.Year, date.Month, day);
                    if (IsDateMatchingRecurrenceDayOfWeek(recurrence, date))
                    {
                        if (instance == recurrence.Instance)
                        {
                            break;
                        }
                        instance++;
                    }
                }
            }


            return(date);
        }
コード例 #5
0
        /// <summary>
        /// Gets the yearly recurrence occurrences.
        /// </summary>
        /// <param name="recurrence">The recurrence pattern.</param>
        /// <returns>The dates for occurrences.</returns>
        private IEnumerable <DateTime> GetYearlyRecurrenceOccurrences(IRecurrence recurrence)
        {
            var lastDayOfMonth = DateTime.DaysInMonth(recurrence.StartDate.Year, recurrence.MonthOfYear);
            var date           = new DateTime(recurrence.StartDate.Year, recurrence.MonthOfYear,
                                              lastDayOfMonth > recurrence.DayOfMonth ? recurrence.DayOfMonth : lastDayOfMonth);

            if (date < recurrence.StartDate)
            {
                lastDayOfMonth = DateTime.DaysInMonth(recurrence.StartDate.Year + recurrence.Interval, recurrence.MonthOfYear);
                date           = new DateTime(recurrence.StartDate.Year + recurrence.Interval, recurrence.MonthOfYear,
                                              lastDayOfMonth > recurrence.DayOfMonth ? recurrence.DayOfMonth : lastDayOfMonth);
            }

            int occurenceCounter = 0;

            while (!GeneratedEnoughOccurrences(occurenceCounter++, date, recurrence))
            {
                yield return(date.Add(recurrence.StartDate.TimeOfDay));

                lastDayOfMonth = DateTime.DaysInMonth(date.Year + recurrence.Interval, recurrence.MonthOfYear);
                date           = new DateTime(date.Year + recurrence.Interval, recurrence.MonthOfYear,
                                              lastDayOfMonth > recurrence.DayOfMonth ? recurrence.DayOfMonth : lastDayOfMonth);
            }
        }
コード例 #6
0
ファイル: TimeBasedSelection.cs プロジェクト: sjvannTMU/Sage
 public void AddSelectable(IRecurrence selectable)
 {
 }
コード例 #7
0
 /// <summary>
 /// Generateds the enough occurrences.
 /// </summary>
 /// <param name="currentCount">The current count.</param>
 /// <param name="currentDate">The current date.</param>
 /// <param name="recurrence">The recurrence pattern.</param>
 /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
 private bool GeneratedEnoughOccurrences(int currentCount, DateTime currentDate, IRecurrence recurrence)
 {
     return
         ((!recurrence.EndDate.HasValue && currentCount >= recurrence.Occurrences) ||
          (recurrence.EndDate.HasValue && currentDate.Date > recurrence.EndDate.Value.Date));
 }