public string GetDateDueFromRecurringTaskModel(RecurringTaskModel recurringTaskModel) { var currentDate = DateTimeOffset.Now; DateTimeOffset dueDate = currentDate; switch (recurringTaskModel.TaskRecurrenceType) { case DataModel.Enums.TaskRecurrenceType.Day: dueDate = currentDate.AddDays(recurringTaskModel.RecurrenceInterval); break; case DataModel.Enums.TaskRecurrenceType.Week: dueDate = currentDate.AddDays(recurringTaskModel.RecurrenceInterval * 7); break; case DataModel.Enums.TaskRecurrenceType.Month: dueDate = currentDate.AddMonths(recurringTaskModel.RecurrenceInterval); break; case DataModel.Enums.TaskRecurrenceType.Year: dueDate = currentDate.AddYears(recurringTaskModel.RecurrenceInterval); break; default: break; } return(dueDate.FormatDateString()); }
public async Task <IActionResult> Put([FromBody] RecurringTaskModel model) { // TODO - add validation ////await _recurringTasksService.UpdateTask(model); return(new NoContentResult()); }
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 AddRecurringTask(RecurringTaskModel model, int userId) { var firstTask = _recurringTaskValueService.CreateTaskFromRecurringTaskModel(model); model.Tasks = new List <TaskModel>() { firstTask }; await _commands.AddRecurringTask(model, userId); }
public async Task AddRecurringTask(RecurringTaskModel model, int userId) { using (var db = _dbContextFactory.Create()) { var recurringTask = new RecurringTask(); recurringTask = _lifeTaskMappingService.PopulateRecurringTaskFromModel(model, recurringTask, userId); db.RecurringTasks.Add(recurringTask); await db.SaveChangesAsync(); } }
public TaskModel CreateTaskFromRecurringTaskModel(RecurringTaskModel recurringTaskModel) { var taskModel = new TaskModel { Name = recurringTaskModel.Name, Description = recurringTaskModel.Description, DateDue = GetDateDueFromRecurringTaskModel(recurringTaskModel), DurationInMinutes = 0, // TODO - add duration to recurring task TaskTypeId = recurringTaskModel.TaskType.Id }; return(taskModel); }
public async Task <IActionResult> Post([FromBody] RecurringTaskModel model) { var userId = _userManagerService.TryGetUserId(User); if (!userId.HasValue) { return(new UnauthorizedResult()); } // TODO - add validation await _recurringTasksService.AddRecurringTask(model, userId.Value); return(new NoContentResult()); }
public Task UpdateRecurringTask(RecurringTaskModel model) { throw new NotImplementedException(); }