void AdjustSort(ListTaskItem listItem, int oldOrderIndex, IOrderedEnumerable <ListTaskItem> sortedTasks) { if (oldOrderIndex != listItem.Sort) { if (oldOrderIndex < listItem.Sort) { for (var i = oldOrderIndex; i < listItem.Sort; i++) { if (sortedTasks.ElementAt(i).Sort > 0) { sortedTasks.ElementAt(i).Sort--; } } } else if (oldOrderIndex > listItem.Sort) { for (var i = listItem.Sort; i < oldOrderIndex; i++) { if (sortedTasks.ElementAt(i).Sort < sortedTasks.Count()) { sortedTasks.ElementAt(i).Sort++; } } } } }
HttpResponseMessage UpdateTask(ListTaskItem listItem, int oldOrderIndex, InMemoryListTasksDataContext <ListTaskItem> tasksData) { tasksData.ListItems.Remove(listItem); var sortedTasks = tasksData.ListItems.OrderBy(t => t.Sort); AdjustSort(listItem, oldOrderIndex, sortedTasks); tasksData.ListItems.Add(listItem); tasksData.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, listItem)); }
IActionResult UpdateTask(ListTaskItem listItem, int oldOrderIndex, InMemoryListTasksDataContext <ListTaskItem> tasksData) { tasksData.ListItems.Remove(listItem); var sortedTasks = tasksData.ListItems.OrderBy(t => t.Sort); AdjustSort(listItem, oldOrderIndex, sortedTasks); tasksData.ListItems.Add(listItem); tasksData.SaveChanges(); return(Ok(listItem)); }
HttpResponseMessage InsertTask(ListTaskItem listItem, InMemoryListTasksDataContext <ListTaskItem> tasksData) { var sortedTasks = tasksData.ListItems.OrderBy(t => t.Sort); for (var i = listItem.Sort; i < tasksData.ListItems.Count; i++) { sortedTasks.ElementAt(i).Sort++; } tasksData.ListItems.Add(listItem); tasksData.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.Created, listItem)); }
IActionResult InsertTask(ListTaskItem listItem, InMemoryListTasksDataContext <ListTaskItem> tasksData) { var sortedTasks = tasksData.ListItems.OrderBy(t => t.Sort); for (var i = listItem.Sort; i < tasksData.ListItems.Count; i++) { sortedTasks.ElementAt(i).Sort++; } tasksData.ListItems.Add(listItem); tasksData.SaveChanges(); return(Ok(listItem)); }
public IActionResult InsertDoingTasks(string values) { var listItem = new ListTaskItem(); JsonConvert.PopulateObject(values, listItem); if (!TryValidateModel(listItem)) { return(BadRequest(ModelState.GetFullErrorMessage())); } return(InsertTask(listItem, _doingTasksData)); }
public HttpResponseMessage InsertDoingTasks(FormDataCollection form) { var values = form.Get("values"); var listItem = new ListTaskItem(); JsonConvert.PopulateObject(values, listItem); Validate(listItem); if (!ModelState.IsValid) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState.GetFullErrorMessage())); } return(InsertTask(listItem, _doingTasksData)); }