コード例 #1
0
ファイル: PlayingManager.cs プロジェクト: idjaeha/RabbitMaker
 private void Awake()
 {
     createdUIContents    = new List <GameObject>();
     currentScheduleIndex = 0;
     scheduler            = Instantiate <GameObject>(schedulerPrefab).GetComponent <Scheduler>();
     scheduleHandler      = Instantiate <GameObject>(scheduleHandlerPrefab).GetComponent <ScheduleHandler>();
 }
コード例 #2
0
ファイル: ScheduleEntry.cs プロジェクト: qweewqpkn/MyStudy
 public void Reset()
 {
     _interval = 0;
     _elapsed  = 0;
     _handler  = null;
     _status   = EntryStatus.Idle;
 }
コード例 #3
0
 void Awake()
 {
     w_schedule = GameObject.FindGameObjectWithTag("Schedule");
     Debug.Log(w_schedule.name);
     s_schedule        = w_schedule.GetComponent <ScheduleHandler>();
     s_activityContent = this.GetComponent <ActivityContent>();
 }
コード例 #4
0
ファイル: Server.cs プロジェクト: mtarek93/Server
        public static void Main()
        {
            const int Port = 14;
            IPAddress ipAd = Tools.GetMyIPAddress();

            /* Initializes the Listener */
            TcpListener Server = new TcpListener(ipAd, Port);

            Console.WriteLine("The local End point is  :" +
                              Server.LocalEndpoint);
            Console.WriteLine("Waiting for a connection.....");
            Thread StatusThread = new Thread(new ThreadStart(Tools.DisplayServerStatus));

            StatusThread.Start();
            DatabaseHandler.ConnectionString = Helper.ConnectionStringHandler();
            CommandParser.InitializeCommandsDictionary();
            ScheduleHandler.InitializeScheduler();
            User_Locate l = new User_Locate();

            while (true)
            {
                try
                {
                    /* Start Listening at the specified port */
                    Server.Start();
                    Thread T = new Thread(new ParameterizedThreadStart(Tools.AcceptConnection));
                    T.Start(Server.AcceptSocket());
                }
                catch (Exception e)
                {
                    Console.WriteLine("Server.main: " + e.Message);
                }
            }
        }
コード例 #5
0
        private SchedulerEntry.EntryStatus GetStatusInPending(ScheduleHandler handler)
        {
            SchedulerEntry.EntryStatus status = SchedulerEntry.EntryStatus.Idle;
            int            count = _pendings.Count;
            SchedulerEntry entry = null;

            for (int i = count - 1; i > -1; --i)
            {
                entry = _pendings [i];
                if (entry.Handler == handler)
                {
                    if (entry.Status == SchedulerEntry.EntryStatus.ToInsert)
                    {
                        status = SchedulerEntry.EntryStatus.ToInsert;
                        break;
                    }
                    else if (entry.Status == SchedulerEntry.EntryStatus.ToDelete)
                    {
                        status = SchedulerEntry.EntryStatus.ToDelete;
                        break;
                    }
                }
            }
            return(status);
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: uzador/TypiconOnline
        private static void Migrate(IUnitOfWork unitOfWork)
        {
            ScheduleHandler sh = new ScheduleHandler("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\data\\ScheduleDB.mdb;");

            Migration migration = new Migration(unitOfWork, sh);

            migration.Execute();
        }
コード例 #7
0
 public ScheduleEntry(float[] times, ScheduleHandler scheduleCallback, CompleteHandler completCallback, object param = null)
 {
     this._times           = times;
     this.scheduleCallback = scheduleCallback;
     this._completCallback = completCallback;
     this._timeStamp       = 0f;
     this._param           = param;
 }
コード例 #8
0
 public NonexistedOutputDayFactory(TypiconDBContext dbContext
                                   , IScheduleDataCalculator dataCalculator
                                   , IScheduleDayNameComposer nameComposer
                                   , ITypiconSerializer typiconSerializer
                                   , ScheduleHandler handler) : base(dataCalculator, nameComposer, typiconSerializer, handler)
 {
     _dbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext));
 }
コード例 #9
0
ファイル: RestTest_CommonTest.cs プロジェクト: wpmyj/dms
        public void ScheduleHandlerTest()
        {
            var datetimes = ScheduleHandler.GenerateDateTime(ScheduleType.Daily, "10:00|22:00", new DateTime(2016, 8, 1), new DateTime(2016, 9, 1));

            datetimes = ScheduleHandler.GenerateDateTime(ScheduleType.Weekly, "1 10:00|4 22:00", new DateTime(2016, 8, 1), new DateTime(2016, 9, 1));
            datetimes = ScheduleHandler.GenerateDateTime(ScheduleType.Monthly, "01 10:00|15 22:00", new DateTime(2016, 1, 1), new DateTime(2016, 9, 1));
            datetimes = ScheduleHandler.GenerateDateTime(ScheduleType.Yearly, "01-01 10:00|06-15 22:00", new DateTime(2000, 1, 1), new DateTime(2016, 9, 1));
            datetimes = ScheduleHandler.GenerateDateTime(ScheduleType.Custom, "2016-01-01 10:00|2016-06-15 22:00", new DateTime(2000, 1, 1), new DateTime(2016, 9, 1));
        }
