示例#1
0
        public async Task <Domain.Entities.Edital> Execute(
            string numEdital,
            int clienteId,
            int estadoId,
            int modalidadeId,
            string dataDeAbertura,
            string horaDeAbertura,
            string uasg,
            int categoriaId,
            string consorcio,
            decimal valorEstimado,
            string agendarVistoria,
            string dataVistoria,
            string objetosDescricao,
            string objetosResumo,
            string observacoes,
            int regiaoId,
            int gerenteId,
            int diretorId,
            int portalId,
            string nomeAnexo,
            string tipoAnexo,
            byte[] base64Anexo
            )
        {
            using var context = new ApiContext();

            var anexoNew = new Anexo
            {
                Nome            = nomeAnexo,
                Tipo            = tipoAnexo,
                Base64          = base64Anexo,
                Ativo           = true,
                DataAtualizacao = DateTime.Now,
                DataCriacao     = DateTime.Now
            };

            var editalNew = new Domain.Entities.Edital
            {
                NumEdital          = numEdital,
                Cliente            = await context.Clientes.Where(x => x.Id == clienteId).SingleOrDefaultAsync(),
                Estado             = await context.Estados.Where(x => x.Id == estadoId).SingleOrDefaultAsync(),
                Modalidade         = await context.Modalidades.Where(x => x.Id == modalidadeId).SingleOrDefaultAsync(),
                Etapa              = await context.Etapas.Where(x => x.Id == 1).SingleOrDefaultAsync(),
                DataHoraDeAbertura = DateTime.Parse(dataDeAbertura + " " + horaDeAbertura),
                Uasg             = uasg,
                Categoria        = await context.Categorias.Where(x => x.Id == categoriaId).SingleOrDefaultAsync(),
                Consorcio        = consorcio,
                ValorEstimado    = valorEstimado,
                AgendarVistoria  = agendarVistoria,
                DataVistoria     = (agendarVistoria == "Sim" || agendarVistoria == "Facultativo") ? DateTime.Parse(dataVistoria) : new DateTime(),
                ObjetosDescricao = objetosDescricao,
                ObjetosResumo    = objetosResumo,
                Observacoes      = observacoes,
                Regiao           = await context.Regioes.Where(x => x.Id == regiaoId).SingleOrDefaultAsync(),
                Gerente          = await context.Usuarios.Where(x => x.Id == gerenteId).SingleOrDefaultAsync(),
                Diretor          = await context.Usuarios.Where(x => x.Id == diretorId).SingleOrDefaultAsync(),
                Portal           = await context.Portais.Where(x => x.Id == portalId).SingleOrDefaultAsync(),
                Anexo            = anexoNew,
                Ativo            = true,
                DataCriacao      = DateTime.Now,
                DataAtualizacao  = DateTime.Now
            };

            await context.Editais.AddAsync(editalNew);

            await context.SaveChangesAsync();

            return(editalNew);
        }
示例#2
0
        public async Task <Domain.Entities.Edital> Execute(
            int id,
            string numEdital,
            int clienteId,
            int estadoId,
            int modalidadeId,
            int etapaId,
            string dataDeAbertura,
            string horaDeAbertura,
            string uasg,
            int categoriaId,
            string consorcio,
            decimal valorEstimado,
            string agendarVistoria,
            string dataVistoria,
            string objetosDescricao,
            string objetosResumo,
            string observacoes,
            int regiaoId,
            int gerenteId,
            int diretorId,
            int portalId,
            bool ativo,
            int idAnexo,
            string nomeAnexo,
            string tipoAnexo,
            byte[] base64Anexo,
            int responsavelRequestId
            )
        {
            using var context = new ApiContext();

            var editalOld = await context.Editais
                            .Include(x => x.Etapa)
                            .Include(x => x.Anexo)
                            .AsNoTracking()
                            .Where(x => x.Ativo)
                            .SingleOrDefaultAsync(b => b.Id == id);

            if (editalOld == null)
            {
                return(null);
            }

            var anexo = new Anexo
            {
                Id              = idAnexo,
                Nome            = nomeAnexo,
                Tipo            = tipoAnexo,
                Base64          = base64Anexo,
                Ativo           = true,
                DataAtualizacao = DateTime.Now,
                DataCriacao     = DateTime.Now
            };

            var editalNew = new Domain.Entities.Edital
            {
                Id                 = id,
                NumEdital          = numEdital,
                Cliente            = await context.Clientes.FindAsync(clienteId),
                Estado             = await context.Estados.FindAsync(estadoId),
                Modalidade         = await context.Modalidades.FindAsync(modalidadeId),
                Etapa              = editalOld.Etapa,
                DataHoraDeAbertura = DateTime.Parse(dataDeAbertura + " " + horaDeAbertura),
                Uasg               = uasg,
                Categoria          = await context.Categorias.FindAsync(categoriaId),
                Consorcio          = consorcio,
                ValorEstimado      = valorEstimado,
                AgendarVistoria    = agendarVistoria,
                DataVistoria       = (agendarVistoria == "Sim" || agendarVistoria == "Facultativo") ? DateTime.Parse(dataVistoria) : new DateTime(),
                ObjetosDescricao   = objetosDescricao,
                ObjetosResumo      = objetosResumo,
                Observacoes        = observacoes,
                Regiao             = await context.Regioes.FindAsync(regiaoId),
                Gerente            = await context.Usuarios.FindAsync(gerenteId),
                Diretor            = await context.Usuarios.FindAsync(diretorId),
                Portal             = await context.Portais.FindAsync(portalId),
                Anexo              = anexo,
                Ativo              = ativo,
                DataCriacao        = editalOld.DataCriacao,
                DataAtualizacao    = DateTime.Now
            };

            context.Editais.Update(editalNew);

            await context.SaveChangesAsync();

            return(editalNew);
        }