コード例 #1
0
        public JsonResult GetOne(int id)
        {
            Prioridades         obj     = new Prioridades();
            PrioridadRepository PrioRep = new PrioridadRepository();

            try
            {
                if (id > 0)
                {
                    obj = PrioRep.GetPrioridad(id);
                }
                else
                {
                    obj.Accion  = 0;
                    obj.Mensaje = "El parametro tiene un valor incorrecto!";
                }
            }
            catch (Exception ex)
            {
                //throw;

                obj.Accion  = 0;
                obj.Mensaje = ex.Message.ToString();
                //return Json(list, JsonRequestBehavior.AllowGet);
            }

            return(Json(obj, JsonRequestBehavior.AllowGet));
        }
コード例 #2
0
        public Prioridades Del(int Id)
        {
            SqlCommand  cmd        = new SqlCommand();
            Prioridades vResultado = new Prioridades();
            int         vControl   = -1;

            try
            {
                cmd = CrearComando("SGRC_SP_DelPrioridad");
                cmd.Parameters.AddWithValue("@PrioridadId", Id);

                AbrirConexion();
                vControl = Ejecuta_Accion(ref cmd);

                if (vControl > 0)
                {
                    vResultado.Accion      = 1;
                    vResultado.Mensaje     = "Se elimino con exito la Prioridad!";
                    vResultado.PrioridadId = Id;
                }
            }
            catch (Exception ex)
            {
                vResultado.Accion      = 1;
                vResultado.Mensaje     = ex.Message.ToString();
                vResultado.PrioridadId = Id;
                throw new Exception("No se pudo eliminar el registro por el siguiente error: " + ex.Message, ex);
            }
            finally
            {
                cmd.Dispose();
                CerrarConexion();
            }
            return(vResultado);
        }
コード例 #3
0
        public async Task <IActionResult> Edit(int id, [Bind("IdPrioridad,DescripcionPrioridad")] Prioridades prioridades)
        {
            if (id != prioridades.IdPrioridad)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(prioridades);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PrioridadesExists(prioridades.IdPrioridad))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(prioridades));
        }
コード例 #4
0
    public float ObterMultiplicadorTecnologia(Projeto projeto, Prioridades escolhido)
    {
        Prioridades prioridades = projeto.prioridadesTecnologia;

        float pontos = 0;

        switch (tipo)
        {
        case TipoEtapaMetodologia.Planejamento:
            pontos = prioridades.coletaDados * escolhido.coletaDados +
                     prioridades.estudoDominio * escolhido.estudoDominio +
                     prioridades.documentacao * escolhido.documentacao;
            break;

        case TipoEtapaMetodologia.Desenvolvimento:
            pontos = prioridades.legibilidade * escolhido.legibilidade +
                     prioridades.qualidadeSolucao * escolhido.qualidadeSolucao +
                     prioridades.desenvolvimentoInterface * escolhido.desenvolvimentoInterface;
            break;

        case TipoEtapaMetodologia.Validacao:
            pontos = prioridades.testes * escolhido.testes +
                     prioridades.avaliacaoCliente * escolhido.avaliacaoCliente +
                     prioridades.implantacao * escolhido.implantacao;
            break;

        case TipoEtapaMetodologia.Concluir:
            pontos = 0.05f;
            break;
        }

        return(pontos);
    }
