public void InserirRascunhoApr(RascunhoAprModelo rascunhoAprModelo)
 {
     using (var entities = databaseEntities.GetDB_LaborSafetyEntities())
     {
         using (var transaction = entities.Database.BeginTransaction())
         {
             try
             {
                 this.Inserir(rascunhoAprModelo, entities);
                 transaction.Commit();
             }
             catch (Exception)
             {
                 transaction.Rollback();
                 throw;
             }
         }
     }
 }
        public void Inserir(RascunhoAprModelo rascunhoAprModelo, DB_LaborSafetyEntities entities)
        {
            List <OperacaoAprModelo>   operacaoApr = rascunhoAprModelo.OPERACAO_APR;
            List <AprovadorAprModelo>  aprovadores = rascunhoAprModelo.APROVADOR_APR;
            List <ExecutanteAprModelo> executores  = rascunhoAprModelo.EXECUTANTE_APR;
            List <PessoaModelo>        pessoas     = rascunhoAprModelo.PESSOA;

            try
            {
                var apr = new APR()
                {
                    CodStatusAPR     = rascunhoAprModelo.CodStatusAPR,
                    NumeroSerie      = rascunhoAprModelo.OrdemManutencao,
                    OrdemManutencao  = rascunhoAprModelo.OrdemManutencao,
                    Descricao        = rascunhoAprModelo.Descricao,
                    RiscoGeral       = rascunhoAprModelo.RiscoGeral,
                    DataAprovacao    = DateTime.Now,
                    DataInicio       = DateTime.Now,
                    DataEncerramento = DateTime.Now,
                    Ativo            = true
                };

                entities.APR.Add(apr);
                entities.SaveChanges();

                long id = apr.CodAPR;

                if (operacaoApr != null)
                {
                    foreach (var atividade in operacaoApr)
                    {
                        var codLocalInstalacao = entities.LOCAL_INSTALACAO.Where(lc => lc.Nome == atividade.NomeLI).FirstOrDefault();

                        entities.OPERACAO_APR.Add(new OPERACAO_APR()
                        {
                            CodAPR        = id,
                            CodStatusAPR  = atividade.CodStatusAPR,
                            Codigo        = atividade.Codigo,
                            Descricao     = atividade.Descricao,
                            CodLI         = codLocalInstalacao.CodLocalInstalacao,
                            CodDisciplina = atividade.CodDisciplina,
                            CodAtvPadrao  = atividade.CodAtvPadrao
                        });
                        //InserirRiscoApr(id, codLocalInstalacao.CodLocalInstalacao, entities);
                    }
                }

                foreach (var aprovador in aprovadores)
                {
                    //InsereEditaPessoa(entities, pessoas, true, id, aprovador.CodPessoa);
                }

                foreach (var executor in executores)
                {
                    //InsereEditaPessoa(entities, pessoas, false, id, executor.CodPessoa);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }