コード例 #1
0
        public ActionResult Editar(TimeLineItemModel item)
        {
            var user = (UsuarioModel)Session["oUser"];

            using (MigxContext ctx = new MigxContext())
            {
                for (int i = 0; i < Request.Files.Count; i++)
                {
                    if (Request.Files[i].ContentLength > 0)
                    {
                        var file     = Request.Files[i];
                        var fileName = Path.GetFileName(file.FileName);
                        var extensao = Path.GetExtension(file.FileName);

                        FotoModel fotoInfo = new FotoModel();
                        fotoInfo.Id          = Guid.NewGuid();
                        fotoInfo.NomeArquivo = fileName;
                        fotoInfo.Extensao    = extensao;

                        var novoNome = Path.Combine(Server.MapPath("~/Content/Images/"), user.ID.ToString(), fotoInfo.Id + fotoInfo.Extensao); //Cria um novo nome baseado no Id e extensão.
                        file.SaveAs(novoNome);

                        fotoInfo.TimeLineID       = item.Id;
                        ctx.Entry(fotoInfo).State = System.Data.Entity.EntityState.Added;
                    }
                }

                item.UsuarioID        = user.ID;
                ctx.Entry(item).State = System.Data.Entity.EntityState.Modified;
                ctx.SaveChanges();
            }

            return(RedirectToAction("MeusDados", "Usuario"));
        }
コード例 #2
0
        public ActionResult Detalhes(int idTimeLine)
        {
            if (!ModelState.IsValid)
            {
                return(HttpNotFound());
            }

            TimeLineItemModel item = null;

            var user   = (UsuarioModel)Session["oUser"];
            var userId = user.ID;

            using (MigxContext ctx = new MigxContext())
            {
                var emp = ctx.Emprestimos.Where(em => em.UsuarioIDSolicitante == userId && em.ItemID == idTimeLine && em.Situacao != EmprestimoEstado.Finalizado).FirstOrDefault();

                if (emp != null)
                {
                    ViewData["JaSolicitado"] = true;
                }

                item = GetDetalhesItem(idTimeLine, ctx);
            }



            return(View(item));
        }
コード例 #3
0
        public JsonResult SolicitarEmprestimo(int idTimeLine, DateTime dtDevolucao)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false));
            }

            UsuarioModel user = (UsuarioModel)Session["oUser"];

            using (MigxContext ctx = new MigxContext())
            {
                var itemEmprestado = ctx.Itens.SingleOrDefault(it => it.Id == idTimeLine);

                EmprestimoModel emp = new EmprestimoModel()
                {
                    ItemID = idTimeLine,
                    UsuarioIDSolicitante    = user.ID,
                    UsuarioIDSolicitadoPara = itemEmprestado.UsuarioID,
                    DataSolicitacao         = DateTime.Now.Date,
                    DataDevolucaoPrevista   = dtDevolucao.Date,
                    Situacao = EmprestimoEstado.Solicitado
                };

                ctx.Emprestimos.Add(emp);
                ctx.SaveChanges();
            }

            return(Json(true));
        }
コード例 #4
0
        public async Task <ActionResult> Login(string email, string senha)
        {
            UsuarioModel user = null;

            using (ctx = new MigxContext())
            {
                user = ctx.Usuarios.Where(u => u.Email.Equals(email)).FirstOrDefault();
            }

            bool usuarioValido = false;

            if (user != null)
            {
                usuarioValido = Crypto.VerifyHashedPassword(user.Senha, senha);
            }
            else
            {
                return(View("index"));
            }

            if (usuarioValido)
            {
                Session["oUser"] = user;

                var userIdentity = await UserManager.FindAsync(email, senha);

                await SignInAsync(userIdentity, false);

                return(RedirectToAction("Index", "TimeLine"));
            }
            else
            {
                return(View("index"));
            }
        }
コード例 #5
0
        public ActionResult Excluir(int idTimeLine)
        {
            if (!ModelState.IsValid)
            {
                return(HttpNotFound());
            }

            using (MigxContext ctx = new MigxContext())
            {
                TimeLineItemModel item = GetDetalhesItem(idTimeLine, ctx);

                foreach (var foto in item.Fotos)
                {
                    var path = Path.Combine(Server.MapPath("~/Content/Images/"), item.UsuarioID.ToString(), foto.Id + foto.Extensao);

                    if (System.IO.File.Exists(path))
                    {
                        System.IO.File.Delete(path);
                    }
                }

                ctx.Fotos.RemoveRange(item.Fotos);
                ctx.Itens.Remove(item);
                ctx.SaveChanges();
            }

            return(RedirectToAction("MeusDados", "Usuario"));
        }
