コード例 #1
0
 public void ValidateTask(Model.Task.Task task)
 {
     if (task == null)
     {
         throw new Exception("Not a known task...");
     }
 }
コード例 #2
0
        public Model.Task.Task LookupTask(Guid identifier)
        {
            Model.Task.Task task = FindTask(identifier);

            ValidateTask(task);

            return(task);
        }
コード例 #3
0
        public async Task <HttpResponseMessage> CreateTaskAsync(Model.Task.Task task)
        {
            var serializedGroup = JsonConvert.SerializeObject(task);
            var stringContent   = new StringContent(serializedGroup, Encoding.UTF8, "application/json");

            RequestHelper.Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", TokenWraper.Token);
            var response = await RequestHelper.Client.PostAsync("api/Task/CreateTask", stringContent);

            return(response);
        }
コード例 #4
0
 private void CleanupTokens(Model.Task.Task task)
 {
     if (task.What == Model.Task.Task.Operation.Delete)
     {
         TeamServer.TokenIssuer.CleanupTokensAsync();
     }
     else
     {
         throw new Exception("Unsupported task operation detected...");
     }
 }
コード例 #5
0
        public string Get([FromQuery(Name = "token")] string token, string identifier)
        {
            try {
                TaskManager     taskManager = new TaskManager(Server.TeamServer.ObjectManager, Server.TeamServer.TokenIssuer.ElevateToken(token));
                Model.Task.Task task        = taskManager.LookupTask(identifier);

                return(ControllerUtils.SerializeObject(task, new List <string>(new string[] { "Identifier", "Which", "What", "When", "Active" })));
            }
            catch (Exception exception) {
                return("Error: " + exception.Message);
            }
        }
コード例 #6
0
 private void RunTask(Model.Task.Task task)
 {
     if (task.Which == Model.Task.Task.Type.Token)
     {
         CleanupTokens(task);
     }
     else if (task.Which == Model.Task.Task.Type.Session)
     {
         CleanupSessions(task);
     }
     else if (task.Which == Model.Task.Task.Type.Account)
     {
         CleanupAccounts(task);
     }
 }
コード例 #7
0
 private void CleanupAccounts(Model.Task.Task task)
 {
     if (task.What == Model.Task.Task.Operation.Renew)
     {
         new AccountManager(ObjectManager, TeamServer.TokenIssuer.AdminToken).RenewAccountsAsync();
     }
     else if (task.What == Model.Task.Task.Operation.Delete)
     {
         new AccountManager(ObjectManager, TeamServer.TokenIssuer.AdminToken).DeleteAccountsAsync();
     }
     else
     {
         throw new Exception("Unsupported task operation detected...");
     }
 }
コード例 #8
0
        private Model.Task.Task GetModelTask(global::Client.Models.Maraphone.Task.TaskBuildInfo taskBuildInfo, string userId)
        {
            if (taskBuildInfo == null)
            {
                throw new ArgumentNullException();
            }

            var modelTask = new Model.Task.Task
            {
                Title     = taskBuildInfo.Title,
                ContentId = taskBuildInfo.ContentId,
                CreatedAt = DateTime.Now,
                CreatedBy = userId
            };

            return(modelTask);
        }
コード例 #9
0
        public string Post([FromQuery(Name = "token")] string token, [FromBody] string keyValues)
        {
            try {
                TaskManager taskManager = new TaskManager(Server.TeamServer.ObjectManager, Server.TeamServer.TokenIssuer.ElevateToken(token));

                Dictionary <string, string> properties = ControllerUtils.ParseKeyValues(keyValues);

                Model.Task.Task task = taskManager.CreateTask((Model.Task.Task.Type)Enum.Parse(typeof(Model.Task.Task.Type), properties["Which"]),
                                                              (Model.Task.Task.Operation)Enum.Parse(typeof(Model.Task.Task.Operation), properties["What"]),
                                                              (Model.Task.Task.Frequency)Enum.Parse(typeof(Model.Task.Task.Frequency), properties["When"]));

                return(task.Identifier.ToString());
            }
            catch (Exception exception) {
                return("Error: " + exception.Message);
            }
        }
コード例 #10
0
        public Model.Task.Task CreateTask(Model.Task.Task.Type which,
                                          Model.Task.Task.Operation what,
                                          Model.Task.Task.Frequency when)
        {
            DateTime next = DateTime.Now;

            if (when == Model.Task.Task.Frequency.Monthly)
            {
                next = new DateTime(next.AddMonths(1).Year, next.AddMonths(1).Month, 1);
            }

            Model.Task.Task task = new Model.Task.Task {
                Which = which, What = what, When = when, Next = next
            };

            task.Save();

            return(task);
        }
コード例 #11
0
        private void CleanupSessions(Model.Task.Task task)
        {
            SessionManager sessionManager = new SessionManager(ObjectManager, TeamServer.TokenIssuer.AdminToken);

            if (task.What == Model.Task.Task.Operation.Delete)
            {
                sessionManager.DeleteSessionsAsync();
            }
            else if (task.What == Model.Task.Task.Operation.Cleanup)
            {
                sessionManager.CleanupSessionsAsync();
            }
            else if (task.What == Model.Task.Task.Operation.Reset)
            {
                sessionManager.ResetSessionsAsync();
            }
            else
            {
                throw new Exception("Unsupported task operation detected...");
            }
        }
コード例 #12
0
        public string Put([FromQuery(Name = "token")] string token, string identifier, [FromBody] string keyValues)
        {
            try {
                TaskManager     taskManager = new TaskManager(Server.TeamServer.ObjectManager, Server.TeamServer.TokenIssuer.ElevateToken(token));
                Model.Task.Task task        = taskManager.LookupTask(identifier);

                Dictionary <string, string> properties = ControllerUtils.ParseKeyValues(keyValues);

                if (properties.ContainsKey("Which"))
                {
                    task.Which = (Model.Task.Task.Type)Enum.Parse(typeof(Model.Task.Task.Type), properties["Which"]);
                }

                if (properties.ContainsKey("What"))
                {
                    task.What = (Model.Task.Task.Operation)Enum.Parse(typeof(Model.Task.Task.Operation), properties["What"]);
                }

                if (properties.ContainsKey("When"))
                {
                    task.When = (Model.Task.Task.Frequency)Enum.Parse(typeof(Model.Task.Task.Frequency), properties["When"]);
                }

                if (properties.ContainsKey("Active"))
                {
                    task.Active = (properties["Active"] == "true");
                }

                task.Save();

                return("Ok");
            }
            catch (Exception exception) {
                return("Error: " + exception.Message);
            }
        }
コード例 #13
0
        private void ScheduleTask(Model.Task.Task task)
        {
            switch (task.When)
            {
            case Model.Task.Task.Frequency.Daily:
                task.Next = DateTime.Now + TimeSpan.FromDays(1);

                break;

            case Model.Task.Task.Frequency.Weekly:
                task.Next = DateTime.Now + TimeSpan.FromDays(7);

                break;

            case Model.Task.Task.Frequency.Monthly:
                DateTime now = DateTime.Now;

                task.Next = new DateTime(now.AddMonths(1).Year, now.AddMonths(1).Month, 1);

                break;
            }

            task.Save();
        }
コード例 #14
0
        public void DeleteTask(Model.Task.Task task)
        {
            ValidateTask(task);

            task.Delete();
        }