public async Task <ActionResult> Acessar(AcessarModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var connectandoMongoDb = new AcessoMongoDB();
            var construtor         = Builders <Usuario> .Filter;
            var condicao           = construtor.Eq(x => x.Email, model.Email);
            var user = await connectandoMongoDb.Usuarios.Find(condicao).SingleOrDefaultAsync();

            if (user == null)
            {
                ModelState.AddModelError("Email", "Correio não foi registrado.");
                return(View(model));
            }

            var identity = new ClaimsIdentity(new[]
            {
                new Claim(ClaimTypes.Name, user.Nome),
                new Claim(ClaimTypes.Email, user.Email)
            },
                                              "ApplicationCookie");

            var context     = Request.GetOwinContext();
            var authManager = context.Authentication;

            authManager.SignIn(identity);

            return(Redirect(GetRedirectUrl(model.RetornoUrl)));
        }
Esempio n. 2
0
        public async Task <ActionResult> Index()
        {
            var connectandoMongoDB  = new AcessoMongoDB();
            var Filtro              = new BsonDocument();
            var PublicacoesRecentes = await connectandoMongoDB.Publicacoes.Find(Filtro).SortByDescending(x => x.DataCriacao).Limit(10).ToListAsync();

            var model = new IndexModel
            {
                PublicacoesRecentes = PublicacoesRecentes
            };

            return(View(model));
        }
        public async Task <ActionResult> Registrar(RegistrarModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = new Usuario
            {
                Nome  = model.Nome,
                Email = model.Email
            };

            var connectandoMongoDB = new AcessoMongoDB();
            await connectandoMongoDB.Usuarios.InsertOneAsync(user);

            return(RedirectToAction("Index", "Home"));
        }
Esempio n. 4
0
        public async Task <ActionResult> Publicacoes(string tag = null)
        {
            var connectandMongoDB = new AcessoMongoDB();

            var posts = new List <Publicacao>();

            if (tag == null)
            {
                var Filtro = new BsonDocument();
                posts = await connectandMongoDB.Publicacoes.Find(Filtro).SortByDescending(x => x.DataCriacao).Limit(10).ToListAsync();
            }
            else
            {
                var construtor = Builders <Publicacao> .Filter;
                var condicao   = construtor.AnyEq(x => x.Tags, tag);
                posts = await connectandMongoDB.Publicacoes.Find(condicao).SortByDescending(x => x.DataCriacao).Limit(10).ToListAsync();
            }

            return(View(posts));
        }
Esempio n. 5
0
        public async Task <ActionResult> Publicacao(string id)
        {
            var connectarMongoDB = new AcessoMongoDB();
            var publicacao       = await connectarMongoDB.Publicacoes.Find(x => x.Id == id).SingleOrDefaultAsync();

            if (publicacao == null)
            {
                return(RedirectToAction("Index"));
            }

            var model = new PublicacaoModel
            {
                Publicacao     = publicacao,
                NovoComentario = new NovoComentarioModel
                {
                    PublicacaoId = id
                }
            };

            return(View(model));
        }
Esempio n. 6
0
        public async Task <ActionResult> NovaPublicacao(NovaPublicacaoModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var post = new Publicacao
            {
                Autor       = User.Identity.Name,
                Titulo      = model.Titulo,
                Conteudo    = model.Conteudo,
                Tags        = model.Tags.Split(' ', ',', ';'),
                DataCriacao = DateTime.UtcNow,
                Comentarios = new List <Comentario>()
            };

            var connectandoMongoDB = new AcessoMongoDB();
            await connectandoMongoDB.Publicacoes.InsertOneAsync(post);

            return(RedirectToAction("Publicacao", new { id = post.Id }));
        }
Esempio n. 7
0
        public async Task <ActionResult> NovoComentario(NovoComentarioModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Publicacao", new { id = model.PublicacaoId }));
            }

            var comment = new Comentario
            {
                Autor       = User.Identity.Name,
                Conteudo    = model.Conteudo,
                DataCriacao = DateTime.UtcNow
            };

            var connectandoMongoDB = new AcessoMongoDB();

            var construtor          = Builders <Publicacao> .Filter;
            var condicao            = construtor.Eq(x => x.Id, model.PublicacaoId);
            var construtorAlteracao = Builders <Publicacao> .Update;
            var condicaoAlteracao   = construtorAlteracao.Push(x => x.Comentarios, comment);
            await connectandoMongoDB.Publicacoes.UpdateOneAsync(condicao, condicaoAlteracao);

            return(RedirectToAction("Publicacao", new { id = model.PublicacaoId }));
        }
Esempio n. 8
0
 public HomeController()
 {
     _mongo = new AcessoMongoDB();
 }
Esempio n. 9
0
 public AccountController()
 {
     _mongo = new AcessoMongoDB();
 }