コード例 #5
0
ファイル: PrioridadesController.cs プロジェクト: nusilmar/GAT
        public ActionResult DeleteConfirmed(int id)
        {
            Prioridades prioridades = db.Prioridades.Find(id);

            db.Prioridades.Remove(prioridades);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #6
0
ファイル: PrioridadesController.cs プロジェクト: nusilmar/GAT
 public ActionResult Edit([Bind(Include = "ID,Desc_Prioridade")] Prioridades prioridades)
 {
     if (ModelState.IsValid)
     {
         db.Entry(prioridades).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(prioridades));
 }
コード例 #7
0
ファイル: PrioridadesController.cs プロジェクト: nusilmar/GAT
        public ActionResult Create([Bind(Include = "ID,Desc_Prioridade")] Prioridades prioridades)
        {
            if (ModelState.IsValid)
            {
                db.Prioridades.Add(prioridades);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(prioridades));
        }
コード例 #8
0
        public async Task <IActionResult> Create([Bind("IdPrioridad,DescripcionPrioridad")] Prioridades prioridades)
        {
            if (ModelState.IsValid)
            {
                _context.Add(prioridades);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(prioridades));
        }
コード例 #9
0
    public Projeto GerarProjeto(float dificuldade)
    {
        // TODO(andre:2018-06-10): Uma possibilidade seria implementar uma
        // reputação do jogador com os diferentes tipos de empresa e usar isso
        // para decidir quais projetos seriam sugeridos
        // https://stackoverflow.com/questions/9956486/distributed-probability-random-number-generator
        List <DescricaoTipoEmpresa> possiveisEmpresas = new List <DescricaoTipoEmpresa>();

        foreach (DescricaoTipoEmpresa descricaoTipoEmpresa in descricaoTiposEmpresas)
        {
            if (dificuldade >= descricaoTipoEmpresa.dificuldadeMinima && dificuldade <= descricaoTipoEmpresa.dificuldadeMaxima)
            {
                possiveisEmpresas.Add(descricaoTipoEmpresa);
            }
        }

        DescricaoTipoEmpresa tipoSelecionado = possiveisEmpresas[Random.Range(0, possiveisEmpresas.Count)];

        string tipoEmpresa = tipoSelecionado.tipoEmpresa;
        // TODO(andre:2018-06-10): Permitir gerar nomes e descricoes aleatorias
        string nomeEmpresa = tipoSelecionado.nomeEmpresa;
        string descricao   = tipoSelecionado.descricaoProjeto;

        float pagamento          = (float)System.Math.Round(Random.Range(tipoSelecionado.pagamentoMinimo, tipoSelecionado.pagamentoMaximo), 2);
        float multa              = (float)System.Math.Round(Random.Range(tipoSelecionado.multaMinima, tipoSelecionado.multaMaxima), 2);
        int   tamanho            = Random.Range(tipoSelecionado.tamanhoMinimo, tipoSelecionado.tamanhoMaximo);
        float experienciaUsuario = Random.Range(tipoSelecionado.experienciaUsuarioMinima, tipoSelecionado.experienciaUsuarioMaxima);

        int pontosDesignEsperado     = Random.Range(tipoSelecionado.pontosDesignEsperadoMinimo, tipoSelecionado.pontosDesignEsperadoMaximo);
        int pontosTecnologiaEsperado = Random.Range(tipoSelecionado.pontosTecnologiaEsperadoMinimo, tipoSelecionado.pontosTecnologiaEsperadoMaximo);

        // Prioridades prioridadesDesign = new Prioridades();
        // TODO(andre:2018-06-10): Gerar variacoes nos valores bases com base nos demais parametros
        // prioridadesDesign.coletaDados              = tipoSelecionado.prioridadeColetaDadosBase;
        // prioridadesDesign.estudoDominio            = tipoSelecionado.prioridadeEstudoDominioBase;
        // prioridadesDesign.documentacao             = tipoSelecionado.prioridadeDocumentacaoBase;
        // prioridadesDesign.legibilidade             = tipoSelecionado.prioridadeLegibilidadeBase;
        // prioridadesDesign.qualidadeSolucao         = tipoSelecionado.prioridadeQualidadeSolucaoBase;
        // prioridadesDesign.desenvolvimentoInterface = tipoSelecionado.prioridadeDesenvolvimentoInterfaceBase;
        // prioridadesDesign.testes                   = tipoSelecionado.prioridadeTestesBase;
        // prioridadesDesign.avaliacaoCliente         = tipoSelecionado.prioridadeAvaliacaoClienteBase;
        // prioridadesDesign.implantacao              = tipoSelecionado.prioridadeImplantacaoBase;

        Prioridades prioridadesDesign     = new Prioridades(tipoSelecionado.prioridadesDesignBase);
        Prioridades prioridadesTecnologia = new Prioridades(tipoSelecionado.prioridadesTecnologiaBase);

        Projeto projeto = new Projeto(tipoEmpresa, nomeEmpresa, descricao, pagamento, multa, tamanho, experienciaUsuario,
                                      pontosDesignEsperado, pontosTecnologiaEsperado, prioridadesDesign, prioridadesTecnologia,
                                      tipoSelecionado);

        return(projeto);
    }
コード例 #10
0
    public Prioridades(Prioridades prioridades)
    {
        this.coletaDados   = prioridades.coletaDados;
        this.estudoDominio = prioridades.estudoDominio;
        this.documentacao  = prioridades.documentacao;

        this.legibilidade             = prioridades.legibilidade;
        this.qualidadeSolucao         = prioridades.qualidadeSolucao;
        this.desenvolvimentoInterface = prioridades.desenvolvimentoInterface;

        this.testes           = prioridades.testes;
        this.avaliacaoCliente = prioridades.avaliacaoCliente;
        this.implantacao      = prioridades.implantacao;
    }
コード例 #11
0
    public void DesenvolverProjeto(ProjetoAtual projetoAtual, DadosPerfil perfil, EtapaMetodologia etapaMetodologia)
    {
        Projeto     projeto = projetoAtual.projeto;
        Prioridades prioridadesEscolhidasNormalizadas = projetoAtual.prioridadesEscolhidas.Normalizada();

        // TODO(andre:2018-06-30): Usar data interna do jogo pra calcular o progresso
        float tempoPassado = Time.deltaTime;

        progresso += tempoPassado;

        float pontosDesign     = etapaMetodologia.ObterMultiplicadorDesign(projeto, prioridadesEscolhidasNormalizadas);
        float pontosTecnologia = etapaMetodologia.ObterMultiplicadorTecnologia(projeto, prioridadesEscolhidasNormalizadas);
        // TODO(andre:2018-07-01): Definir como são gerados os pontos de erro
        float pontosErro = 0;
        // TODO(andre:2018-07-01): Definir como são gerados os pontos de pesquisa
        float pontosPesquisa = 0.15f;

        pontosDesign     *= tempoPassado * habilidadeDesign;
        pontosTecnologia *= tempoPassado * habilidadeTecnologia;
        pontosErro       *= tempoPassado * 10;
        pontosPesquisa   *= tempoPassado * habilidadePesquisa;

        // TODO(andre:2018-06-30): Utilizar aleatoriedade
        pontosDesignAcumulados     += pontosDesign;
        pontosTecnologiaAcumulados += pontosTecnologia;
        pontosErroAcumulados       += pontosErro;
        pontosPesquisaAcumulados   += pontosPesquisa;

        if (ultimaAtualizacao + etapaMetodologia.frequenciaAtualizacao < progresso)
        {
            ultimaAtualizacao = progresso;

            float pontosDesignGerados     = Random.Range(pontosDesignAcumulados * 0.5f, pontosDesignAcumulados);
            float pontosTecnologiaGerados = Random.Range(pontosTecnologiaAcumulados * 0.5f, pontosTecnologiaAcumulados);
            float pontosErroGerados       = Random.Range(pontosErroAcumulados * 0.5f, pontosErroAcumulados);
            float pontosPesquisaGerados   = Random.Range(pontosPesquisaAcumulados * 0.1f, pontosPesquisaAcumulados);

            Debug.Log("Pontos gerados: " + pontosDesignGerados + " | " + pontosTecnologiaGerados + " | " + pontosErroGerados + " | " + pontosPesquisaGerados);

            projeto.pontosDesign     += (int)pontosDesignGerados;
            projeto.pontosTecnologia += (int)pontosTecnologiaGerados;
            projeto.pontosErro       += (int)pontosErroGerados;
            perfil.pontosPesquisa    += (int)pontosPesquisaGerados;

            pontosDesignAcumulados     = 0;
            pontosTecnologiaAcumulados = 0;
            pontosErroAcumulados       = 0;
            pontosPesquisaAcumulados   = 0;
        }
    }
コード例 #12
0
ファイル: PrioridadesController.cs プロジェクト: nusilmar/GAT
        // GET: Prioridades/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Prioridades prioridades = db.Prioridades.Find(id);

            if (prioridades == null)
            {
                return(HttpNotFound());
            }
            return(View(prioridades));
        }
