コード例 #1
0
        public JsonResult Filter(string Nick, bool Online, bool Avatar, bool Popular)
        {
            EGalleryEntities     db         = new EGalleryEntities();
            List <UserViewModel> UsersModel = new List <UserViewModel>();
            IQueryable <Users>   users      = db.Users.Where(u => u.Verification == null);

            if (Nick != null || Nick != "")
            {
                users = db.Users.Where(u => u.Nick.Contains(Nick));
            }
            if (Online)
            {
                users = db.Users.Where(u => u.State == "online");
            }
            if (Avatar)
            {
                users = db.Users.Where(u => u.Avatar != "http://www.teniteatr.ru/assets/no_avatar-e557002f44d175333089815809cf49ce.png");
            }
            if (Popular)
            {
                users = users.OrderByDescending(u => u.Images.Sum(im => im.LikesToImages.Count) / u.Images.Count);
            }
            foreach (var user in users)
            {
                UsersModel.Add(new UserViewModel()
                {
                    Url               = user.UserURL,
                    Avatar            = user.Avatar,
                    Nick              = user.Nick,
                    Status            = user.State,
                    CountUploadImages = user.Images.Count()
                });
            }
            return(Json(UsersModel, JsonRequestBehavior.AllowGet));
        }
コード例 #2
0
        public JsonResult DeleteImage(string UrlImage)
        {
            EGalleryEntities db = new EGalleryEntities();
            var Image           = db.Images.FirstOrDefault(img => img.Name == UrlImage);

            if (User.IsInRole("Moderator") && User.Identity.Name != Image.Users.UserURL)
            {
                var Picture = new PicturesWaiting()
                {
                    Expansion  = Image.Expansion,
                    DateUpload = Image.DateUpload,
                    UserId     = Image.UserId,
                    Status     = (int)Status.BLOCK
                };
                db.PicturesWaiting.Add(Picture);
                db.SaveChanges();
                MoveFile(Image.Name + "." + Image.Expansion, Picture.Name + "." + Picture.Expansion, "gallery", "block");
                AnswerUser("Delete", Picture.Id, Picture.UserId);
            }
            else
            {
                System.IO.File.Delete(GetPathToImg(Image.Name + "." + Image.Expansion, "gallery"));
            }
            db.Images.Remove(Image);
            db.SaveChanges();
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
コード例 #3
0
        public JsonResult AddImageAjax(string expansion, string fileData)
        {
            EGalleryEntities db   = new EGalleryEntities();
            Users            user = db.Users.FirstOrDefault(u => u.UserURL == User.Identity.Name);
            var permission        = user.Permission > 0;

            if (permission)
            {
                if (User.IsInRole("Moderator"))
                {
                    Images image = new Images
                    {
                        Expansion = expansion.ToLower(),
                        UserId    = user.Id
                    };
                    db.Images.Add(image);
                    db.SaveChanges();
                    ImageSave.Save(fileData, GetPathToImg(image.Name + "." + image.Expansion, "gallery"));
                }
                else
                {
                    PicturesWaiting image = new PicturesWaiting
                    {
                        Expansion = expansion.ToLower(),
                        UserId    = user.Id,
                        Status    = (int)Status.WAITING
                    };
                    db.PicturesWaiting.Add(image);
                    db.SaveChanges();
                    ImageSave.Save(fileData, GetPathToImg(image.Name + "." + image.Expansion, "expectation"));
                }
            }
            return(Json(permission, JsonRequestBehavior.AllowGet));
        }
コード例 #4
0
        public JsonResult GetCountQuery()
        {
            EGalleryEntities db = new EGalleryEntities();

            return(Json(db.PicturesWaiting.Where(im => im.Status == (int)Status.WAITING).Count(),
                        JsonRequestBehavior.AllowGet));
        }
コード例 #5
0
 public ActionResult Registration(AccountModel account)
 {
     if (ModelState.IsValid)
     {
         Users user = null;
         using (EGalleryEntities db = new EGalleryEntities())
         {
             user = db.Users.FirstOrDefault(u => u.Email == account.Email);
             if (user == null)
             {
                 user = new Users()
                 {
                     Email = account.Email, Password = account.Password, Nick = account.Username
                 };
                 db.Users.Add(user);
                 db.SaveChanges();
                 Session["UserUrl"] = user.UserURL;
                 ModelState.Clear();
                 SendEmail.SendVerificationCode(user.Email, user.Nick, user.Id);
                 return(View("Verification"));
             }
             else
             {
                 ModelState.AddModelError("Email", Resources.Resource.EmailExist);
             }
         }
     }
     return(View());
 }
コード例 #6
0
        public JsonResult GetCountAnswer()
        {
            var UserId          = Int32.Parse(User.Identity.Name);
            EGalleryEntities db = new EGalleryEntities();

            return(Json(db.Answers.Where(an => an.UserId == UserId).Count(), JsonRequestBehavior.AllowGet));
        }
コード例 #7
0
 public ActionResult Login(LoginModel model)
 {
     using (EGalleryEntities db = new EGalleryEntities())
     {
         Users user = db.Users.FirstOrDefault(u => u.Email == model.Email && u.Password == model.Password);
         if (user != null)
         {
             user.State = "online";
             db.SaveChanges();
             Response.Cookies.Add(EditLanguageUserPage.EditLanguage(user.CodeLanguage, Request.Cookies["lang"]));
             if (user.Verification.Count == 0)
             {
                 FormsAuthentication.SetAuthCookie(user.UserURL, false);
                 return(RedirectToAction("Home", "Gallery", new RouteValueDictionary(
                                             new { controller = "Gallery", action = "Home", id = user.UserURL })));
             }
             else
             {
                 Session["UserUrl"] = user.UserURL;
                 return(View("Verification"));
             }
         }
         else
         {
             ModelState.Clear();
             ModelState.AddModelError("", Resources.Resource.NoSuchUser);
         }
     }
     return(View());
 }
コード例 #8
0
        public ActionResult Verification(string VerificationCode)
        {
            EGalleryEntities db       = new EGalleryEntities();
            int          id           = Int32.Parse(Session["UserUrl"].ToString());
            Verification verification = db.Verification.FirstOrDefault(v => v.UserId == id);

            if (verification.VerificationCode == VerificationCode)
            {
                db.Verification.Remove(verification);
                db.SaveChanges();
                FormsAuthentication.SetAuthCookie(Session["UserUrl"].ToString(), false);
                Session.Remove("UserUrl");
                return(View("Greeting"));
            }
            else
            {
                if ((--verification.NumberAttempts) == 0)
                {
                    Users User = db.Users.FirstOrDefault(u => u.Id == id);
                    db.Users.Remove(User);
                    db.SaveChanges();
                    return(View("Login"));
                }
                db.SaveChanges();
                ModelState.AddModelError("VerificationCode", Resources.Resource.VerificationCode);
                return(View());
            }
        }
コード例 #9
0
        public ActionResult Home(string id)
        {
            UserId = id;
            EGalleryEntities db = new EGalleryEntities();
            var User            = db.Users.FirstOrDefault(u => u.UserURL == id && u.Verification.Count == 0);

            return(User != null?View(User) : View("Users"));
        }
コード例 #10
0
        public JsonResult SetStatusUser(string Status)
        {
            EGalleryEntities db = new EGalleryEntities();
            var user            = db.Users.FirstOrDefault(u => u.UserURL == User.Identity.Name);

            user.Status = Status;
            db.SaveChanges();
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
コード例 #11
0
ファイル: EditController.cs プロジェクト: stasKama/e-gallery
        public JsonResult EditNick(string Nick)
        {
            EGalleryEntities db = new EGalleryEntities();
            var user            = db.Users.FirstOrDefault(u => u.UserURL == User.Identity.Name);

            user.Nick = Nick;
            db.SaveChanges();
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
コード例 #12
0
        private PicturesWaiting GetPicture(string UrlImage, Status status, string Message)
        {
            EGalleryEntities db = new EGalleryEntities();
            var Picture         = db.PicturesWaiting.FirstOrDefault(im => im.Name == UrlImage);

            Picture.Status = (int)status;
            db.SaveChanges();
            AnswerUser(Message, Picture.Id, Picture.UserId);
            return(Picture);
        }
コード例 #13
0
ファイル: EditController.cs プロジェクト: stasKama/e-gallery
        public ActionResult EditLanguage(string CodeLanguage)
        {
            EGalleryEntities db = new EGalleryEntities();
            var user            = db.Users.FirstOrDefault(u => u.UserURL == User.Identity.Name);

            user.CodeLanguage = CodeLanguage;
            db.SaveChanges();
            Response.Cookies.Add(EditLanguageUserPage.EditLanguage(user.CodeLanguage, Request.Cookies["lang"]));
            return(View("Edit"));
        }
コード例 #14
0
        public ActionResult Logout()
        {
            EGalleryEntities db = new EGalleryEntities();
            var user            = db.Users.FirstOrDefault(u => u.UserURL == User.Identity.Name);

            user.State = "offline";
            db.SaveChanges();
            FormsAuthentication.SignOut();
            return(View("Login"));
        }
コード例 #15
0
        public JsonResult ReadAnswer(string NameImage, string Directory)
        {
            EGalleryEntities db = new EGalleryEntities();
            var Image           = db.PicturesWaiting.FirstOrDefault(p => p.Name == NameImage);
            var Answer          = db.Answers.FirstOrDefault(a => a.PictureId == Image.Id);

            db.Answers.Remove(Answer);
            db.SaveChanges();
            System.IO.File.Delete(GetPathToImg(Image.Name + "." + Image.Expansion, Directory));
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
コード例 #16
0
        public JsonResult Block(string UrlImage)
        {
            EGalleryEntities db = new EGalleryEntities();
            var Picture         = GetPicture(UrlImage, Status.BLOCK, "Block");

            MoveFile(Picture.Name + "." + Picture.Expansion, Picture.Name + "." + Picture.Expansion, "expectation", "block");
            var user = db.Users.Find(Picture.UserId);

            user.Permission--;
            db.SaveChanges();
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
コード例 #17
0
ファイル: EditController.cs プロジェクト: stasKama/e-gallery
        public JsonResult EditAvatar(string fileData, string expansion)
        {
            EGalleryEntities db = new EGalleryEntities();
            var user            = db.Users.FirstOrDefault(u => u.UserURL == User.Identity.Name);

            if (user.Avatar != "http://www.teniteatr.ru/assets/no_avatar-e557002f44d175333089815809cf49ce.png")
            {
                System.IO.File.Delete(GetPathToImg(user.Avatar, "avatar"));
            }
            ImageSave.Save(fileData, GetPathToImg(user.UserURL + "." + expansion, "avatar"));
            user.Avatar = Url.Content("~/Images/avatar/" + user.UserURL + "." + expansion);
            db.SaveChanges();
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
コード例 #18
0
        private void AnswerUser(string Message, int ImageId, int UserId)
        {
            EGalleryEntities db     = new EGalleryEntities();
            Users            user   = db.Users.Find(UserId);
            Answers          answer = new Answers()
            {
                UserId    = user.Id,
                PictureId = ImageId,
                Text      = user.Nick + ", your image: " + Message + "."
            };

            db.Answers.Add(answer);
            db.SaveChanges();
        }
コード例 #19
0
        public JsonResult GetQueryImages()
        {
            List <string> imagesUrl = new List <string>();

            using (EGalleryEntities db = new EGalleryEntities())
            {
                foreach (var img in db.PicturesWaiting.Where(im => im.Status == (int)Status.WAITING))
                {
                    imagesUrl.Add(Url.Content("~/Images/expectation/" + img.Name + "." + img.Expansion));
                }
            }
            imagesUrl.Reverse();
            return(Json(imagesUrl, JsonRequestBehavior.AllowGet));
        }
コード例 #20
0
        public JsonResult GetHistory()
        {
            EGalleryEntities db = new EGalleryEntities();
            var image           = db.Images.ToList();

            image.Reverse();
            List <string> imagesUrl = new List <string>();

            foreach (var img in image.Skip(CountSkip).Take(12))
            {
                imagesUrl.Add(Url.Content("~/Images/gallery/" + img.Name + "." + img.Expansion));
            }
            CountSkip += 12;
            return(Json(imagesUrl, JsonRequestBehavior.AllowGet));
        }
コード例 #21
0
        public JsonResult GetImages()
        {
            var           id        = Int32.Parse(UserId);
            List <string> imagesUrl = new List <string>();

            using (EGalleryEntities db = new EGalleryEntities())
            {
                foreach (var img in db.Images.Where(im => im.UserId == id))
                {
                    imagesUrl.Add(Url.Content("~/Images/gallery/" + img.Name + "." + img.Expansion));
                }
            }
            imagesUrl.Reverse();
            return(Json(imagesUrl, JsonRequestBehavior.AllowGet));
        }
コード例 #22
0
        public JsonResult SetComment(string UrlImage, string Comment)
        {
            EGalleryEntities db = new EGalleryEntities();
            var Image           = db.Images.FirstOrDefault(img => img.Name == UrlImage);
            var UserId          = Int32.Parse(User.Identity.Name);
            var CommentImage    = new CommentsToImages()
            {
                Comment = Comment,
                UserId  = UserId,
                ImageId = Image.Id
            };

            db.CommentsToImages.Add(CommentImage);
            db.SaveChanges();
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
コード例 #23
0
        public JsonResult GetUsers()
        {
            EGalleryEntities     db         = new EGalleryEntities();
            List <UserViewModel> UsersModel = new List <UserViewModel>();

            foreach (var user in db.Users.Where(u => u.Verification.Count == 0))
            {
                UsersModel.Add(new UserViewModel()
                {
                    Url               = user.UserURL,
                    Avatar            = user.Avatar,
                    Nick              = user.Nick,
                    Status            = user.State,
                    CountUploadImages = user.Images.Count()
                });
            }
            return(Json(UsersModel, JsonRequestBehavior.AllowGet));
        }
コード例 #24
0
ファイル: EditController.cs プロジェクト: stasKama/e-gallery
 public ActionResult EditPassword(UpdatePassword model)
 {
     if (ModelState.IsValid)
     {
         EGalleryEntities db = new EGalleryEntities();
         var user            = db.Users.FirstOrDefault(u => u.UserURL == User.Identity.Name);
         if (user.Password == model.OldPassword)
         {
             user.Password = model.NewPassword;
             db.SaveChanges();
             ViewBag.Message = "Edit Password";
         }
         else
         {
             ModelState.AddModelError("OldPassword", "You have entered the wrong password");
         }
     }
     return(PartialView());
 }
コード例 #25
0
        public JsonResult Accect(string UrlImage)
        {
            EGalleryEntities db = new EGalleryEntities();
            var Picture         = GetPicture(UrlImage, Status.VIEW, "Accect");
            var Image           = new Images()
            {
                Expansion  = Picture.Expansion,
                DateUpload = Picture.DateUpload,
                UserId     = Picture.UserId
            };

            db.Images.Add(Image);
            db.SaveChanges();
            var url = Picture.Name + "." + Picture.Expansion;

            System.IO.File.Copy(GetPathToImg(url, "expectation"), GetPathToImg(url, "view"));
            MoveFile(url, Image.Name + "." + Image.Expansion, "expectation", "gallery");
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
コード例 #26
0
        public JsonResult GetInformationImage(string UrlImage)
        {
            EGalleryEntities db = new EGalleryEntities();
            var Image           = db.Images.FirstOrDefault(img => img.Name == UrlImage);
            var Author          = db.Users.Find(Image.UserId);

            Image.CountView++;
            db.SaveChanges();
            var informationImage = new ImageInformation()
            {
                CountLike  = db.LikesToImages.Where(li => li.ImageId == Image.Id).Count(),
                CountView  = Image.CountView,
                UploadData = Convert.ToString(Image.DateUpload),
                AuthorName = Author.Nick,
                UrlUser    = Author.UserURL,
                Avatar     = Author.Avatar
            };

            return(Json(informationImage, JsonRequestBehavior.AllowGet));
        }
コード例 #27
0
        public JsonResult GetAnswers()
        {
            List <AnswersModel> answers = new List <AnswersModel>();
            EGalleryEntities    db      = new EGalleryEntities();
            var UserId = Int32.Parse(User.Identity.Name);

            foreach (var answer in db.Answers.Where(ans => ans.UserId == UserId))
            {
                var directory = answer.PicturesWaiting.Status == (int)Status.VIEW ? "view" : "block";
                var url       = Url.Content("~/Images/" + directory + "/" + answer.PicturesWaiting.Name + "." + answer.PicturesWaiting.Expansion);
                answers.Add(new AnswersModel()
                {
                    DateAnswer = Convert.ToString(answer.Date),
                    Text       = answer.Text,
                    UrlImage   = url
                });
            }
            answers.Reverse();
            return(Json(answers, JsonRequestBehavior.AllowGet));
        }
コード例 #28
0
        public JsonResult PutImageLikes(string UrlImage)
        {
            EGalleryEntities db = new EGalleryEntities();
            var Image           = db.Images.FirstOrDefault(img => img.Name == UrlImage);
            var UserId          = Int32.Parse(User.Identity.Name);
            var UserLike        = db.LikesToImages.FirstOrDefault(li => li.ImageId == Image.Id && li.UserId == UserId);

            if (UserLike == null)
            {
                db.LikesToImages.Add(new LikesToImages()
                {
                    UserId = UserId, ImageId = Image.Id
                });
            }
            else
            {
                db.LikesToImages.Remove(UserLike);
            }
            db.SaveChanges();
            return(Json(db.Images.FirstOrDefault(img => img.Id == Image.Id).LikesToImages.Count, JsonRequestBehavior.AllowGet));
        }
コード例 #29
0
        public JsonResult GetComments(string UrlImage)
        {
            EGalleryEntities db     = new EGalleryEntities();
            var            Image    = db.Images.FirstOrDefault(img => img.Name == UrlImage);
            List <Comment> Comments = null;

            if (User.Identity.IsAuthenticated)
            {
                Comments = new List <Comment>();
                foreach (var comment in db.CommentsToImages.Where(ci => ci.ImageId == Image.Id))
                {
                    var user = db.Users.Find(comment.UserId);
                    Comments.Add(new Comment()
                    {
                        TextComment = comment.Comment,
                        DataComment = Convert.ToString(comment.DateComment),
                        UrlUser     = user.UserURL,
                        Avatar      = user.Avatar,
                        AuthorName  = user.Nick
                    });
                }
            }
            return(Json(Comments, JsonRequestBehavior.AllowGet));
        }
コード例 #30
0
        public JsonResult GetCountImages()
        {
            EGalleryEntities db = new EGalleryEntities();

            return(Json(db.Images.Count(), JsonRequestBehavior.AllowGet));
        }