コード例 #6
0
        public ActionResult Editar(UsuarioModel user)
        {
            var userSession = (UsuarioModel)Session["oUser"];

            using (MigxContext ctx = new MigxContext())
            {
                var userAlterado = ctx.Usuarios.SingleOrDefault(us => us.ID == userSession.ID);
                userAlterado.Cidade       = user.Cidade;
                userAlterado.Complemento  = user.Complemento;
                userAlterado.DtNascimento = user.DtNascimento;
                userAlterado.Endereco     = user.Endereco;
                userAlterado.Estado       = user.Estado;
                userAlterado.Nome         = user.Nome;
                userAlterado.Telefone     = user.Telefone;

                ctx.SaveChanges();

                Session["oUser"] = userAlterado;
            }

            if (Request.Files != null && Request.Files.Count > 0)
            {
                if (Request.Files[0].ContentLength > 0)
                {
                    var file     = Request.Files[0];
                    var novoNome = Path.Combine(Server.MapPath("~/Content/Images/"), user.ID.ToString(), "profilePicture" + ".jpg");
                    file.SaveAs(novoNome);
                }
            }

            return(View(user));
        }
コード例 #7
0
        public static List <SolicitacaoAmizadeModel> ListarSolicitacoes(int userID)
        {
            List <SolicitacaoAmizadeModel> solicitacoes = null;

            using (MigxContext ctx = new MigxContext())
            {
                solicitacoes = ctx.SolicitoesAmizade.Include("UsuarioSolicitadoPor").Where(sa => sa.UsuarioSolicitadoParaID == userID).ToList();
            }

            return(solicitacoes);
        }
コード例 #8
0
        public static List <TimeLineItemModel> ListarItens(int[] userIDs)
        {
            List <TimeLineItemModel> itens = null;

            using (MigxContext ctx = new MigxContext())
            {
                itens = ctx.Itens.Include("Fotos").Include("Usuario").Where(tl => userIDs.Contains(tl.UsuarioID) && tl.Emprestado == false).ToList();
            }

            return(itens);
        }
コード例 #9
0
        public static List <TimeLineItemModel> ListarItens(int userID)
        {
            List <TimeLineItemModel> itens = null;

            using (MigxContext ctx = new MigxContext())
            {
                itens = ctx.Itens.Include("Fotos").Include("Usuario").Where(tl => tl.UsuarioID == userID).ToList();
            }

            return(itens);
        }
コード例 #10
0
        public static List <EmprestimoModel> ListarSolicitacoes(int idUser)
        {
            List <EmprestimoModel> emprestimos = null;

            using (MigxContext ctx = new MigxContext())
            {
                emprestimos = ctx.Emprestimos.Include("UsuarioSolicitante").Include("Item").Where(em => em.UsuarioIDSolicitadoPara == idUser && em.Situacao == EmprestimoEstado.Solicitado).ToList();
            }

            return(emprestimos);
        }
コード例 #11
0
        public static List <UsuarioModel> ListarPessoas(string param)
        {
            List <UsuarioModel> encontrados = new List <UsuarioModel>();

            using (MigxContext ctx = new MigxContext())
            {
                string busca = String.Format("%{0}%", param.Trim().Replace(' ', '%')); //altera a busca pra usar o wildcard '%' => qualquer qtd de caracteres

                encontrados = ctx.Usuarios.Where(u => SqlFunctions.PatIndex(busca, u.Nome) > 0).ToList();
            }

            return(encontrados);
        }
コード例 #12
0
        public ActionResult HomePage()
        {
            UsuarioModel user = (UsuarioModel)Session["oUser"];

            List <TimeLineItemModel> lista = null;

            using (MigxContext ctx = new MigxContext())
            {
                var amigos = ctx.Amigos.Where(am => am.IdUsuario == user.ID || am.IdAmigo == user.ID).Select(am => am.Id).ToArray();

                lista = ctx.Itens.Include("Fotos").Where(it => amigos.Contains(it.UsuarioID)).ToList();
            }

            return(View(lista));
        }
コード例 #13
0
        public static List <TimeLineItemModel> ListarItems(int userID, string param)
        {
            List <TimeLineItemModel> encontrados = new List <TimeLineItemModel>();

            int[] listaIdAmigos;

            using (MigxContext ctx = new MigxContext())
            {
                listaIdAmigos = ctx.Amigos.Where(u => u.IdUsuario == userID).Select(c => c.IdAmigo).ToArray();

                string busca = String.Format("%{0}%", param.Trim().Replace(' ', '%')); //altera a busca pra usar o wildcard '%' => qualquer qtd de caracteres

                encontrados = ctx.Itens.Include("Fotos").Include("Usuario").Where(it => listaIdAmigos.Contains(it.UsuarioID)).Where(it => SqlFunctions.PatIndex(busca, it.Descricao) > 0).Where(it => it.Emprestado == false).ToList();
            }

            return(encontrados);
        }
コード例 #14
0
        public JsonResult Devolver(int idTimeLine)
        {
            var user = (UsuarioModel)Session["oUser"];

            using (MigxContext ctx = new MigxContext())
            {
                TimeLineItemModel devolvido = ctx.Itens.SingleOrDefault(it => it.Id == idTimeLine);
                devolvido.Emprestado = false;

                EmprestimoModel empFinalizado = ctx.Emprestimos.SingleOrDefault(em => em.ItemID == idTimeLine && em.Situacao == EmprestimoEstado.Emprestado);
                empFinalizado.Situacao = EmprestimoEstado.Finalizado;

                ctx.SaveChanges();
            }

            return(Json(true));
        }
コード例 #15
0
        public async Task <ActionResult> Cadastrar(UsuarioModel user)
        {
            if (!ModelState.IsValid)
            {
                ModelState.Clear();
                return(View());
            }

            string plainPass = user.Senha;


            var userIdentity = new AppUserIdentity()
            {
                UserName = user.Email, Email = user.Email
            };
            var result = await UserManager.CreateAsync(userIdentity, plainPass);

            if (result.Succeeded)
            {
                await SignInAsync(userIdentity, isPersistent : false);

                //return RedirectToAction("Index", "Home");
            }

            using (ctx = new MigxContext())
            {
                var hashPass = Crypto.HashPassword(plainPass);
                user.Senha = hashPass;

                user = ctx.Usuarios.Add(user);

                ctx.SaveChanges();
            }
            Session["oUser"] = user;

            Directory.CreateDirectory(Path.Combine(Server.MapPath("~/Content/Images/"), user.ID.ToString())); //Cria o diretório caso ele não exista.
            if (Request.Files != null && Request.Files.Count > 0)
            {
                var file     = Request.Files[0];
                var novoNome = Path.Combine(Server.MapPath("~/Content/Images/"), user.ID.ToString(), "profilePicture" + ".jpg");
                file.SaveAs(novoNome);
            }

            return(RedirectToAction("Index", "TimeLine"));
        }
コード例 #16
0
        public static TimeLineItemModel GetDetalhesItem(int itemID, MigxContext ctx = null)
        {
            TimeLineItemModel item;

            if (ctx == null)
            {
                using (ctx = new MigxContext())
                {
                    item = ctx.Itens.Include("Fotos").Include("Usuario").Where(tl => tl.Id == itemID).First();
                }
            }
            else
            {
                item = ctx.Itens.Include("Fotos").Include("Usuario").Where(tl => tl.Id == itemID).First();
            }

            return(item);
        }
コード例 #17
0
        public JsonResult TemNotificacao()
        {
            UsuarioModel user = (UsuarioModel)Session["oUser"];

            bool notificacao = false;

            using (MigxContext ctx = new MigxContext())
            {
                notificacao = ctx.Emprestimos.Any(em => em.UsuarioIDSolicitadoPara == user.ID && em.Situacao == EmprestimoEstado.Solicitado);

                if (!notificacao)
                {
                    notificacao = ctx.SolicitoesAmizade.Any(sl => sl.UsuarioSolicitadoParaID == user.ID);
                }
            }

            return(Json(notificacao));
        }
コード例 #18
0
        public ActionResult AdicionarItem(TimeLineItemModel item)
        {
            if (!ModelState.IsValid)
            {
                return(View(item));
            }

            var user   = (UsuarioModel)Session["oUser"];
            var userId = user.ID;

            Directory.CreateDirectory(Path.Combine(Server.MapPath("~/Content/Images/"), userId.ToString())); //Cria o diretório caso ele não exista.

            item.UsuarioID = userId;
            item.Fotos     = new List <FotoModel>();
            for (int i = 0; i < Request.Files.Count; i++)
            {
                if (Request.Files[i].ContentLength > 0)
                {
                    var file     = Request.Files[i];
                    var fileName = Path.GetFileName(file.FileName);
                    var extensao = Path.GetExtension(file.FileName);

                    FotoModel fotoInfo = new FotoModel();
                    fotoInfo.Id          = Guid.NewGuid();
                    fotoInfo.NomeArquivo = fileName;
                    fotoInfo.Extensao    = extensao;

                    var novoNome = Path.Combine(Server.MapPath("~/Content/Images/"), userId.ToString(), fotoInfo.Id + fotoInfo.Extensao); //Cria um novo nome baseado no Id e extensão.
                    file.SaveAs(novoNome);

                    item.Fotos.Add(fotoInfo);
                }
            }

            using (MigxContext ctx = new MigxContext())
            {
                ctx.Itens.Add(item);
                ctx.SaveChanges();
            }

            return(RedirectToAction("MeusDados", "Usuario"));
        }