コード例 #10
0
        private readonly ScheduleHandler _handler;// = new ServiceSequenceHandler();

        public OutputDayFactory(IScheduleDataCalculator dataCalculator
                                , IScheduleDayNameComposer nameComposer
                                , ITypiconSerializer typiconSerializer
                                , ScheduleHandler handler)
        {
            _dataCalculator    = dataCalculator ?? throw new ArgumentNullException(nameof(dataCalculator));
            _nameComposer      = nameComposer ?? throw new ArgumentNullException(nameof(nameComposer));
            _typiconSerializer = typiconSerializer ?? throw new ArgumentNullException(nameof(typiconSerializer));
            _handler           = handler ?? throw new ArgumentNullException(nameof(handler));
        }
コード例 #11
0
        private static void Migrate(IUnitOfWork unitOfWork, TypiconDBContext dbContext, Action <DbContextOptionsBuilder> optionsBuilder, string folderPath)
        {
            ScheduleHandler sh = new ScheduleHandler("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\Programming\\Documentation\\TypiconOnline.Documentation\\Db\\ScheduleDB.mdb;");

            var service = GetUserCreationService(optionsBuilder);

            TypiconMigration migration = new TypiconMigration(unitOfWork, dbContext, sh, service, folderPath);

            migration.Execute();
        }
コード例 #12
0
        private static void Migrate(IUnitOfWork uof, TypiconDBContext dbContext, Action <DbContextOptionsBuilder, IConfiguration> optionsBuilder
                                    , string folderPath, IConfiguration config)
        {
            ScheduleHandler sh = new ScheduleHandler(config.GetConnectionString("Ole"));

            var service = GetUserCreationService(optionsBuilder, config);

            TypiconMigration migration = new TypiconMigration(uof, dbContext, sh, service, folderPath);

            migration.Execute();
        }
コード例 #13
0
    void Awake()
    {
        s_schedule      = w_schedule.GetComponent <ScheduleHandler>();
        s_playerStatus  = w_playerStatus.GetComponent <StatusHandler>();
        s_characterInfo = w_characterInfo.GetComponent <CharacterInfoHandler>();
        s_saveload      = w_saveload.GetComponent <SaveLoadHandler>();

        //debugData();
        /*uncoment to make new file*/
        loadData(SaveLoadManager.loadData(1));
    }
コード例 #14
0
        private ScheduleDay GetOrFillScheduleDay(GetRuleSettingsRequest request, TypiconEntity typicon,
                                                 ScheduleHandler handler, ScheduleDay scheduleDay = null)
        {
            //заполняем Правила и день Октоиха
            request.MenologyRule = typicon.GetMenologyRule(request.Date);

            int daysFromEaster = ruleSerializer.BookStorage.Easters.GetDaysFromCurrentEaster(request.Date);

            request.TriodionRule = typicon.GetTriodionRule(daysFromEaster);

            request.ModifiedRule = typicon.GetModifiedRuleHighestPriority(request.Date, ruleSerializer);
            request.OktoikhDay   = ruleSerializer.BookStorage.Oktoikh.Get(request.Date);

            //Формируем данные для обработки
            var settings = settingsFactory.Create(request);

            handler.Settings = settings;

            settings.Rule.GetRule(ruleSerializer).Interpret(handler);

            var container = handler.GetResult();

            if (scheduleDay == null)
            {
                //Sign sign = (settings.Rule is Sign s) ? s : GetTemplateSign(settings.Rule.Template);
                Sign sign = GetRootAdditionSign(settings);

                //Если settings.SignNumber определен в ModifiedRule, то назначаем его
                int signNumber = settings.SignNumber ?? (int)sign.Number;

                //if (request.Date.DayOfWeek == DayOfWeek.Sunday && sign.Priority > 3)
                //{
                //    //TODO: жесткая привязка к номеру знака воскресного дня
                //    signNumber = 8;// SignMigrator.GetOldId(k => k.Value.Name == "Воскресный день");
                //}

                scheduleDay = new ScheduleDay
                {
                    //задаем имя дню
                    Name       = nameComposer.Compose(settings, request.Date),
                    Date       = request.Date,
                    SignNumber = signNumber,
                    SignName   = sign.SignName[settings.Language.Name],
                };
            }

            //if (container != null)
            //{
            scheduleDay.Schedule.AddRange(container);
            //}

            return(scheduleDay);
        }
