public async Task <ActionResult> Create([Bind(Include = "id,PerfilId,DataPostagem,FotoPostagem,TextoPostagem")] Postagem postagem, HttpPostedFileBase imgPostagem) { // Verificando se a variavel de sessão UserId é está nula if (Session["UserId"] == null) { Session["UserId"] = User.Identity.GetUserId(); } postagem.UserId = Session["UserId"].ToString(); if (imgPostagem != null) // Caso venha uma foto na postagem { var imgUri = await servicoBlob.UploadImageAsync(imgPostagem); //Manda para blob postagem.FotoPostagem = imgUri; } var perfil = servicoPerfil.RetornaPerfilUsuario(postagem.UserId); postagem.PerfilId = perfil.id; postagem.DataPostagem = DateTime.Now; if (ModelState.IsValid) { servicoPostagem.CriaPostagem(postagem); return(RedirectToAction("Index", "Gerenciador")); } return(View(postagem)); }
// Action da pagina do usuario logado public ActionResult Index() { var UserSessionId = User.Identity.GetUserId(); if (Session["UserId"] == null) { Session["UserId"] = UserSessionId; } var perfilTmp = servicoPerfil.RetornaPerfilUsuario(UserSessionId); if (perfilTmp != null) { FabricaDashboard fabricaDash = new FabricaDashboard(); var dashBoard = fabricaDash.MontaPerfil(UserSessionId); if (dashBoard != null) { return(View(dashBoard)); } } return(RedirectToAction("CheckIn", "Perfis")); }
// Action que busca um perfil para o usuario ou cria um novo perfil public ActionResult CheckIn() { var userId = User.Identity.GetUserId(); // Obtém o id do user logado var PerfilUser = servico.RetornaPerfilUsuario(userId); // Busca um perfil existente para o user logado if (PerfilUser != null) // Manda para o perfil existente caso seja true { return(RedirectToAction("Index", "Gerenciador")); } CriaPerfilPadrao.Criar(userId); // Cria um perfil padrão caso a condição acima seja false return(RedirectToAction("Index", "Gerenciador")); }
// Action que busca um perfil para o usuario ou cria um novo perfil public ActionResult CheckIn() { var userId = User.Identity.GetUserId(); var PerfilUser = servico.RetornaPerfilUsuario(userId); if (PerfilUser != null) // Caso Perfil não seja nulo, encaminha para páina com o perfil carregado { return(RedirectToAction("Index", "Gerenciador")); } CriaPerfilPadrao.Criar(userId); // Cria um perfil padrão caso a condição acima seja false return(RedirectToAction("Index", "Gerenciador")); }
// Metodo que monta o DashBoardModel com os dados necessários para a View perfil public DashboardModel MontaPerfil(string UserId) { var perfil = servicoPerfil.RetornaPerfilUsuario(UserId);// localiza o perfil do usuário logado // Recupera todos os itens seguidos usando o id do usuário var Seguidos = servicoSeguir.ObterSeguidos(UserId); // Recupera todos os seguidores do perfil var Seguidores = servicoSeguir.ObterSeguidores(perfil.id); // Recupera todas as postagens deste usuário var PostagensUsuario = servicoPostagem.RetornaPostagemUsuario(UserId, 5); // Recupera 10 postagens do banco var PostagensBanco = servicoPostagem.RetornaPostagens(10); // Recupera todas as barbas do banco var listaBarbas = servicoBarba.RetornaBarbas(); // Adiciona à lista cada perfil seguido encontrado com base no id List<Perfil> perfisSeguidos = new List<Perfil>(); List<Postagem> postagensSeguidos = new List<Postagem>(); foreach (var seguido in Seguidos.Where(x => x.PerfilID != 0)) { var perfilSeguido = servicoPerfil.RetornaPerfilUnico(seguido.PerfilID); perfisSeguidos.Add(perfilSeguido); // Recuperando as postagens de cada perfil seguido foreach (var postagemSeguido in PostagensBanco.Where(x => x.PerfilId == perfilSeguido.id)) { postagensSeguidos.Add(postagemSeguido); } } // Adiciona à lista cada perfil seguidor List<Perfil> perfisSeguidores = new List<Perfil>(); foreach (var seguidor in Seguidores) { var perfilSeguidor = servicoPerfil.RetornaPerfilUsuario(seguidor.SeguidorId); perfisSeguidores.Add(perfilSeguidor); } // Convertendo Postagem em PostagemViewModel var PostagensSeguidosView = PostagemViewModel.GetModel(postagensSeguidos); // Ordenando por data var PostagensSeguidosOrdenadas = PostagensSeguidosView.OrderByDescending(x => x.DataPostagem).ToList(); // Montando o DashBoard para enviar à View DashboardModel dashBoard = new DashboardModel(); dashBoard.postagens = PostagemViewModel.GetModel(PostagensUsuario); dashBoard.postagensSeguidos = PostagensSeguidosOrdenadas; dashBoard.TotPostagens = servicoPostagem.TotalPostagens(); dashBoard.PerfisSeguidos = perfisSeguidos; dashBoard.PerfisSeguidores = perfisSeguidores; dashBoard.Barbas = BarbaViewModel.GetModel(listaBarbas); dashBoard.nomePerfil = perfil.NomeExibicao; dashBoard.fotoPerfil = perfil.FotoPerfil; dashBoard.idPerfil = perfil.id; dashBoard.UserId = perfil.UserID; return dashBoard; }