Exemplo n.º 1
0
        private void StartWatchingSchedules()
        {
            try
            {
                if (_configurationManager != null && _configurationManager.Session != null && _configurationManager.Session.ConnectionState == ConnectionState.Up)
                {
                    _scheduleConfigurationList = new ScheduleConfigurationList(_configurationManager);
                    var querySettings = _scheduleConfigurationList.CreateQuerySettings();
                    querySettings.SetRightsFilterToAdmin();
                    querySettings.SetPropertiesToRetrieveToAll();
                    querySettings.SetResultCountLimit(QueryResultLimit.Unlimited);
                    //querySettings.SetFilterDefinition(ScheduleConfiguration.Property.Id, name);

                    //var recurranceQuery = _scheduleConfigurationList.CreateRecurrenceQuerySettings();
                    var recurranceQuery = new QuerySettings <ScheduleRecurrenceConfiguration, ScheduleRecurrenceConfiguration.Property>();
                    var queryChildren   = new ScheduleQueryChildrenSettings();
                    recurranceQuery.SetPropertiesToRetrieveToAll();
                    queryChildren.ScheduleRecurrence = recurranceQuery;
                    querySettings.SetChildQuerySettings(queryChildren);

                    using (var repository = Repository)
                    {
                        if (!repository.Schedules.Any())
                        {
                            _scheduleConfigurationList.StartCaching(querySettings);
                            var schedules = _scheduleConfigurationList.GetConfigurationList();
                            _scheduleConfigurationList.StopCaching();
                            if (schedules.Any())
                            {
                                foreach (var scheduleConfiguration in schedules)
                                {
                                    CreateSchedule(scheduleConfiguration);
                                }
                                _schedules = schedules;
                            }
                        }
                    }

                    _scheduleConfigurationList.ConfigurationObjectsRemoved += Schedules_ConfigurationObjectsRemoved;

                    _scheduleConfigurationList.StartWatchingAsync(querySettings, Schedules_StartOrRefreshWatchingCompleted, null);

                    LastUpdated = DateTime.UtcNow;
                }
            }
            catch (Exception e)
            {
                _logging.TraceException(e, "ScheduleConfigurations Error");
            }
        }
        private static void GetSchedules()
        {
            try
            {
                var quit = false;
                while (!quit)
                {
                    try
                    {
                        if (_scheduleConfigurationList.IsCaching) _scheduleConfigurationList.StopCaching();

                        var name = GetConsoleInput("Enter schedule name or \"quit\" to exit:");

                        if (string.IsNullOrEmpty(name)) continue;
                        if (name.Equals("quit", StringComparison.InvariantCultureIgnoreCase)) return;

                        var query = _scheduleConfigurationList.CreateQuerySettings();
                        query.SetRightsFilterToAdmin();
                        query.SetPropertiesToRetrieveToAll();
                        query.SetFilterDefinition(ScheduleConfiguration.Property.Id, name);

                        var recurranceQuery = _scheduleConfigurationList.CreateRecurrenceQuerySettings();
                        var queryChildren = new ScheduleQueryChildrenSettings();
                        recurranceQuery.SetPropertiesToRetrieveToAll();
                        queryChildren.ScheduleRecurrence = recurranceQuery;
                        query.SetChildQuerySettings(queryChildren);

                        _scheduleConfigurationList.StartCaching(query);

                        var list = _scheduleConfigurationList.GetConfigurationList();

                        Console.WriteLine("Got {0} schedules", list.Count);

                        ScheduleConfiguration schedule;

                        if (list.Count > 1)
                        {
                            for (int i = 0; i < list.Count; i++)
                            {
                                var s = list[i];
                                Console.WriteLine("Press {0} for {1}", i, s.ConfigurationId.DisplayName);
                            }
                            var choice = Console.ReadLine();

                            int key = 0;
                            if (!int.TryParse(choice,out key)) continue;

                            schedule = list[key];
                        }
                        else if (list.Count == 0)
                        {
                            continue;
                        }
                        else
                        {
                            schedule = list[0];
                        }

                        Console.WriteLine("Schedule active={0}. Press 1 to set active, 2 to set inactive.", schedule.IsActive.Value);
                        var active = Console.ReadLine();

                        schedule.PrepareForEdit();
                        schedule.IsActive.Value = active.Equals("1", StringComparison.InvariantCultureIgnoreCase);
                        schedule.Commit();

                        _scheduleConfigurationList.StopCaching();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                        Console.ReadLine();
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                Console.ReadLine();
            }
        }
Exemplo n.º 3
0
        private static void GetSchedules()
        {
            try
            {
                var quit = false;
                while (!quit)
                {
                    try
                    {
                        if (_scheduleConfigurationList.IsCaching)
                        {
                            _scheduleConfigurationList.StopCaching();
                        }

                        var name = GetConsoleInput("Enter schedule name or \"quit\" to exit:");

                        if (string.IsNullOrEmpty(name))
                        {
                            continue;
                        }
                        if (name.Equals("quit", StringComparison.InvariantCultureIgnoreCase))
                        {
                            return;
                        }

                        var query = _scheduleConfigurationList.CreateQuerySettings();
                        query.SetRightsFilterToAdmin();
                        query.SetPropertiesToRetrieveToAll();
                        query.SetFilterDefinition(ScheduleConfiguration.Property.Id, name);

                        var recurranceQuery = _scheduleConfigurationList.CreateRecurrenceQuerySettings();
                        var queryChildren   = new ScheduleQueryChildrenSettings();
                        recurranceQuery.SetPropertiesToRetrieveToAll();
                        queryChildren.ScheduleRecurrence = recurranceQuery;
                        query.SetChildQuerySettings(queryChildren);

                        _scheduleConfigurationList.StartCaching(query);

                        var list = _scheduleConfigurationList.GetConfigurationList();

                        Console.WriteLine("Got {0} schedules", list.Count);

                        ScheduleConfiguration schedule;

                        if (list.Count > 1)
                        {
                            for (int i = 0; i < list.Count; i++)
                            {
                                var s = list[i];
                                Console.WriteLine("Press {0} for {1}", i, s.ConfigurationId.DisplayName);
                            }
                            var choice = Console.ReadLine();

                            int key = 0;
                            if (!int.TryParse(choice, out key))
                            {
                                continue;
                            }

                            schedule = list[key];
                        }
                        else if (list.Count == 0)
                        {
                            continue;
                        }
                        else
                        {
                            schedule = list[0];
                        }

                        Console.WriteLine("Schedule active={0}. Press 1 to set active, 2 to set inactive.", schedule.IsActive.Value);
                        var active = Console.ReadLine();

                        schedule.PrepareForEdit();
                        schedule.IsActive.Value = active.Equals("1", StringComparison.InvariantCultureIgnoreCase);
                        schedule.Commit();

                        _scheduleConfigurationList.StopCaching();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                        Console.ReadLine();
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                Console.ReadLine();
            }
        }