コード例 #15
0
        public bool HasListener(ScheduleHandler handler)
        {
            bool bRet = false;

            for (int i = 0; i < _listeners.Count; i++)
            {
                SchedulerEntry entry = _listeners[i];
                if (entry.Handler == handler)
                {
                    bRet = true;
                    break;
                }
            }

            // when dispatching,check the toInsert,toDelete
            if (_isDispatching)
            {
                int count       = _pendings.Count;
                int insertTimes = 0;
                for (int i = 0; i < count; ++i)
                {
                    if (_pendings[i].Handler == handler)
                    {
                        if (_pendings[i].Status == SchedulerEntry.EntryStatus.ToInsert)
                        {
                            insertTimes++;
                            if (insertTimes > 1)
                            {
                                insertTimes = 1;
                            }
                        }
                        else if (_pendings[i].Status == SchedulerEntry.EntryStatus.ToDelete)
                        {
                            insertTimes--;
                            if (insertTimes < -1)
                            {
                                insertTimes = -1;
                            }
                        }
                    }
                }
                if (bRet && (insertTimes < 0))
                {
                    bRet = false;
                }
                if (!bRet && (insertTimes > 0))
                {
                    bRet = true;
                }
            }
            return(bRet);
        }
コード例 #16
0
ファイル: Migration.cs プロジェクト: AlexLunyov/TypiconOnline
        public Migration(IUnitOfWork unitOfWork
                         , TypiconDBContext dbContext
                         , ScheduleHandler sh
                         , UserCreationService userCreationService
                         , string folderPath)
        {
            _unitOfWork          = unitOfWork;
            _dbContext           = dbContext;
            _sh                  = sh;
            _userCreationService = userCreationService;

            FOLDER_PATH = folderPath;
        }
コード例 #17
0
        public void MigrationDayServiceFactory_Sample()
        {
            ScheduleHandler sh = new ScheduleHandler("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\data\\ScheduleDB.mdb;");

            ScheduleDBDataSet.MineinikRow row = sh.DataSet.Mineinik.FirstOrDefault();

            MigrationDayWorshipFactory factory = new MigrationDayWorshipFactory(Properties.Settings.Default.FolderPath);

            factory.Initialize(row);

            DayWorship dayService = factory.Create();

            Assert.IsNotEmpty(dayService.Definition);
        }
コード例 #18
0
        private void SafeRemoveListener(ScheduleHandler handler)
        {
            int count = _listeners.Count;

            for (int i = count - 1; i > -1; --i)
            {
                if (_listeners[i].Handler == handler)
                {
                    _pool.DisposeObject(_listeners[i]);
                    _listeners.RemoveAt(i);
                    break;
                }
            }
        }
コード例 #19
0
 public void RemoveListener(ScheduleHandler handler)
 {
     if (_isDispatching)
     {
         SchedulerEntry entry = _pool.GetObject();
         entry.Status  = SchedulerEntry.EntryStatus.ToDelete;
         entry.Handler = handler;
         _pendings.Add(entry);
     }
     else
     {
         SafeRemoveListener(handler);
     }
 }
コード例 #20
0
ファイル: Program.cs プロジェクト: AlexLunyov/TypiconOnline
        private static async Task Migrate(IUnitOfWork unitOfWork, DbContextOptionsBuilder <TypiconDBContext> optionsBuilder, IConfigurationRoot configuration)
        {
            ScheduleHandler sh = new ScheduleHandler("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\data\\ScheduleDB.mdb;");

            var service = GetUserCreationService(optionsBuilder);

            var dbContext = new TypiconDBContext(optionsBuilder.Options);

            string folderPath = configuration.GetValue <string>("FolderPath");

            Migration migration = new Migration(unitOfWork, dbContext, sh, service, folderPath);

            await migration.Execute();
        }
コード例 #21
0
        public void WorshipVariables_Test()
        {
            string xml = TestDataXmlReader.GetXmlString("WorshipVariableTest_Rule.xml");

            //получаем контейнер с VariableWorshipRules
            var ruleContainer = VariablesSerializerRoot.Container <RootContainer>().Deserialize(xml);

            var handler = new ScheduleHandler();

            //Интерпретируем
            ruleContainer.Interpret(handler);

            //в итоге получаем определенные worships
            var worships = handler.GetResults();

            Assert.AreEqual(1, worships.DayBefore.Count);
            Assert.AreEqual(2, worships.ThisDay.Count);
        }
