コード例 #1
0
        public ActionResult Login(TAB_Usuario login, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                using (PortalEntities2 db = new PortalEntities2())
                {
                    var vLogin = db.TAB_Usuario.Where(p => p.Nome.Equals(login.Nome)).FirstOrDefault();

                    /*Verificar se a variavel vLogin está vazia.
                     * Isso pode ocorrer caso o usuário não existe.
                     * Caso não exista ele vai cair na condição else.*/
                    if (vLogin != null)
                    {
                        /*Código abaixo verifica se a senha digitada no site é igual a
                         * senha que está sendo retornada
                         * do banco. Caso não cai direto no else*/
                        if (Equals(vLogin.Senha, login.Senha))
                        {
                            FormsAuthentication.SetAuthCookie(vLogin.Nome, false);
                            if (Url.IsLocalUrl(returnUrl) &&
                                returnUrl.Length > 1 &&
                                returnUrl.StartsWith("/") &&
                                !returnUrl.StartsWith("//") &&
                                returnUrl.StartsWith("/\\"))
                            {
                                return(Redirect(returnUrl));
                            }
                            /*código abaixo cria uma session para armazenar o nome do usuário*/
                            Session["Nome"] = vLogin.Nome;
                            Session["Id"]   = vLogin.Id;
                            /*retorna para a tela inicial do Home*/
                            var questionario = db.Tab_Questionario.Where(x => x.UsuarioId == vLogin.Id).Count();
                            if (questionario > 0)
                            {
                                return(RedirectToAction("Index", "Home"));
                            }
                            else
                            {
                                return(RedirectToAction("Index", "Questionario"));
                            }
                        }
                        /*Else responsável da validação da senha*/
                        else
                        {
                            /*Escreve na tela a mensagem de erro informada*/
                            ModelState.AddModelError("", "Senha informada Inválida.");
                            /*Retorna a tela de login*/
                            return(View(new TAB_Usuario()));
                        }
                    }
                    /*Else responsável por verificar se o usuário existe*/
                    else
                    {
                        /*Escreve na tela a mensagem de erro informada*/
                        ModelState.AddModelError("", "Nome informado inválido.");
                        /*Retorna a tela de login*/
                        return(View(new TAB_Usuario()));
                    }
                }
            }

            /*Caso os campos não esteja de acordo com a solicitação retorna a tela de login
             * com as mensagem dos campos*/
            return(View(login));
        }
コード例 #2
0
        public ActionResult resposta(int correto, char Alfabeto0, char Alfabeto1, char Alfabeto2, string resposta, int pergunta)
        {
            //instancia o model
            Questionario q = new Questionario();

            q.UrlImgNormal = new List <string>();
            q.Alfabeto     = new List <char>();
            q.Alfabeto.Add(Alfabeto0);
            q.Alfabeto.Add(Alfabeto1);
            q.Alfabeto.Add(Alfabeto2);
            q.correto  = correto;
            q.pergunta = pergunta;
            //monta o caminho das imagens indicando a certa ou errada
            foreach (char c in q.Alfabeto)
            {
                if (c.ToString().Equals(q.Alfabeto[q.correto].ToString()))
                {
                    q.UrlImgNormal.Add("~/IMG/Acerto/" + c.ToString().ToLower() + ".png");
                }
                else
                {
                    q.UrlImgNormal.Add("~/IMG/Errada/" + c.ToString().ToLower() + ".png");
                }
            }

            //salva os acertos no banco
            using (PortalEntities2 db = new PortalEntities2())
            {
                if (pergunta == 1)
                {
                    Tab_Questionario questionario = new Tab_Questionario();

                    questionario.UsuarioId = (int)Session["Id"];
                    if (q.Alfabeto[correto].ToString().Equals(resposta))
                    {
                        questionario.Acertos = 1;
                    }
                    else
                    {
                        questionario.Acertos = 0;
                    }

                    db.Tab_Questionario.Add(questionario);
                    db.SaveChanges();

                    Tab_QuestionarioLetras letras = new Tab_QuestionarioLetras();
                    letras.Correta      = q.Alfabeto[correto].ToString();
                    letras.Resposta     = resposta;
                    letras.Questionario = questionario.Id;
                    db.Tab_QuestionarioLetras.Add(letras);
                    db.SaveChanges();
                }
                else
                {
                    Tab_Questionario questionario = db.Tab_Questionario.OrderByDescending(x => x.Id).FirstOrDefault();
                    if (q.Alfabeto[correto].ToString().Equals(resposta))
                    {
                        questionario.Acertos++;
                        db.SaveChanges();
                    }

                    Tab_QuestionarioLetras letras = new Tab_QuestionarioLetras();
                    letras.Correta      = q.Alfabeto[correto].ToString();
                    letras.Resposta     = resposta;
                    letras.Questionario = questionario.Id;
                    db.Tab_QuestionarioLetras.Add(letras);
                    db.SaveChanges();
                }
            }

            return(View(q));
        }