예제 #1
0
 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++;
                 }
             }
         }
     }
 }
예제 #2
0
        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));
        }
예제 #4
0
        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));
        }
예제 #7
0
        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));
        }