コード例 #1
0
ファイル: TaskController.cs プロジェクト: infotechub/cbtch
        public string RunTask()
        {
            //run emailTask



            IList <TaskShit> tasks = _helperSvc.GetAllTask();

            if (tasks.Count() == 3)
            {
                //add Executebulkstafftask
                TaskShit BulkUpload = new TaskShit
                {
                    Name            = "BulkUpload",
                    Enabled         = true,
                    status          = false,
                    RunTimerSeconds = 360,
                    LastRun         = CurrentRequestData.Now
                };
                _helperSvc.addTask(BulkUpload);


                //add Executebulkstafftask
                TaskShit PortalImport = new TaskShit
                {
                    Name            = "PortalImport",
                    Enabled         = true,
                    status          = false,
                    RunTimerSeconds = 360,
                    LastRun         = CurrentRequestData.Now
                };
                _helperSvc.addTask(PortalImport);
            }

            if (!tasks.Any())
            {
                //create tasks

                TaskShit birthday = new TaskShit
                {
                    Name            = "Birthday",
                    Enabled         = true,
                    status          = false,
                    RunTimerSeconds = 36000,
                    LastRun         = CurrentRequestData.Now
                };

                TaskShit Email = new TaskShit
                {
                    Name            = "SendEmail",
                    Enabled         = true,
                    status          = false,
                    RunTimerSeconds = 30,
                    LastRun         = CurrentRequestData.Now
                };


                TaskShit Subscriptions = new TaskShit
                {
                    Name            = "Subscriptions",
                    Enabled         = true,
                    status          = false,
                    RunTimerSeconds = 36000,
                    LastRun         = CurrentRequestData.Now
                };

                _helperSvc.addTask(birthday);
                _helperSvc.addTask(Email);
                _helperSvc.addTask(Subscriptions);
            }

            foreach (TaskShit task in tasks)
            {
                double timediff = CurrentRequestData.Now.Subtract(task.LastRun).TotalSeconds;
                //check if task is running.
                if (!task.status && timediff >= task.RunTimerSeconds)
                {
                    switch (task.Name)
                    {
                    case "SendEmail":
                        try
                        {
                            SendEmailMessages(task);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e);
                            throw;
                        }
                        break;


                    case "Birthday":
                        try
                        {
                            DateTime datetime = CurrentRequestData.Now;

                            int hour = datetime.Hour;

                            if (hour > 8)
                            {
                                SendBithdayMessageTask(task);
                            }
                        }
                        catch (Exception e)
                        {
                            task.status = false;
                            _helperSvc.updateTask(task);
                            Console.WriteLine(e);
                            throw;
                        }
                        break;


                    case "Subscriptions":
                        try
                        {
                            SubscriptionTask(task);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e);
                            throw;
                        }
                        break;
                    }
                }
            }

            return("Complete");
        }