コード例 #13
0
        public List <Prioridades> GetPrioridades()
        {
            List <Prioridades> PrioridadesList = new List <Prioridades>();

            try
            {
                //"CrearComando" esta definido en la libreria AccesoDatos.dll
                SqlCommand     cmd = CrearComando("SGRC_SP_GetPrioridad"); //Pasamos el procedimiento almacenado.
                SqlDataAdapter da  = new SqlDataAdapter(cmd);
                DataTable      dt  = new DataTable();
                //"GetDS" esta definido en la libreria AccesoDatos.dll
                //ds = GetDS(cmd, "SGRC_SP_GetPrioridad"); //Se envia el nombre del procedimiento almacenado.
                AbrirConexion();
                da.Fill(dt);
                CerrarConexion();

                //Bind EmpModel generic list using LINQ
                PrioridadesList = (from DataRow dr in dt.Rows

                                   select new Prioridades()
                {
                    PrioridadId = Convert.ToInt32(dr["PrioridadId"]),
                    PrioridadNombre = Convert.ToString(dr["PrioridadNombre"]),
                    PrioridadCodigo = Convert.ToString(dr["PrioridadCodigo"]),
                    PrioridadNivel = Convert.ToInt32(dr["PrioridadNivel"]),
                    Identificador = Convert.ToString(dr["Identificador"]),
                    Accion = 1,
                    Mensaje = "Se cargaron correctamente los datos de las Prioridades"
                }).ToList();
                if (PrioridadesList.Count == 0)
                {
                    Prioridades ss = new Prioridades();
                    ss.Accion  = 0;
                    ss.Mensaje = "No se encontraron registros de las prioridades!";
                    PrioridadesList.Add(ss);
                }
            }
            catch (Exception ex)
            {
                Prioridades oPrioridad = new Prioridades();
                oPrioridad.Accion  = 0;
                oPrioridad.Mensaje = ex.Message.ToString();
                PrioridadesList.Add(oPrioridad);
                throw new Exception("Error Obteniendo todos los registros " + ex.Message, ex);
            }
            return(PrioridadesList);
        }
