public async Task<ActionResult> Create(CategoryViewModel model, params int[] selectedRole)
        {
            if (ModelState.IsValid)
            {
                var result = await CategoryManager.CreateCustomAsync(model.Name, model.Description);
                if (!result.Succeeded)
                {
                    ModelState.AddModelError("", result.Errors.First());
                }
                else
                {
                    selectedRole = selectedRole ?? new int[] { };
                    foreach (var roleId in selectedRole)
                    {
                        var roleResult = await RoleManager.AddToCategoryAsync(roleId, model.Name);
                        if (!roleResult.Succeeded)
                        {
                            ModelState.AddModelError("", roleResult.Errors.First());
                        }
                    }

                    return RedirectToAction("Index");
                }
            }

            model.RolesList = RoleManager.Roles.ToList().Select(x => new SelectListItem()
            {
                Selected = false,
                Text = x.Name,
                Value = x.Name
            });
            return View(model);
        }
        //
        // GET: /Categories/Create
        public ActionResult Create()
        {
            var model = new CategoryViewModel();
            model.RolesList = RoleManager.Roles.ToList().Select(x => new SelectListItem()
                {
                    Selected = false,
                    Text = x.Name,
                    Value = x.Id.ToString()
                });

            return View(model);
        }
Esempio n. 3
0
        public async Task<IHttpActionResult> Get(long id)
        {
            var entity = await _repository.GetAsync(id);
            if (entity == null)
            {
                return NotFound();
            }
            var viewModel = new CategoryViewModel();
            viewModel.Create(entity);

            return Ok(viewModel);
        }
Esempio n. 4
0
        public async Task<IHttpActionResult> GetAll()
        {
            var all = await _repository.GetAllAsync();
            var allViewModels = new List<CategoryViewModel>();

            foreach (var entity in all)
            {
                var viewModel = new CategoryViewModel();
                viewModel.Create(entity);
                allViewModels.Add(viewModel);
            }
            return Ok(allViewModels);
        }
        //
        // GET: /Categories/Edit/Admin
        public async Task<ActionResult> Edit(int id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            var item = await CategoryManager.FindByIdAsync(id);
            if (item == null)
            {
                return HttpNotFound();
            }

            var categoryRoles = item.CategoryRoles.Select(r => r.RoleId).ToList();

            var model = new CategoryViewModel();
            model.Id = item.Id;
            model.Name = item.Name;
            model.Description = item.Description;
            model.TranslationCode = item.TranslationCode;
            model.RolesList = RoleManager.Roles.ToList().Select(x => new SelectListItem()
            {
                Selected = categoryRoles.Contains(x.Id),
                Text = x.Name,
                Value = x.Id.ToString()
            });

            return View(model);
        }
Esempio n. 6
0
        public async Task<IHttpActionResult> Post(Category entity)
        {
            var user = HttpContext.Current.User as ClaimsPrincipal;
            bool isAdmin = await _unitOfWork.Users.IsAdmin(user);

            if (!isAdmin)
            {
                return Unauthorized();
            }

            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            _repository.Add(entity);
            await _unitOfWork.CompleteAsync();
            var viewModel = new CategoryViewModel();
            viewModel.Create(entity);

            return CreatedAtRoute("DefaultApi", new { id = entity.Id }, viewModel);
        }
Esempio n. 7
0
        public async Task<IHttpActionResult> Delete(long id)
        {
            var user = HttpContext.Current.User as ClaimsPrincipal;
            bool isAdmin = await _unitOfWork.Users.IsAdmin(user);

            if (!isAdmin)
            {
                return Unauthorized();
            }

            var entity = await _repository.GetAsync(id);
            if (entity == null)
            {
                return NotFound();
            }

            //var productsInCategory = _unitOfWork.Products.FindAsync(c => c.CategoryId == id);
            

            _repository.Remove(entity);
            await _unitOfWork.CompleteAsync();
            var viewModel = new CategoryViewModel();
            viewModel.Create(entity);

            return Ok(viewModel);
        }