예제 #1
0
        public async Task <IActionResult> Create(CategoryCreateEditViewModel vm)
        {
            var cultureItems = LocalizationOptions.Value.SupportedUICultures
                               .Select(c => new { Value = c.Name, Text = c.DisplayName }).ToList();

            if (ModelState.IsValid)
            {
                var translations = new Dictionary <string, string>();
                foreach (var cultureItem in cultureItems)
                {
                    translations[cultureItem.Value] = vm.Category.Name;
                }

                vm.Category.Translation = JsonConvert.SerializeObject(translations, Formatting.Indented);

                // vm.Category.Id = Guid.NewGuid();
                _bll.CategoryService.Add(vm.Category);
                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            vm.CategorySelectList = new SelectList(await _bll.CategoryService.GetAllParentCategoriesAsync(),
                                                   nameof(Category.Id), nameof(Category.Name),
                                                   vm.Category.ParentCategoryId);
            return(View(vm));
        }
예제 #2
0
        public async Task <IActionResult> Edit(Guid id, CategoryCreateEditViewModel vm)
        {
            if (id != vm.Id)
            {
                return(BadRequest(new MessageDTO("Id and vm.id do not match")));
            }

            if (!await _bll.Categories.ExistsAsync(vm.Id))
            {
                return(NotFound(new MessageDTO($"Category with this id {id} not found")));
            }

            if (ModelState.IsValid)
            {
                await _bll.Categories.UpdateAsync(_mapper.Map(vm));

                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            vm.ParentCategorySelectList = new SelectList(await _bll.Categories.GetAllAsync(),
                                                         nameof(CategoryBLL.Id), nameof(CategoryBLL.Description),
                                                         vm.ParentCategoryId);
            return(View(vm));
        }
예제 #3
0
        public ActionResult CreateCategory(int id, CategoryCreateEditViewModel formData)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var cookie = Request.Cookies["SavedCookie"];

            if (cookie == null)
            {
                return(RedirectToAction("Login", "Home"));
            }

            var token = cookie.Value;

            var url = $"http://localhost:56327/api/category/create/{id}";


            var httpClient = new HttpClient();

            httpClient.DefaultRequestHeaders.Add("Authorization",
                                                 $"Bearer {token}");

            var parameters = new List <KeyValuePair <string, string> >();

            parameters.Add(new KeyValuePair <string, string>("Name", formData.Name));
            parameters.Add(new KeyValuePair <string, string>("Description", formData.Description));

            var encodedParameters = new FormUrlEncodedContent(parameters);

            var response = httpClient.PostAsync(url, encodedParameters).Result;

            if (response.StatusCode == System.Net.HttpStatusCode.Created)
            {
                var data = response.Content.ReadAsStringAsync().Result;

                var result = JsonConvert.DeserializeObject <Category>(data);

                return(RedirectToAction("Index", "HouseHold"));
            }
            else if (response.StatusCode == System.Net.HttpStatusCode.BadRequest)
            {
                var data   = response.Content.ReadAsStringAsync().Result;
                var result = JsonConvert.DeserializeObject <APIErrorData>(data);

                ViewBag.Result = result;
                ViewBag.Errors = result.ModelState.Values.ToList();

                return(View());
            }
            else if (response.StatusCode == System.Net.HttpStatusCode.InternalServerError)
            {
                return(View("Error"));
            }

            return(RedirectToAction("Index", "HouseHold"));
        }
예제 #4
0
        // GET: Categories/Create
        public async Task <IActionResult> Create()
        {
            CategoryCreateEditViewModel vm = new CategoryCreateEditViewModel();

            vm.CategorySelectList = new SelectList(
                await _bll.CategoryService.GetAllParentCategoriesAsync(), nameof(Category.Id), nameof(Category.Name));

            return(View(vm));
        }
예제 #5
0
        // GET: Categories/Create
        public async Task <IActionResult> Create()
        {
            var vm = new CategoryCreateEditViewModel
            {
                ParentCategorySelectList = new SelectList(await _bll.Categories.GetAllAsync(), nameof(CategoryBLL.Id),
                                                          nameof(CategoryBLL.Description))
            };


            return(View(vm));
        }
예제 #6
0
        public async Task <IActionResult> Create(CategoryCreateEditViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var bllEntity = _mapper.Map(vm);
                _bll.Categories.Add(bllEntity);
                await _bll.SaveChangesAsync();

                vm.Id = bllEntity.Id;
                return(RedirectToAction(nameof(Index)));
            }

            vm.ParentCategorySelectList = new SelectList(await _bll.Categories.GetAllAsync(),
                                                         nameof(CategoryBLL.Id), nameof(CategoryBLL.Description),
                                                         vm.ParentCategoryId);

            return(View(vm));
        }
예제 #7
0
        public async Task <IActionResult> Edit(Guid id, CategoryCreateEditViewModel vm)
        {
            if (id != vm.Category.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _bll.CategoryService.UpdateAsync(vm.Category);

                    await _bll.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!await _bll.CategoryService.ExistsAsync(vm.Category.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                return(RedirectToAction(nameof(Index)));
            }

            vm.CategorySelectList = new SelectList(await _bll.CategoryService.AllAsync(), nameof(Category.Id),
                                                   nameof(Category.Name),
                                                   vm.Category.ParentCategoryId);

            return(View(vm));
        }
예제 #8
0
        // GET: Categories/Edit/5
        public async Task <IActionResult> Edit(Guid?id)
        {
            CategoryCreateEditViewModel vm = new CategoryCreateEditViewModel();

            if (id == null)
            {
                return(NotFound());
            }


            var category = await _bll.CategoryService.FirstOrDefaultAsync(id.Value);

            vm.Category = category;
            if (category == null)
            {
                return(NotFound());
            }

            vm.CategorySelectList = new SelectList(await _bll.CategoryService.GetAllParentCategoriesAsync(),
                                                   nameof(Category.Id), nameof(Category.Name),
                                                   vm.Category.ParentCategoryId);

            return(View(vm));
        }
예제 #9
0
        public IActionResult CreateParentCategory()
        {
            CategoryCreateEditViewModel vm = new CategoryCreateEditViewModel();

            return(View(vm));
        }