public OutputGetId GetById(int id)
        {
            using (var db = new FIPEContratosContext())
            {
                try
                {
                    var tipoDoc = new OutputGetId();
                    var doc     = new bTipoDocumento(db).GetById(id);

                    tipoDoc.IdTipoDocumento = doc.IdTipoDoc;
                    tipoDoc.DsTipoDocumento = doc.DsTipoDoc;
                    tipoDoc.IdTipoEntidade  = doc.IdEntidade.Value;
                    tipoDoc.IcDocContratual = doc.IcDocContratual.Value;

                    return(tipoDoc);
                }
                catch (Exception ex)
                {
                    new bEmail(db).EnviarEmailTratamentoErro(ex, "TipoDocumentoController-GetById");


                    throw;
                }
            }
        }
        public List <OutputGet> Get()
        {
            using (var db = new FIPEContratosContext())
            {
                try
                {
                    var tipoDocs      = new bTipoDocumento(db).Get();
                    var listaTipoDocs = new List <OutputGet>();

                    foreach (var item in tipoDocs)
                    {
                        var tipoDoc = new OutputGet();

                        tipoDoc.IdTipoDocumento = item.IdTipoDoc;
                        tipoDoc.DsTipoDocumento = item.DsTipoDoc;
                        tipoDoc.IcDocContratual = item.IcDocContratual == true ? "Sim" : "Não";

                        switch (item.IdEntidade)
                        {
                        case 1:
                            tipoDoc.DsTipoEntidade = "Oportunidade";
                            break;

                        case 2:
                            tipoDoc.DsTipoEntidade = "Proposta";
                            break;

                        case 3:
                            tipoDoc.DsTipoEntidade = "Contrato";
                            break;
                        }
                        listaTipoDocs.Add(tipoDoc);
                    }

                    return(listaTipoDocs);
                }
                catch (Exception ex)
                {
                    new bEmail(db).EnviarEmailTratamentoErro(ex, "TipoDocumentoController-Get");



                    throw;
                }
            }
        }
        public OutPutUpDateTipoDocumento Update([FromBody] InputUpDateTipoDocumento item)
        {
            var retorno = new OutPutUpDateTipoDocumento();

            using (var db = new FIPEContratosContext())
            {
                var strategy = db.Database.CreateExecutionStrategy();

                strategy.Execute(() =>
                {
                    using (var transaction = db.Database.BeginTransaction())
                    {
                        try
                        {
                            var tipoDoc             = new TipoDocumento();
                            tipoDoc.IdTipoDoc       = Convert.ToInt16(item.IdTipoDocumento);
                            tipoDoc.DsTipoDoc       = item.DsTipoDocumento;
                            tipoDoc.IdEntidade      = item.IdTipoEntidade;
                            tipoDoc.IcDocContratual = item.IcDocContratual;
                            tipoDoc.IdPrincipais    = 1;

                            var updateRetorno = new bTipoDocumento(db).UpdateTipoDocumento(tipoDoc);

                            // Confirma operações
                            db.Database.CommitTransaction();

                            retorno.Result = updateRetorno;
                        }
                        catch (Exception ex)
                        {
                            new bEmail(db).EnviarEmailTratamentoErro(ex, "TipoDocumentoController-Update");

                            retorno.Result = false;
                        }
                        return(retorno);
                    }
                });

                return(retorno);
            }
        }