コード例 #14
0
        public Prioridades GetPrioridad(int Id)
        {
            Prioridades vResultado = new Prioridades(); //Se crea una variable que contendra los datos del almacen.
            SqlCommand  cmd        = new SqlCommand();

            try
            {
                cmd = CrearComando("SGRC_SP_GetPrioridad");     //Pasamos el nombre del procedimiento almacenado.
                cmd.Parameters.AddWithValue("@Id", Id);         //Agregamos los parametros.

                AbrirConexion();                                //Se abre la conexion a la BD.
                SqlDataReader consulta = Ejecuta_Consulta(cmd); //Enviamos el comando con los paramentros agregados.

                if (consulta.Read())
                {
                    if (consulta.HasRows)
                    {
                        //Obtenemos el valor de cada campo
                        vResultado.PrioridadId     = (int)consulta["PrioridadId"];
                        vResultado.PrioridadNombre = (string)consulta["PrioridadNombre"];
                        vResultado.PrioridadCodigo = (string)consulta["PrioridadCodigo"];
                        vResultado.PrioridadNivel  = (int)consulta["PrioridadNivel"];
                        vResultado.Identificador   = (string)consulta["Identificador"];
                        vResultado.Accion          = 1;
                        vResultado.Mensaje         = "Se cargó la Prioridad correctamente!";

                        //Si los campos admiten valores nulos convertir explicitamente
                        //ej: vResultado.Nombre = Convert.ToString(consulta["Nombre"]);
                    }
                }
            }
            catch (Exception Ex)
            {
                vResultado.Accion  = 0;
                vResultado.Mensaje = Ex.Message.ToString();
                throw new Exception("Error al cargar los datos de prioridad: " + Ex.Message, Ex);
            }
            finally
            {
                cmd.Dispose();
                CerrarConexion();
            }
            return(vResultado);
        }
コード例 #15
0
        public Prioridades Save(Prioridades pPrioridad)
        {
            SqlCommand cmd        = new SqlCommand();
            int        vResultado = -1;

            try
            {
                AbrirConexion();
                //connection();
                cmd = CrearComando("SGRC_SP_Prioridad_Save");
                cmd.Parameters.AddWithValue("@PrioridadId", pPrioridad.PrioridadId);
                cmd.Parameters["@PrioridadId"].Direction = ParameterDirection.InputOutput; //Se indica que el IdAlmacen sera un parametro de Entrada/Salida.

                cmd.Parameters.AddWithValue("@PrioridadNombre", pPrioridad.PrioridadNombre);
                cmd.Parameters.AddWithValue("@PrioridadNivel", pPrioridad.PrioridadNivel);
                cmd.Parameters.AddWithValue("@PrioridadCodigo", pPrioridad.PrioridadCodigo);
                cmd.Parameters.AddWithValue("@Identificador", pPrioridad.Identificador);

                //con.Open();
                vResultado = Ejecuta_Accion(ref cmd);
                vResultado = Convert.ToInt32(cmd.Parameters["@PrioridadId"].Value);
                //con.Close();
            }
            catch (Exception Ex)
            {
                pPrioridad.Mensaje = Ex.Message;
                throw new Exception("Ocurrio el un error al guardar la Prioridad: " + Ex.Message, Ex);
            }
            finally
            {
                cmd.Dispose();
                CerrarConexion();
            }
            pPrioridad.Accion = vResultado;
            if (vResultado == 0)
            {
                pPrioridad.Mensaje = "Se genero un error al insertar la información de la Prioridad!";
            }
            else
            {
                pPrioridad.Mensaje = "Se ingreso la Prioridad correctamente!";
            }
            return(pPrioridad);
        }
