示例#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();
        }