コード例 #22
0
        public SlateBotController()
        {
            this.dal                      = new SlateBotDAL();
            this.languageHandler          = new LanguageHandler(dal);
            this.lifecycle                = new SlateBotControllerLifecycle(this);
            this.scheduleHandler          = new ScheduleHandler();
            this.commandHandlerController = new CommandController(this);
            this.serverSettingsHandler    = new ServerSettingsHandler(ErrorLogger, dal);
            this.updateController         = new UpdateController(this);
            this.userSettingsHandler      = new UserSettingsHandler(this);
            this.waitHandler              = new PleaseWaitHandler(serverSettingsHandler, languageHandler);

            this.client             = new DiscordSocketClient();
            client.LoggedIn        += Client_LoggedIn;
            client.LoggedOut       += Client_LoggedOut;
            client.MessageReceived += Client_MessageReceived;
            client.MessageUpdated  += Client_MessageUpdated;

            OnCommandReceived += SlateBotController_OnCommandReceived;
        }
コード例 #23
0
        public void AddListener(ScheduleHandler handler, float interval = 0f)
        {
            if (HasListener(handler))
            {
                return;
            }
            SchedulerEntry entry = _pool.GetObject();

            entry.Elapsed  = 0;
            entry.Interval = interval;
            entry.Handler  = handler;
            if (!_isDispatching)
            {
                entry.Status = SchedulerEntry.EntryStatus.Active;
                _listeners.Add(entry);
            }
            else
            {
                entry.Status = SchedulerEntry.EntryStatus.ToDelete;
                _pendings.Add(entry);
            }
        }
コード例 #24
0
        public void ScheduleService_GetService()
        {
            EFUnitOfWork _unitOfWork = new EFUnitOfWork();

            //BookStorage.Instance = BookStorageFactory.Create();

            TypiconEntity typiconEntity = _unitOfWork.Repository <TypiconEntity>().Get(c => c.Name == "Типикон");

            ScheduleHandler handler = new ScheduleHandler();

            GetScheduleDayRequest request = new GetScheduleDayRequest()
            {
                Date            = new DateTime(2018, 5, 21),//DateTime.Today,
                Handler         = new ScheduleHandler(),
                Typicon         = typiconEntity,
                CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay)
            };

            ScheduleService scheduleService = ScheduleServiceFactory.Create();

            GetScheduleDayResponse response = scheduleService.GetScheduleDay(request);

            _unitOfWork.SaveChanges();

            Assert.AreEqual(3, response.Day.Schedule.Count);

            StringBuilder builder = new StringBuilder();

            builder.AppendLine(response.Day.Date.ToShortDateString() + " " + response.Day.Name);

            foreach (WorshipRuleViewModel service in response.Day.Schedule)
            {
                builder.AppendLine(service.Time + " " + service.Name);
            }

            Assert.Pass(builder.ToString());
        }
コード例 #25
0
ファイル: SchedulerTests.cs プロジェクト: Wokarol/Scheduler
 public void Setup()
 {
     clock     = new TestClock();
     scheduler = new ScheduleHandler(clock);
 }
コード例 #26
0
 void Awake()
 {
     s_schedule = w_schedule.GetComponent <ScheduleHandler>();
 }
コード例 #27
0
        private OutputDay GetOrFillScheduleDay(ScheduleDataCalculatorRequest request, ScheduleHandler handler, OutputDay scheduleDay = null)
        {
            //Формируем данные для обработки
            var response = dataCalculator.Calculate(request);

            var settings = response.Settings;

            handler.Settings = settings;

            settings.RuleContainer.Interpret(handler);

            var container = handler.GetResult();

            if (scheduleDay == null)
            {
                //Sign sign = (settings.Rule is Sign s) ? s : GetTemplateSign(settings.Rule.Template);
                var sign = GetPredefinedTemplate(response.Rule.Template);

                //Если settings.SignNumber определен в ModifiedRule, то назначаем его
                int signNumber = settings.SignNumber ?? sign.Number.Value;

                scheduleDay = new OutputDay
                {
                    //задаем имя дню
                    Name           = nameComposer.Compose(request.Date, response.Rule.Template.Priority, settings.AllWorships),
                    Date           = request.Date,
                    PredefinedSign = sign
                };
            }

            //if (container != null)
            //{
            scheduleDay.Worships.AddRange(container);
            //}

            return(scheduleDay);
        }
コード例 #28
0
 public ScheduleRepository()
 {
     _context        = new PomodoroContext();
     _commandHandler = new ScheduleHandler();
 }
コード例 #29
0
ファイル: Migration.cs プロジェクト: uzador/TypiconOnline
 public Migration(IUnitOfWork unitOfWork, ScheduleHandler sh)
 {
     _unitOfWork = unitOfWork;
     _sh         = sh;
 }
コード例 #30
0
 public ScheduleController(IScheduleRepository scheduleRepository)
 {
     _scheduleRepository = scheduleRepository;
     _scheduleHandler    = new ScheduleHandler();
 }