public async Task Update(Guid id, UpsertCategoryModel model)
        {
            var category = await _repository.GetById(id);

            category.Update(model.Name, model.Description);

            _repository.Update(category);
            await _repository.SaveChanges();
        }
示例#2
0
        /// <summary>
        /// Provides an actionresult for adding a new category
        /// </summary>
        /// <returns>Actionresult for adding a new category</returns>
        public async Task <IActionResult> AddCategory()
        {
            var model = new UpsertCategoryModel
            {
                AvailableParentCategories = await CreateAvailableParentCategoriesSelectList(new CategoryModel()),
                CategoryModel             = new CategoryModel()
            };

            return(View("UpsertCategory", model));
        }
        public async Task <CategoryModel> Add(UpsertCategoryModel model)
        {
            var category = _mapper.Map <Category>(model);

            await _repository.Add(category);

            await _repository.SaveChanges();

            return(_mapper.Map <CategoryModel>(category));
        }
示例#4
0
        /// <summary>
        /// Upserts the category model to the database
        /// </summary>
        /// <param name="model">Model to upsert</param>
        /// <returns>Index page and message if success</returns>
        public async Task <IActionResult> UpsertCategory(UpsertCategoryModel model)
        {
            if (model.CategoryModel.Id > 0)
            {
                if (!ModelState.IsValid)
                {
                    return(RedirectToAction("EditCategory", new { model.CategoryModel.Id }));
                }

                try
                {
                    await _categoryService.UpdateCategoryForCurrentUser(model.CategoryModel);

                    TempDataHelper.SetTemporaryMessage(TempData, MessageState.Success, Resources.CategoryUpdated);
                }
                catch (NotFoundException)
                {
                    TempDataHelper.SetTemporaryMessage(TempData, MessageState.Error, Resources.CategoryNotFound);
                }
            }
            else
            {
                if (!ModelState.IsValid)
                {
                    return(RedirectToAction("AddCategory"));
                }

                try
                {
                    await _categoryService.CreateCategoryForCurrentUser(model.CategoryModel);

                    TempDataHelper.SetTemporaryMessage(TempData, MessageState.Success, Resources.CategoryCreated);
                }
                catch (AlreadyExistsException)
                {
                    TempDataHelper.SetTemporaryMessage(TempData, MessageState.Error, string.Format(Resources.CategoryAlreadyExists, model.CategoryModel.Name));
                }
            }

            return(RedirectToAction("Index"));
        }
示例#5
0
        /// <summary>
        /// Provides an actionresult for editing a new category
        /// </summary>
        /// <param name="categoryId">Id of category to edit</param>
        /// <param name="includeTransactions">Include transactions or not for overview</param>
        /// <returns>Actionresult for editing a new category</returns>
        public async Task <IActionResult> EditCategory(int categoryId)
        {
            try
            {
                var category = await _categoryService.GetCategoryByIdForCurrentUser(categoryId);

                var availableParentCategories = await CreateAvailableParentCategoriesSelectList(category);

                var model = new UpsertCategoryModel
                {
                    CategoryModel             = category,
                    AvailableParentCategories = availableParentCategories
                };

                return(View("UpsertCategory", model));
            }
            catch (NotFoundException)
            {
                TempDataHelper.SetTemporaryMessage(TempData, MessageState.Error, Resources.CategoryNotFound);
                return(RedirectToAction("Index"));
            }
        }
示例#6
0
        public async Task <IActionResult> Update([FromRoute] Guid id, [FromBody] UpsertCategoryModel model)
        {
            await _categoriesService.Update(id, model);

            return(NoContent());
        }
示例#7
0
        public async Task <IActionResult> Add([FromBody] UpsertCategoryModel model)
        {
            var result = await _categoriesService.Add(model);

            return(Created(result.Id.ToString(), null));
        }