コード例 #1
0
    public static ProducaoContext GetProducaoContext()
    {
        var options = new DbContextOptionsBuilder <ProducaoContext> ()
                      .UseInMemoryDatabase("ProducaoDB")
                      .Options;

        ProducaoContext dbContext = new ProducaoContext(options);

        Seed(dbContext);
        return(dbContext);
    }
コード例 #2
0
        public ProdutoController(ProducaoContext context)
        {
            _context = context;
            repo     = new ProdutoRepositorio(_context);

            if (_context.Produtos.Count() == 0)
            {
                _context.Produtos.Add(new Produto {
                    nome = new NomeProduto {
                        nome = "ProdutoBase"
                    }, descricao = new DescricaoProduto {
                        descricao = "Produto por defeito"
                    }, planoFabrico = new NomePlanoFabrico {
                        nome = "PlanoFabrico1"
                    }
                });

                _context.SaveChanges();
            }
        }
コード例 #3
0
 public PlanoFabricoRepositorio(ProducaoContext context)
 {
     _context = context;
 }
コード例 #4
0
        public async Task <IActionResult> Otimizar([FromBody] ParametrosCenso _formulario)
        {
            this.Formulario = _formulario;

            Stopwatch sw = new Stopwatch();

            sw.Start();

            var TaskEnade = await Task.Run(() => {
                return(this.Context.CursoCenso.ToList());
            });

            var ResId = Convert.ToInt64(DateTime.Now.ToString("yyyyMMddHHmmss"));

            try
            {
                var query = await this.Context.ProfessorCursoEmec.ToListAsync();

                var query20p = await this.Context.ProfessorCursoEmec20p.ToListAsync();

                var ListaCursoArea = await this.CursoEnquadramentoContext.CursoEnquadramento.ToListAsync();

                var ListaPrevisaoSKU = GeraListaPrevisaoSKU();

                var Cursoprofessor = MontaCursoProfessor(query, ListaCursoArea);

                // // Obtem lista dos professores escolhidos no filtro
                var lista = _formulario.MontaLista();

                List <CursoProfessor> cursoProfessorAtual = new List <CursoProfessor>();
                Cursoprofessor.ForEach((item) => {
                    cursoProfessorAtual.Add((CursoProfessor)item.Clone());
                }
                                       );

                var CursoNota = getNotaCursos(query, ListaCursoArea);

                var CursoEnade = TaskEnade.Where(x => x.IndEnade.Contains('S')).Select(c => c.CodEmec.ToString()).Distinct().ToList();

                List <Resultado> ResultadoAtual = Otm.CalculaNotaCursos(ListaPrevisaoSKU, cursoProfessorAtual, CursoEnade);

                // ######################## Alavanca 20% ######################## //

                if (_formulario.otimiza20p)
                {
                    Otm.AddProfessor20p(Cursoprofessor, query20p, ListaPrevisaoSKU, _formulario, CursoEnade);
                }

                List <Resultado> resultado = Otm.OtimizaCurso(ListaPrevisaoSKU, query, Cursoprofessor, ListaCursoArea, _formulario);

                // ############## Monta resultados a partir do cenário otimizado ################# //

                var Resumoresultado = Otm.MontaResultadoFinal(resultado);

                var ResumoresultadoAtual = Otm.MontaResultadoFinal(ResultadoAtual);


                sw.Stop();

                // ############ Monta Objeto resultado Otimizado ############## //
                Task <string> json = Task.Run(
                    () => {
                    return(JsonConvert.SerializeObject(resultado));
                }
                    );

                Task <string> formJson = Task.Run(
                    () => {
                    return(JsonConvert.SerializeObject(_formulario));
                }
                    );

                Task <string> resumoJson = Task.Run(
                    () => {
                    return((string)JsonConvert.SerializeObject(Resumoresultado));
                }
                    );

                Task <string> professorJson = Task.Run(
                    () => {
                    return(JsonConvert.SerializeObject(Cursoprofessor));
                }
                    );


                // ############ Monta Objeto resultado Atual ############## //
                Task <string> jsonAt = Task.Run(
                    () => {
                    return(JsonConvert.SerializeObject(ResultadoAtual));
                }
                    );

                Task <string> formJsonAt = Task.Run(
                    () => {
                    return(JsonConvert.SerializeObject(_formulario));
                }
                    );

                Task <string> resumoJsonAt = Task.Run(
                    () => {
                    return((string)JsonConvert.SerializeObject(ResumoresultadoAtual));
                }
                    );

                Task <string> professorJsonAt = Task.Run(
                    () => {
                    return(JsonConvert.SerializeObject(cursoProfessorAtual));
                }
                    );

                var objRes = new TbResultado();
                objRes.Id = ResId;

                var objResAtual = new TbResultadoAtual();
                objResAtual.Id = ResId;


                Task.WaitAll(json, formJson, resumoJson, professorJson);
                Task.WaitAll(jsonAt, formJsonAt, resumoJsonAt, professorJsonAt);

                objRes.Resultado     = json.Result;
                objRes.Parametro     = formJson.Result;
                objRes.Resumo        = resumoJson.Result;
                objRes.Professores   = professorJson.Result;
                objRes.TempoExecucao = DateTime.Now.ToString("HH:mm:ss");
                objRes.Observacao    = _formulario.Observacao;

                objResAtual.Resultado   = jsonAt.Result;
                objResAtual.Parametro   = formJsonAt.Result;
                objResAtual.Resumo      = resumoJsonAt.Result;
                objResAtual.Professores = professorJsonAt.Result;

                ProducaoContext.Add(objRes);
                ProducaoContext.Add(objResAtual);

                ProducaoContext.SaveChanges();

                return(Ok());
            }
            catch (System.Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, "Erro no processamento." + e.Message));
            }
        }
