示例#1
0
        public async Task Update(Guid id, ViewRequestDTO request)
        {
            var view = await GetById(id);

            view.Name             = request.Name;
            view.Description      = request.Description;
            view.RequiresApproval = request.RequiresApproval;
            view.ShowNames        = request.ShowNames;

            if (request.Categories != null && request.Categories.Count > 0)
            {
                view.ViewCategories.RemoveAll(vc => !request.Categories.Contains(vc.CategoryId));

                request.Categories
                .Where(categoryId => !view.ViewCategories.Select(vc => vc.CategoryId).Contains(categoryId))
                .ToList()
                .ForEach(categoryId => view.ViewCategories.Add(
                             new ViewCategory
                {
                    ViewId     = view.Id,
                    CategoryId = categoryId
                }
                             ));
            }

            _repository.Update(view);
            await _context.SaveChangesAsync();
        }
示例#2
0
        public async Task <ActionResult> UpdateView([FromRoute] Guid id, [FromBody] ViewRequestDTO request)
        {
            try
            {
                await _service.Update(id, request);
            }
            catch (KeyNotFoundException) {
                return(NotFound());
            }

            return(NoContent());
        }
示例#3
0
        public async Task <Guid> Create(ViewRequestDTO request)
        {
            var view = new View
            {
                Name             = request.Name,
                Description      = request.Description,
                RequiresApproval = request.RequiresApproval,
                ShowNames        = request.ShowNames,
                ViewCategories   = request.Categories.Select(id => new ViewCategory()
                {
                    CategoryId = id
                }).ToList()
            };

            await _repository.Create(view);

            await _context.SaveChangesAsync();

            return(view.Id);
        }
示例#4
0
        public async Task <ActionResult> CreateView([FromBody] ViewRequestDTO request)
        {
            var result = await _service.Create(request);

            return(CreatedAtAction("GetViews", result));
        }