コード例 #19
0
        public JsonResult AceitarEmprestimo(int IdEmprestimo)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false));
            }

            UsuarioModel user = (UsuarioModel)Session["oUser"];

            using (MigxContext ctx = new MigxContext())
            {
                EmprestimoModel aceitar = ctx.Emprestimos.SingleOrDefault(em => em.ID == IdEmprestimo && em.UsuarioIDSolicitadoPara == user.ID);
                aceitar.Situacao        = EmprestimoEstado.Emprestado;
                aceitar.Item.Emprestado = true;

                ctx.SaveChanges();
            }

            return(Json(true));
        }
コード例 #20
0
        public JsonResult ExcluirFoto(Guid idFoto)
        {
            var user = (UsuarioModel)Session["oUser"];

            using (MigxContext ctx = new MigxContext())
            {
                FotoModel foto = ctx.Fotos.SingleOrDefault(ft => ft.Id == idFoto);

                var path = Path.Combine(Server.MapPath("~/Content/Images/"), user.ID.ToString(), foto.Id + foto.Extensao);

                if (System.IO.File.Exists(path))
                {
                    System.IO.File.Delete(path);
                }

                ctx.Fotos.Remove(foto);
                ctx.SaveChanges();
            }

            return(Json(true));
        }
コード例 #21
0
        public JsonResult SolicitarAmizade(int IdUsuario)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false));
            }

            UsuarioModel user = (UsuarioModel)Session["oUser"];

            using (MigxContext ctx = new MigxContext())
            {
                SolicitacaoAmizadeModel solicitacao = new SolicitacaoAmizadeModel()
                {
                    UsuarioSolicitadoPorID  = user.ID,
                    UsuarioSolicitadoParaID = IdUsuario,
                    DtSolicitacao           = DateTime.Now
                };

                ctx.SolicitoesAmizade.Add(solicitacao);
                ctx.SaveChanges();
            }

            return(Json(true));
        }
コード例 #22
0
        public JsonResult RecusarEmprestimo(int IdEmprestimo)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false));
            }

            UsuarioModel user = (UsuarioModel)Session["oUser"];

            using (MigxContext ctx = new MigxContext())
            {
                EmprestimoModel remover = new EmprestimoModel()
                {
                    ID = IdEmprestimo,
                    UsuarioIDSolicitadoPara = user.ID
                };

                ctx.Emprestimos.Add(remover);
                ctx.Entry <EmprestimoModel>(remover).State = System.Data.Entity.EntityState.Deleted;
                ctx.SaveChanges();
            }

            return(Json(true));
        }
コード例 #23
0
        public JsonResult RecusarAmizade(int IdSolicitacao)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false));
            }

            UsuarioModel user = (UsuarioModel)Session["oUser"];

            using (MigxContext ctx = new MigxContext())
            {
                SolicitacaoAmizadeModel remover = new SolicitacaoAmizadeModel()
                {
                    Id = IdSolicitacao,
                    UsuarioSolicitadoParaID = user.ID
                };

                ctx.SolicitoesAmizade.Add(remover);
                ctx.Entry <SolicitacaoAmizadeModel>(remover).State = System.Data.Entity.EntityState.Deleted;
                ctx.SaveChanges();
            }

            return(Json(true));
        }
コード例 #24
0
        public JsonResult AceitarAmizade(int IdSolicitacao)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false));
            }

            UsuarioModel user = (UsuarioModel)Session["oUser"];

            using (MigxContext ctx = new MigxContext())
            {
                SolicitacaoAmizadeModel solicitacao = ctx.SolicitoesAmizade.SingleOrDefault(sa => sa.Id == IdSolicitacao && sa.UsuarioSolicitadoParaID == user.ID);
                DateTime dataInicioAmizade          = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);

                AmigosModel souAmigo = new AmigosModel()
                {
                    IdUsuario       = user.ID,
                    IdAmigo         = solicitacao.UsuarioSolicitadoPorID,
                    DtInicioAmizade = dataInicioAmizade
                };

                AmigosModel meuAmigo = new AmigosModel()
                {
                    IdUsuario       = solicitacao.UsuarioSolicitadoPorID,
                    IdAmigo         = user.ID,
                    DtInicioAmizade = dataInicioAmizade
                };


                ctx.SolicitoesAmizade.Remove(solicitacao);
                ctx.Amigos.Add(souAmigo);
                ctx.Amigos.Add(meuAmigo);
                ctx.SaveChanges();
            }
            return(Json(true));
        }