コード例 #16
0
        public JsonResult GetAll()
        {
            PrioridadRepository PrioRep = new PrioridadRepository();

            try
            {
                return(Json(PrioRep.GetPrioridades(), JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                //throw;
                List <Prioridades> list = new List <Prioridades>();
                Prioridades        obj  = new Prioridades();
                obj.Accion  = 0;
                obj.Mensaje = ex.Message.ToString();
                list.Add(obj);
                return(Json(list, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #17
0
 public JsonResult SaveData(Prioridades prioridad)
 {
     try
     {
         PrioridadRepository PrioRep = new PrioridadRepository();
         if (ModelState.IsValid)
         {
             PrioRep.Save(prioridad);
             //db.Prioridad.Add(prioridad);
             //db.SaveChanges();
         }
         return(Json(prioridad, JsonRequestBehavior.AllowGet));
     }
     catch (Exception)
     {
         //throw;
         return(Json(prioridad, JsonRequestBehavior.AllowGet));
     }
 }
コード例 #18
0
        public Prioridades CheckPrioridad(string nombre, string codigo)
        {
            Prioridades vResultado = new Prioridades(); //Se crea una variable que contendra los datos del trámite.
            SqlCommand  cmd        = new SqlCommand();

            try
            {
                cmd = CrearComando("SGRC_SP_Prioridad_Check");           //Pasamos el nombre del procedimiento almacenado.
                cmd.Parameters.AddWithValue("@PrioridadNombre", nombre); //Agregamos los parametros.
                cmd.Parameters.AddWithValue("@PrioridadCodigo", codigo); //Agregamos los parametros.

                AbrirConexion();                                         //Se abre la conexion a la BD.
                SqlDataReader consulta = Ejecuta_Consulta(cmd);          //Enviamos el comando con los paramentros agregados.

                if (consulta.Read())
                {
                    if (consulta.HasRows)
                    {
                        //Obtenemos el valor de cada campo
                        vResultado.cantidadRegistros = (int)consulta["cantidadRegistros"];
                        vResultado.Accion            = 1;
                        vResultado.Mensaje           = "Se cargó correctamente la Prioridad!";

                        //Si los campos admiten valores nulos convertir explicitamente
                        //ej: vResultado.Nombre = Convert.ToString(consulta["Nombre"]);
                    }
                }
            }
            catch (Exception Ex)
            {
                vResultado.Accion  = 0;
                vResultado.Mensaje = Ex.Message.ToString();
                throw new Exception("Hubo un inconveniente al cargar la información: " + Ex.Message, Ex);
            }
            finally
            {
                cmd.Dispose();
                CerrarConexion();
            }
            return(vResultado);
        }
コード例 #19
0
    public Prioridades Normalizada()
    {
        float somaEtapaPlanejamento    = this.coletaDados + this.estudoDominio + this.documentacao;
        float somaEtapaDesenvolvimento = this.legibilidade + this.qualidadeSolucao + this.desenvolvimentoInterface;
        float somaEtapaAvaliacao       = this.testes + this.avaliacaoCliente + this.implantacao;

        Prioridades prioridadesNormalizadas = new Prioridades();

        prioridadesNormalizadas.coletaDados   = this.coletaDados / somaEtapaPlanejamento;
        prioridadesNormalizadas.estudoDominio = this.estudoDominio / somaEtapaPlanejamento;
        prioridadesNormalizadas.documentacao  = this.documentacao / somaEtapaPlanejamento;

        prioridadesNormalizadas.legibilidade             = this.legibilidade / somaEtapaDesenvolvimento;
        prioridadesNormalizadas.qualidadeSolucao         = this.qualidadeSolucao / somaEtapaDesenvolvimento;
        prioridadesNormalizadas.desenvolvimentoInterface = this.desenvolvimentoInterface / somaEtapaDesenvolvimento;

        prioridadesNormalizadas.testes           = this.testes / somaEtapaAvaliacao;
        prioridadesNormalizadas.avaliacaoCliente = this.avaliacaoCliente / somaEtapaAvaliacao;
        prioridadesNormalizadas.implantacao      = this.implantacao / somaEtapaAvaliacao;

        return(prioridadesNormalizadas);
    }
コード例 #20
0
    public Projeto(string tipoEmpresa, string nomeEmpresa, string descricao, float valorPagamento, float multaAtraso, int tamanhoEmpresa, float experienciaUsuario,
                   int pontosDesignEsperado, int pontosTecnologiaEsperado, Prioridades prioridadesDesign, Prioridades prioridadesTecnologia,
                   DescricaoTipoEmpresa descricaoTipoEmpresa = null)
    {
        this.tipoEmpresa = tipoEmpresa;
        this.nomeEmpresa = nomeEmpresa;
        this.descricao   = descricao;

        this.valorPagamento     = valorPagamento;
        this.multaAtraso        = multaAtraso;
        this.tamanhoEmpresa     = tamanhoEmpresa;
        this.experienciaUsuario = experienciaUsuario;

        this.pontosTecnologiaEsperado = pontosTecnologiaEsperado;
        this.pontosDesignEsperado     = pontosDesignEsperado;

        this.prioridadesDesign     = prioridadesDesign;
        this.prioridadesTecnologia = prioridadesTecnologia;

        this.descricaoTipoEmpresa = descricaoTipoEmpresa;

        this.dicaProjeto = "";
    }
コード例 #21
0
        public JsonResult CheckOne(string nombre, string codigo)
        {
            Prioridades         obj          = new Prioridades();
            PrioridadRepository PrioridadRep = new PrioridadRepository();

            try
            {
                if (nombre != "" || codigo != "")
                {
                    obj = PrioridadRep.CheckPrioridad(nombre, nombre);
                }
                else
                {
                    obj.Accion  = 0;
                    obj.Mensaje = "El parámetro tiene un valor incorrecto!";
                }
            }
            catch (Exception ex)
            {
                obj.Accion  = 0;
                obj.Mensaje = ex.Message.ToString();
            }
            return(Json(obj, JsonRequestBehavior.AllowGet));
        }
コード例 #22
0
    string GerarDica()
    {
        string dica = "";

        Prioridades prioridadesSelecionadas = projetoAtual.prioridadesEscolhidas.Normalizada();
        Prioridades prioridadesEsperadas    = projetoAtual.projeto.descricaoTipoEmpresa.prioridadesTecnologiaBase.Normalizada();

        int   idPrioridade = 0;
        float maiorErro    = 0;

        float[] erros =
        {
            System.Math.Abs(prioridadesEsperadas.coletaDados - prioridadesSelecionadas.coletaDados),
            System.Math.Abs(prioridadesEsperadas.documentacao - prioridadesSelecionadas.documentacao),
            System.Math.Abs(prioridadesEsperadas.estudoDominio - prioridadesSelecionadas.estudoDominio),

            System.Math.Abs(prioridadesEsperadas.desenvolvimentoInterface - prioridadesSelecionadas.desenvolvimentoInterface),
            System.Math.Abs(prioridadesEsperadas.qualidadeSolucao - prioridadesSelecionadas.qualidadeSolucao),
            System.Math.Abs(prioridadesEsperadas.legibilidade - prioridadesSelecionadas.legibilidade),

            System.Math.Abs(prioridadesEsperadas.avaliacaoCliente - prioridadesSelecionadas.avaliacaoCliente),
            System.Math.Abs(prioridadesEsperadas.implantacao - prioridadesSelecionadas.implantacao),
            System.Math.Abs(prioridadesEsperadas.testes - prioridadesSelecionadas.testes)
        };
        for (int i = 0; i < 9; i++)
        {
            if (erros[i] > maiorErro)
            {
                maiorErro    = erros[i];
                idPrioridade = i;
            }
        }

        switch (idPrioridade)
        {
        case 0:
            dica = TextoDica("Coleta de Dados", prioridadesEsperadas.coletaDados);
            break;

        case 1:
            dica = TextoDica("Documentação", prioridadesEsperadas.documentacao);
            break;

        case 2:
            dica = TextoDica("Estudo do Domínio", prioridadesEsperadas.estudoDominio);
            break;

        case 3:
            dica = TextoDica("Desenvolvimento de Interface", prioridadesEsperadas.desenvolvimentoInterface);
            break;

        case 4:
            dica = TextoDica("Qualidade da Solução", prioridadesEsperadas.qualidadeSolucao);
            break;

        case 5:
            dica = TextoDica("Legibilidade do Código", prioridadesEsperadas.legibilidade);
            break;

        case 6:
            dica = TextoDica("Avaliação com o Cliente", prioridadesEsperadas.avaliacaoCliente);
            break;

        case 7:
            dica = TextoDica("Implantação", prioridadesEsperadas.implantacao);
            break;

        case 8:
            dica = TextoDica("Teste", prioridadesEsperadas.testes);
            break;
        }

        return(dica);
    }