Exemple #1
0
        /// <summary>
        /// Updates TaskRepeating in database.
        /// </summary>
        /// <param name="taskRepeating">times to edit</param>
        /// <param name="Id">Id of column to edit time in</param>
        /// <param name="TableName">Name of the table to edit time in</param>
        /// <param name="ColumnName">Name of the column to edit value in</param>
        public TaskRepeating TaskExtendDatabase(TaskRepeating taskRepeating, int Id, string TableName, string ColumnName)
        {
            TaskRepeating reference = taskRepeating;

            taskRepeating.ExecutionTimes.Sort();
            for (int i = taskRepeating.ExecutionTimes.Count - 1; i >= 0; i--)
            {
                if (taskRepeating.ExecutionTimes[i] <= DateTime.Now)
                {
                    while (taskRepeating.ExecutionTimes[i] <= DateTime.Now)
                    {
                        taskRepeating.ExecutionTimes[i] = taskRepeating.ExecutionTimes[i] + taskRepeating.Repeating;
                    }
                    if (taskRepeating.ExecutionTimes[i] >= taskRepeating.RepeatTill)
                    {
                        taskRepeating.ExecutionTimes.RemoveAt(i);
                    }
                }
            }
            if (taskRepeating.ExecutionTimes.Count == 0)
            {
                mySql.AlterTable(new ChangeTable()
                {
                    Id = Id, TableName = TableName, ColumnName = ColumnName, Value = DBNull.Value
                });
                return(null);
            }
            else if (taskRepeating.Equals(reference))
            {
                mySql.AlterTable(new ChangeTable()
                {
                    Id = Id, TableName = TableName, ColumnName = ColumnName, Value = JsonSerializationUtility.Serialize(taskRepeating)
                });
            }
            return(taskRepeating);
        }
 public void AlterTable(PostAdmin postAdmin)
 {
     if (postAdmin.request is ChangeTableRequest)
     {
         if (this.Authorized(postAdmin.adminInfo))
         {
             if (Permitted(postAdmin.adminInfo.UserName, new int[] { 3 }))
             {
                 if (((ChangeTableRequest)postAdmin.request).changeTable.ColumnName == "Allowed" &&
                     ((ChangeTableRequest)postAdmin.request).changeTable.Value is bool)
                 {
                     mySqlCom.AlterTable(((ChangeTableRequest)postAdmin.request).changeTable);
                 }
                 else if (((ChangeTableRequest)postAdmin.request).changeTable.ColumnName == "IdDaemon" &&
                          ((ChangeTableRequest)postAdmin.request).changeTable.Value is int)
                 {
                     mySqlCom.AlterTable(((ChangeTableRequest)postAdmin.request).changeTable);
                 }
                 else if (((ChangeTableRequest)postAdmin.request).changeTable.ColumnName == "Enabled" &&
                          ((ChangeTableRequest)postAdmin.request).changeTable.Value is bool)
                 {
                     mySqlCom.AlterTable(((ChangeTableRequest)postAdmin.request).changeTable);
                 }
                 else if (((ChangeTableRequest)postAdmin.request).changeTable.ColumnName == "Email" &&
                          ((ChangeTableRequest)postAdmin.request).changeTable.Value is string)
                 {
                     mySqlCom.AlterTable(new ChangeTable()
                     {
                         ColumnName = "RecievingEmail", Id = (int)mySqlCom.GetAdminId(postAdmin.adminInfo.UserName), TableName = "tbEmailPreferences", Value = ((ChangeTableRequest)postAdmin.request).changeTable.Value
                     }, "IdAdmin");
                     mySqlCom.AlterTable(((ChangeTableRequest)postAdmin.request).changeTable);
                 }
                 else if (((ChangeTableRequest)postAdmin.request).changeTable.ColumnName == "Username" &&
                          !mySqlCom.Exists(new ExistsRequest()
                 {
                     Column = ((ChangeTableRequest)postAdmin.request).changeTable.ColumnName,
                     TableName = ((ChangeTableRequest)postAdmin.request).changeTable.TableName,
                     Value = ((ChangeTableRequest)postAdmin.request).changeTable.Value
                 }))
                 {
                     mySqlCom.AlterTable(((ChangeTableRequest)postAdmin.request).changeTable);
                 }
                 else if (((ChangeTableRequest)postAdmin.request).changeTable.ColumnName == "TimerTick" &&
                          (((ChangeTableRequest)postAdmin.request).changeTable.Value is long) || ((ChangeTableRequest)postAdmin.request).changeTable.Value is int)
                 {
                     mySqlCom.AlterTable(((ChangeTableRequest)postAdmin.request).changeTable);
                 }
                 else if (((ChangeTableRequest)postAdmin.request).changeTable.ColumnName == "TimerOnStart" &&
                          (((ChangeTableRequest)postAdmin.request).changeTable.Value is long) || ((ChangeTableRequest)postAdmin.request).changeTable.Value is int)
                 {
                     mySqlCom.AlterTable(((ChangeTableRequest)postAdmin.request).changeTable);
                 }
                 else if (((ChangeTableRequest)postAdmin.request).changeTable.ColumnName == "TimerAfterFail" &&
                          (((ChangeTableRequest)postAdmin.request).changeTable.Value is long) || ((ChangeTableRequest)postAdmin.request).changeTable.Value is int)
                 {
                     mySqlCom.AlterTable(((ChangeTableRequest)postAdmin.request).changeTable);
                 }
                 else
                 {
                     throw new HttpResponseException(HttpStatusCode.BadRequest);
                 }
             }
             else
             {
                 throw new HttpResponseException(HttpStatusCode.Forbidden);
             }
         }
         else
         {
             throw new HttpResponseException(HttpStatusCode.Unauthorized);
         }
     }
     else
     {
         throw new HttpResponseException(HttpStatusCode.BadRequest);
     }
 }