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(); }
public async Task <ActionResult> UpdateView([FromRoute] Guid id, [FromBody] ViewRequestDTO request) { try { await _service.Update(id, request); } catch (KeyNotFoundException) { return(NotFound()); } return(NoContent()); }
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); }
public async Task <ActionResult> CreateView([FromBody] ViewRequestDTO request) { var result = await _service.Create(request); return(CreatedAtAction("GetViews", result)); }