コード例 #1
0
        public LifeTask PopulateLifeTaskFromModel(TaskModel model, LifeTask dbTask, int?userId = null)
        {
            dbTask.Name              = model.Name;
            dbTask.DateDue           = CustomFormatExtensions.DateFormatter(model.DateDue);
            dbTask.ScheduledDate     = CustomFormatExtensions.DateFormatter(model.ScheduledDate);
            dbTask.DurationInMinutes = model.DurationInMinutes;

            // TODO - potentially need better checks on whether a user already exists
            if (dbTask.UserId == 0)
            {
                if (userId.HasValue)
                {
                    dbTask.UserId = userId.Value;
                }
                else
                {
                    throw new InvalidOperationException("This task has not been created in the context of a user");
                }
            }

            if (dbTask.Completed && !model.Completed)
            {
                dbTask.CompletedDate = null;
            }
            else if (!dbTask.Completed && model.Completed)
            {
                dbTask.CompletedDate = _dateTimeService.GetCurrentTime();
            }

            dbTask.Completed   = model.Completed;
            dbTask.TaskTypeId  = model.TaskTypeId;
            dbTask.Description = model.Description;

            return(dbTask);
        }
コード例 #2
0
        public RecurringTask PopulateRecurringTaskFromModel(RecurringTaskModel model, RecurringTask dbRecurringTask, int?userId = null)
        {
            if (dbRecurringTask.UserId == 0)
            {
                if (userId.HasValue)
                {
                    dbRecurringTask.UserId = userId.Value;
                }
                else
                {
                    throw new InvalidOperationException("This task has not been created in the context of a user");
                }
            }

            dbRecurringTask.Name               = model.Name;
            dbRecurringTask.Description        = model.Description;
            dbRecurringTask.RecurrenceInterval = model.RecurrenceInterval;
            dbRecurringTask.TaskRecurrenceType = model.TaskRecurrenceType;


            foreach (var taskModel in model.Tasks)
            {
                var dbTask = new LifeTask();
                dbTask = PopulateLifeTaskFromModel(taskModel, dbTask, userId);
                dbRecurringTask.Tasks.Add(dbTask);
            }

            return(dbRecurringTask);
        }
コード例 #3
0
        public async Task DeleteTask(LifeTask dbTask)
        {
            using (var db = _dbContextFactory.Create())
            {
                db.LifeTasks.Remove(dbTask);

                await db.SaveChangesAsync();
            }
        }
コード例 #4
0
        public async Task AddTask(TaskModel model, int userId)
        {
            using (var db = _dbContextFactory.Create())
            {
                var dbTask = new LifeTask();

                dbTask = _lifeTaskMappingService.PopulateLifeTaskFromModel(model, dbTask, userId);

                db.LifeTasks.Add(dbTask);

                await db.SaveChangesAsync();
            }
        }
コード例 #5
0
 public static TaskModel MapLifeTaskToTaskModel(this LifeTask t)
 {
     return(new TaskModel
     {
         Id = t.Id,
         Name = t.Name,
         Description = t.Description,
         DateDue = t.DateDue.ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz"),
         Completed = t.Completed,
         CompletedDate = t.CompletedDate.HasValue ? t.CompletedDate.Value.ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz") : null,
         ScheduledDate = t.ScheduledDate.HasValue ? t.ScheduledDate.Value.ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz") : null,
         DurationInMinutes = t.DurationInMinutes,
         TaskTypeId = t.TaskTypeId,
         TaskType = t.TaskType?.Name
     });
 }