public void AddTask(Task task) { task.CreatedDate = _dateTime.UtcNow; using (TaskManagementDbContext context = new TaskManagementDbContext()) { task.Status = context.Status.Where(x => x.Name == "Not Started").SingleOrDefault(); task.CreatedBy = context.Users.Where(x => x.Username == _userSession.UserName).SingleOrDefault(); //task.CreatedBy = context.User.Find(1); // HACK: All tasks created by user 1 for now if (task.Users != null && task.Users.Any()) { for (var i = 0; i < task.Users.Count; ++i) { var user = task.Users[i]; var persistedUser = context.Users.Find(user.UserId); if (persistedUser == null) { throw new ChildObjectNotFoundException("User not found"); } task.Users[i] = persistedUser; } } context.Tasks.Add(task); context.SaveChanges(); } }
public Task DeleteTaskUsers(long taskId) { using (TaskManagementDbContext context = new TaskManagementDbContext()) { var task = GetValidTask(context, taskId); UpdateTaskUsers(context, task, null, false); context.SaveChanges(); return(task); } }
public Task ReplaceTaskUsers(long taskId, IEnumerable <long> userIds) { using (TaskManagementDbContext context = new TaskManagementDbContext()) { var task = GetValidTask(context, taskId); UpdateTaskUsers(context, task, userIds, false); context.SaveChanges(); return(task); } }
public Task AddTaskUser(long taskId, long userId) { using (TaskManagementDbContext context = new TaskManagementDbContext()) { var task = GetValidTask(context, taskId); UpdateTaskUsers(context, task, new[] { userId }, true); // context.Tasks.Attach(task); // context.Entry(task).State = EntityState.Modified; context.SaveChanges(); return(task); } }
public void UpdateTaskStatus(Task taskToUpdate, string statusName) { using (TaskManagementDbContext context = new TaskManagementDbContext()) { var status = context.Status.Where(x => x.Name == statusName).SingleOrDefault(); taskToUpdate.Status = status; taskToUpdate.StatusId = status.StatusId; // context.Tasks.Attach(taskToUpdate); // context.Entry(taskToUpdate).State = EntityState.Modified; var entity = context.Tasks.Find(taskToUpdate.TaskId); context.Entry(entity).CurrentValues.SetValues(taskToUpdate); context.SaveChanges(); } }
public Task DeleteTaskUser(long taskId, long userId) { using (TaskManagementDbContext context = new TaskManagementDbContext()) { var task = GetValidTask(context, taskId); var user = task.Users.FirstOrDefault(x => x.UserId == userId); if (user != null) { task.Users.Remove(user); // context.Tasks.Attach(task); // context.Entry(task).State = EntityState.Modified; context.SaveChanges(); } return(task); } }
public Task GetUpdatedTask(long taskId, Dictionary <string, object> updatedPropertyValueMap) { using (TaskManagementDbContext context = new TaskManagementDbContext()) { var task = GetValidTask(context, taskId); var propertyInfos = typeof(Task).GetProperties(); foreach (var propertyValuePair in updatedPropertyValueMap) { propertyInfos.Single(x => x.Name == propertyValuePair.Key) .SetValue(task, propertyValuePair.Value); } context.SaveChanges(); return(task); } }