コード例 #5
0
    private static void Seed(this ProducaoContext dbContext)
    {
        List <Operacao> lo1 = new List <Operacao> ();
        List <Operacao> lo2 = new List <Operacao> ();
        List <Operacao> lo3 = new List <Operacao> ();

        Operacao op1 = new Operacao {
            nome = "Operacao 1"
        };
        Operacao op2 = new Operacao {
            nome = "Operacao 2"
        };
        Operacao op3 = new Operacao {
            nome = "Operacao 3"
        };
        Operacao op4 = new Operacao {
            nome = "Operacao 4"
        };
        Operacao op5 = new Operacao {
            nome = "Operacao 5"
        };
        Operacao op6 = new Operacao {
            nome = "Operacao 6"
        };
        Operacao op7 = new Operacao {
            nome = "Operacao 7"
        };
        Operacao op8 = new Operacao {
            nome = "Operacao 8"
        };
        Operacao op9 = new Operacao {
            nome = "Operacao 9"
        };

        lo1.Add(op1);
        lo1.Add(op2);
        lo1.Add(op3);

        lo2.Add(op4);
        lo2.Add(op5);
        lo2.Add(op6);

        lo3.Add(op7);
        lo3.Add(op8);
        lo3.Add(op9);

        dbContext.PlanosFabrico.Add(new PlanoFabrico {
            nome = new NomePlanoFabrico {
                nome = "PlanoFabrico1"
            }, listaOperacoes = lo1
        });
        dbContext.PlanosFabrico.Add(new PlanoFabrico {
            nome = new NomePlanoFabrico {
                nome = "PlanoFabrico2"
            }, listaOperacoes = lo2
        });
        dbContext.PlanosFabrico.Add(new PlanoFabrico {
            nome = new NomePlanoFabrico {
                nome = "PlanoFabrico3"
            }, listaOperacoes = lo3
        });

        dbContext.Produtos.Add(new Produto {
            nome = new NomeProduto {
                nome = "ProdutoBase"
            }, descricao = new DescricaoProduto {
                descricao = "Produto por defeito"
            }, planoFabrico = new NomePlanoFabrico {
                nome = "PlanoFabrico1"
            }
        });

        dbContext.SaveChanges();
    }
コード例 #6
0
        public PlanoFabricoController(ProducaoContext context)
        {
            _context = context;
            repo     = new PlanoFabricoRepositorio(_context);

            if (_context.PlanosFabrico.Count() == 0)
            {
                List <Operacao> lo1 = new List <Operacao> ();
                List <Operacao> lo2 = new List <Operacao> ();
                List <Operacao> lo3 = new List <Operacao> ();

                Operacao op1 = new Operacao {
                    nome = "Operacao 1"
                };
                Operacao op2 = new Operacao {
                    nome = "Operacao 2"
                };
                Operacao op3 = new Operacao {
                    nome = "Operacao 3"
                };
                Operacao op4 = new Operacao {
                    nome = "Operacao 4"
                };
                Operacao op5 = new Operacao {
                    nome = "Operacao 5"
                };
                Operacao op6 = new Operacao {
                    nome = "Operacao 6"
                };
                Operacao op7 = new Operacao {
                    nome = "Operacao 7"
                };
                Operacao op8 = new Operacao {
                    nome = "Operacao 8"
                };
                Operacao op9 = new Operacao {
                    nome = "Operacao 9"
                };

                lo1.Add(op1);
                lo1.Add(op2);
                lo1.Add(op3);

                lo2.Add(op4);
                lo2.Add(op5);
                lo2.Add(op6);

                lo3.Add(op7);
                lo3.Add(op8);
                lo3.Add(op9);

                _context.PlanosFabrico.Add(new PlanoFabrico {
                    nome = new NomePlanoFabrico {
                        nome = "PlanoFabrico1"
                    }, listaOperacoes = lo1
                });
                _context.PlanosFabrico.Add(new PlanoFabrico {
                    nome = new NomePlanoFabrico {
                        nome = "PlanoFabrico2"
                    }, listaOperacoes = lo2
                });
                _context.PlanosFabrico.Add(new PlanoFabrico {
                    nome = new NomePlanoFabrico {
                        nome = "PlanoFabrico3"
                    }, listaOperacoes = lo3
                });

                _context.SaveChanges();
            }
        }
コード例 #7
0
 public UnitOfWork(ProducaoContext db)
 {
     this._db = db;
 }
コード例 #8
0
 public ProdutoRepository(ProducaoContext context)
 {
     this._context = context;
 }
コード例 #9
0
 public ProdutoRepositorio(ProducaoContext context)
 {
     _context = context;
 }
コード例 #10
0
 public SolicitacaoCompraRepository(ProducaoContext context)
 {
     _context = context;
 }