Example #1
0
        public async Task CadastrarEditar(ArquivoDto arquivoDTO, bool salvarContexto = true)
        {
            var arquivo = await Contexto.Arquivos
                          .FirstOrDefaultAsync(o =>
                                               o.Id.Equals(arquivoDTO.Id) ||
                                               o.NomeArquivo.Equals(arquivoDTO.NomeArquivo) &&
                                               o.Caminho.Equals(arquivoDTO.Caminho));

            var resultado = arquivoDTO.ConverterParaModel();

            resultado.DataUltimaAlteracao = DateTime.Now;
            resultado.Linhas = arquivoDTO.Linhas
                               .Select(o => o.ConverterParaModel())
                               .ToList();

            if (arquivo is null)
            {
                resultado.Id = Guid.NewGuid();
                await Contexto.Arquivos.AddAsync(resultado);
            }
            else
            {
                Contexto.Entry(resultado).State = EntityState.Modified;
            }

            if (salvarContexto)
            {
                await Contexto.SaveChangesAsync();
            }
        }