public async Task <IActionResult> PostUpdate([FromBody] ListViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var owner = await userManager.GetUserAsync(HttpContext.User);

                try {
                    await Models.Database.Update.PostUpdate(vm, owner, context, hostingEnvironment);

                    vm.IdeaEx = IdeaEx.IdeaByIdAndOwner(vm.IdeaId, owner, context);
                    foreach (Favorite fav in vm.IdeaEx.Idea.Favorites)
                    {
                        Notification.Add(NotificationType.Update, fav.Owner, owner, vm.IdeaEx.Idea, context);
                    }
                    var JsonData = JsonConvert.SerializeObject(vm, Formatting.Indented, new JsonSerializerSettings {
                        ContractResolver = new CamelCasePropertyNamesContractResolver()
                    });
                    return(Json(JsonData));
                } catch (Exception ex) {
                    ex = ex;
                }
            }
            var JsonDataError = JsonConvert.SerializeObject(ModelState.Values, Formatting.Indented, new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });

            return(Json(JsonDataError));
        }
        public async Task <IActionResult> SaveEdit([FromBody] ListViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var owner = await userManager.GetUserAsync(HttpContext.User);

                //var JsonData = "";
                if (vm.EditId == 0)
                {
                    try {
                        await IdeaEx.UpdateIdea(vm, owner, context, hostingEnvironment);

                        vm.IdeaEx = IdeaEx.IdeaByIdAndOwner(vm.IdeaId, owner, context);
                    } catch (Exception ex) {
                        ex = ex;
                    }
                }
                else
                {
                    await Models.Database.Update.UpdateUpdate(vm, owner, context, hostingEnvironment);

                    vm.IdeaEx = IdeaEx.IdeaByIdAndOwner(vm.IdeaId, owner, context);
                }
                var JsonData = JsonConvert.SerializeObject(vm, Formatting.Indented, new JsonSerializerSettings {
                    ContractResolver = new CamelCasePropertyNamesContractResolver()
                });
                return(Json(JsonData));
            }
            var JsonDataError = JsonConvert.SerializeObject(ModelState.Values, Formatting.Indented, new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });

            return(Json(JsonDataError));
        }
        public async Task <IActionResult> Remove([FromBody] ListViewModel vm)
        {
            var owner = await userManager.GetUserAsync(HttpContext.User);

            try {
                if (vm.EditId == 0 && vm.IdeaId != null)
                {
                    var amountFavorites = await IdeaEx.Remove(owner, vm, context, hostingEnvironment);

                    UserStats.RemoveProject(owner, context);
                    UserStats.RemoveFavorited(owner, context, amountFavorites);
                }
                else
                {
                    await Models.Database.Update.Remove(owner, vm, context, hostingEnvironment);

                    vm.IdeaEx = IdeaEx.IdeaByIdAndOwner(vm.IdeaId, owner, context);
                }
                await context.SaveChangesAsync();
            } catch (Exception ex) {
                ex = ex;
            }
            var JsonData = JsonConvert.SerializeObject(vm, Formatting.Indented, new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });

            return(Json(JsonData));
        }
        public async Task <IActionResult> Edit([FromBody] ListViewModel vm)
        {
            var owner = await userManager.GetUserAsync(HttpContext.User);

            vm.IdeaEx = IdeaEx.IdeaByIdAndOwner(vm.IdeaId, owner, context);
            if (vm.IdeaEx != null)
            {
                if (vm.EditId != 0)
                {
                    vm.Update = await ideas.Models.Database.Update.GetByUpdateFromIdea(vm.IdeaEx.Idea.Id, vm.EditId, owner, context);
                }
            }
            var JsonData = JsonConvert.SerializeObject(vm, Formatting.Indented, new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });

            return(Json(JsonData));
        }