public void Save(UsuarioPostDTO dto) { VerifyExists(dto, CommonMessages.InformacoesEntrada); if (_uow.UsuarioRepository.GetAll().Any(x => x.Login == dto.Login)) { throw new DomainException("Login já em uso"); } var usuario = new Usuario { Nome = dto.Nome, Email = dto.Email, Login = dto.Login, Senha = Helper.ComputeSha256Hash(dto.Senha), IsSuperUsuario = dto.IsSuperUsuario, IsAutorizado = dto.IsAutorizado }; if (!string.IsNullOrWhiteSpace(dto.Imagem) && !dto.Imagem.StartsWith("http")) { if (!string.IsNullOrWhiteSpace(usuario.ImageUrl)) { _imageUpload.DeleteImage(usuario.ImageUrl); } var imageUrl = _imageUpload.SaveImage(dto.Imagem); usuario.ImageUrl = imageUrl; } Validate(usuario); _uow.UsuarioRepository.Add(usuario); _uow.Commit(); _emailService.SendAuthorizedEmail(usuario.Email).ConfigureAwait(false); }
public void Save(ComponentePostDTO dto) { var componente = new Componente { Nome = dto.Nome, Status = dto.Status, Descricao = dto.Descricao, UsuarioId = IdUsuario, CategoriaId = dto.IdCategoria, FrameworkId = dto.IdFramework, Arquivo = dto.Arquivo, DataCriacao = DateTime.Now, DataUltimaAlteracao = DateTime.Now, IdUsuarioUltimaAlteracao = IdUsuario, Exemplo = dto.Exemplo, Observacao = dto.Observacao, Parametros = dto.Parametros.Select(p => new Parametro { Nome = p.Nome, Descricao = p.Descricao, Obrigatorio = p.Obrigatorio, TipoId = p.TipoId, DataUltimaAlteracao = DateTime.Now, IdUsuarioUltimaAlteracao = IdUsuario }).ToList(), Metodos = dto.Metodos.Select(m => new Metodo { Nome = m.Nome, Descricao = m.Descricao, IdTipoRetorno = m.IdTipoRetorno, Exemplo = m.Exemplo, DataUltimaAlteracao = DateTime.Now, IdUsuarioUltimaAlteracao = IdUsuario, ParametrosMetodo = m.ParametrosMetodo.Select(param => new ParametroMetodo { Nome = param.Nome, Descricao = param.Descricao, Obrigatorio = param.Obrigatorio, TipoId = param.TipoId, DataUltimaAlteracao = DateTime.Now, IdUsuarioUltimaAlteracao = IdUsuario }).ToList() }).ToList(), Eventos = dto.Eventos.Select(m => new Evento { Nome = m.Nome, Descricao = m.Descricao, Exemplo = m.Exemplo, DataUltimaAlteracao = DateTime.Now, IdUsuarioUltimaAlteracao = IdUsuario, ParametrosEvento = m.ParametrosEvento.Select(param => new ParametroEvento { Nome = param.Nome, Descricao = param.Descricao, Obrigatorio = param.Obrigatorio, TipoId = param.TipoId, DataUltimaAlteracao = DateTime.Now, IdUsuarioUltimaAlteracao = IdUsuario }).ToList() }).ToList(), Publicado = dto.Publicado }; if (!string.IsNullOrWhiteSpace(dto.Imagem) && !dto.Imagem.StartsWith("http")) { if (!string.IsNullOrWhiteSpace(componente.Imageurl)) { _imageUpload.DeleteImage(componente.Imageurl); } var imageUrl = _imageUpload.SaveImage(dto.Imagem); componente.Imageurl = imageUrl; } if (dto.Tags != null && dto.Tags.Count > 0) { 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()); } var tagsToRelate = dto.Tags.Where(x => x.Id > 0).ToList(); if (tagsToRelate.Count > 0) { _uow.ComponenteTagRepository.AddRange(tagsToRelate.Select(x => new ComponenteTag { TagId = x.Id, Componente = componente }).ToList()); } } #region ===== Dependência ===== var dependenciasToRelate = dto.Dependencias.Where(x => x.Id > 0).ToList(); if (dependenciasToRelate.Count > 0) { _uow.ComponenteDependenciaRepository.AddRange(dependenciasToRelate.Select(p => new ComponenteDependencia { DependenciaId = p.Id, Componente = componente, DataUltimaAlteracao = DateTime.Now, IdUsuarioUltimaAlteracao = IdUsuario }).ToList()); } #endregion Validate(componente); _uow.ComponenteRepository.Add(componente); _uow.Commit(); }