コード例 #1
0
        public void Update(ComponentePutDTO dto, int id)
        {
            var query      = _uow.ComponenteRepository.GetById(id).Include(x => x.ComponenteTags).Include(x => x.ComponenteDependencias);
            var componente = query.FirstOrDefault();

            if (dto.ImagemPut != null)
            {
                var imageUrl = _imageUpload.SaveImage(dto.ImagemPut);
                componente.Imageurl = imageUrl;
            }
            componente.Nome        = dto.Nome;
            componente.Arquivo     = dto.Arquivo;
            componente.Descricao   = dto.Descricao;
            componente.Exemplo     = dto.Exemplo;
            componente.Observacao  = dto.Observacao;
            componente.Publicado   = dto.Publicado;
            componente.CategoriaId = dto.IdCategoria;
            componente.FrameworkId = dto.IdFramework;
            componente.Status      = dto.Status;
            componente.IdUsuarioUltimaAlteracao = IdUsuario;
            componente.DataUltimaAlteracao      = DateTime.Now;


            var tagsToDelete = componente.ComponenteTags.Where(x => !dto.Tags.Select(y => y.Id).Contains(x.TagId)).ToList();

            if (tagsToDelete.Count > 0)
            {
                _uow.ComponenteTagRepository.MassDelete(tagsToDelete);
            }

            var tagsToRelate = dto.Tags.Where(x => x.Id > 0 && !componente.ComponenteTags.Select(y => y.TagId).Contains(x.Id)).ToList();

            if (tagsToRelate.Count > 0)
            {
                _uow.ComponenteTagRepository.AddRange(tagsToRelate.Select(x => new ComponenteTag {
                    TagId = x.Id, Componente = componente
                }).ToList());
            }

            var tagsToAdd = dto.Tags.Where(x => x.Id == 0).ToList();

            if (tagsToAdd.Count > 0)
            {
                _uow.ComponenteTagRepository.AddRange(tagsToAdd.Select(x => new ComponenteTag
                {
                    Componente = componente,
                    Tag        = new Tag {
                        Nome = x.Nome
                    }
                })
                                                      .ToList());
            }


            Validate(componente);
            _uow.Commit();
        }
コード例 #2
0
 public ActionResult Update(int id, ComponentePutDTO dto)
 {
     _appService.Update(dto, id);
     return(Ok());
 }