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); }
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); }
public async Task DeleteTask(LifeTask dbTask) { using (var db = _dbContextFactory.Create()) { db.LifeTasks.Remove(dbTask); await db.SaveChangesAsync(); } }
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(); } }
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 }); }