Esempio n. 1
0
        //Show records in certain subtopic
        public ActionResult SubtopicsRecords(int Id, int?page)
        {
            int pageNum = page ?? 1;
            IEnumerable <RecordsListViewModel> records;

            ViewBag.PagedAction = PageInfo.PagedAction.SubtopicsRecords;            //choose action to call
            using (ForumDBEntities entities = new ForumDBEntities())
            {
                records = (from r in entities.Records
                           where r.Subtopic.Id == Id
                           select new RecordsListViewModel()
                {
                    Id = r.Id,
                    Name = r.Name,
                    Text = r.Text,
                    Date = r.Date,
                    UserId = r.UserId,
                    SubtopicId = r.SubtopicId,
                    User = r.User,
                    UsersWhoLike = r.UsersWhoLike
                }).OrderByDescending(r => r.Date).ToPagedList(pageNum, PageInfo.pageSize);
            }

            return(View("~/Views/Home/Index.cshtml", records));
        }
Esempio n. 2
0
        public ActionResult AddComment(AddCommentViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(new HttpStatusCodeResult(400, "Wrong input"));
            }

            Comments comment;

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                comment = new Comments()
                {
                    Text     = model.Text,
                    RecordId = model.RecordId,
                    Date     = DateTime.Now,
                    UserId   = entities.UserData.Find(User.Identity.GetUserId()).User.Id
                };

                entities.Comments.Add(comment);
                entities.SaveChanges();
            }

            return(RedirectToAction("RecordView", "Record", comment.RecordId));      //to avoid resending form after page reloading
        }
Esempio n. 3
0
        //Search by keyword
        public ActionResult Search(string searchLine, int?page)
        {
            int pageNum = page ?? 1;

            ViewBag.PagedAction = PageInfo.PagedAction.Search;              //choose action to call
            ViewBag.SearchLine  = searchLine;                               //for pagination

            IEnumerable <RecordsListViewModel> records;

            if (!searchLine.Equals(""))
            {
                using (ForumDBEntities entities = new ForumDBEntities())
                {
                    records = (from r in entities.Records
                               where r.Text.Contains(searchLine)
                               select new RecordsListViewModel()
                    {
                        Id = r.Id,
                        Name = r.Name,
                        Text = r.Text,
                        Date = r.Date,
                        UserId = r.UserId,
                        SubtopicId = r.SubtopicId,
                        User = r.User,
                        UsersWhoLike = r.UsersWhoLike
                    }).OrderByDescending(r => r.Date).ToPagedList(pageNum, PageInfo.pageSize);
                }
            }
            else
            {
                return(RedirectToAction("Index"));
            }

            return(View("~/Views/Home/Index.cshtml", records));
        }
Esempio n. 4
0
        /*Show profile page
         * Id - publisher id
         */
        public async Task <ActionResult> ProfileView(int Id)
        {
            //CHECK GUEST IN AddRecordbtn
            int userId = 0;                                 //get user id
            ProfileViewModel profile;

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                ViewBag.IsOwner = false;
                if (User.Identity.IsAuthenticated)              //if authorized user
                {
                    userId = entities.UserData.Find(User.Identity.GetUserId()).User.Id;
                    if (userId == Id)                           //if user's profile page
                    {
                        ViewBag.IsOwner = true;
                    }
                }

                profile = await(from u in entities.Users
                                where u.Id == Id
                                select new ProfileViewModel()
                {
                    Id        = u.Id,
                    Name      = u.Name,
                    MainPhoto = u.MainPhoto,
                    Records   = (from r in u.Records
                                 select new ProfileRecordDTO()
                    {
                        Id = r.Id, Name = r.Name, Text = r.Text, Date = r.Date, UsersWhoLikeCount = r.UsersWhoLike.Count
                    }).ToList(),
                    LikedRecords = (from r in u.LikedRecords
                                    select new ProfileRecordDTO()
                    {
                        Id = r.Id, Name = r.Name, Text = r.Text, Date = r.Date, UsersWhoLikeCount = r.UsersWhoLike.Count
                    }).ToList(),
                    Subscriptions = (from s in u.Subscriptions
                                     select new SubscribtionsDTO()
                    {
                        Id = s.Id, Name = s.Name, MainPhoto = s.MainPhoto, LevelInfoName = s.LevelInfo.Name
                    }).ToList(),
                    Subscribers = (from s in u.Subscribers
                                   select new SubscribtionsDTO()
                    {
                        Id = s.Id, Name = s.Name, MainPhoto = s.MainPhoto, LevelInfoName = s.LevelInfo.Name
                    }).ToList()
                }).FirstAsync();

                //check user in subscriptions
                if (User.Identity.IsAuthenticated && entities.Users.Find(userId).Subscriptions.Any(u => u.Id == Id))
                {
                    ViewBag.IsSubscription = true;
                }
                else
                {
                    ViewBag.IsSubscription = false;
                }
            }

            return(View(profile));
        }
Esempio n. 5
0
        public ActionResult Delete()
        {
            using (ForumDBEntities entities = new ForumDBEntities())
            {
                ViewBag.UserId = entities.UserData.Find(User.Identity.GetUserId()).User.Id;
            }

            return(View());
        }
Esempio n. 6
0
        public ApplicationUserStore(ForumDBEntities entities)
        {
            if (entities == null)
            {
                throw new ArgumentNullException();
            }

            userStore = new UserStore <IdentityUser>(entities);
        }
Esempio n. 7
0
        public ActionResult DeleteComment(int id)
        {
            using (ForumDBEntities entities = new ForumDBEntities())
            {
                entities.Comments.Remove(entities.Comments.Find(id));
                entities.SaveChanges();
            }

            return(new EmptyResult());
        }
Esempio n. 8
0
        public ActionResult UnlikeComment(int id)
        {
            using (ForumDBEntities entities = new ForumDBEntities())
            {
                var userId = entities.UserData.Find(User.Identity.GetUserId()).User.Id;
                entities.Users.Find(userId).LikedComments.Remove(entities.Comments.Find(id));
                entities.SaveChanges();
            }

            return(new EmptyResult());
        }
Esempio n. 9
0
        //start page
        public ActionResult Index()
        {
            IEnumerable <ApplicationRole> roles;

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                roles = entities.Roles.ToList();
            }

            return(View(roles));
        }
Esempio n. 10
0
        //get 4 most popular records
        public static IEnumerable <Records> MostPopularRecords()
        {
            List <Records> records;

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                records = entities.Records.Include(r => r.User).OrderByDescending(r => r.UsersWhoLike.Count).Take(4).ToList();
            }

            return(records);
        }
Esempio n. 11
0
        //for getting name from layout page
        public string GetName()
        {
            string name;

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                name = entities.UserData.Find(User.Identity.GetUserId()).User.Name;
            }

            return(name);
        }
Esempio n. 12
0
        public ActionResult DeleteRecord(int id)
        {
            using (ForumDBEntities entities = new ForumDBEntities())
            {
                var user = entities.Records.Where(r => r.Id == id).First();
                entities.Records.Remove(user);
                entities.SaveChanges();
            }

            return(new EmptyResult());
        }
Esempio n. 13
0
        public ActionResult LikeRecord(int id)
        {
            using (ForumDBEntities entities = new ForumDBEntities())
            {
                var userId = entities.UserData.Find(User.Identity.GetUserId()).User.Id;
                entities.Users.Find(userId).LikedRecords.Add(entities.Records.Find(id));
                entities.SaveChanges();
            }

            return(new EmptyResult());
        }
Esempio n. 14
0
        //for getting id from layout page
        public int GetId()
        {
            int id = 0;

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                id = entities.UserData.Find(User.Identity.GetUserId()).User.Id;
            }

            return(id);
        }
Esempio n. 15
0
        public ActionResult Unsubscribe(int id)
        {
            using (ForumDBEntities entities = new ForumDBEntities())
            {
                var userId = entities.UserData.Find(User.Identity.GetUserId()).User.Id;
                entities.Users.Find(userId).Subscriptions.Remove(entities.Users.Find(id));
                entities.SaveChanges();
            }

            ViewBag.UserId = id;                //AJAX can't load Model immediately
            return(PartialView());
        }
Esempio n. 16
0
        //Sidebar partial view
        public ActionResult Sidebar()
        {
            IEnumerable <Topics> topics;

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                topics                 = entities.Topics.ToList();
                ViewBag.Topics         = topics;
                ViewBag.PopularRecords = Popular.MostPopularRecords();
            }

            return(PartialView());
        }
Esempio n. 17
0
        public ActionResult AddRecord(int Id)
        {
            ViewBag.SubtopicId = Id;
            UserAddsRecordViewModel user = new UserAddsRecordViewModel();

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                var userId = entities.UserData.Find(User.Identity.GetUserId()).User.Id;
                user.Id        = userId;
                user.MainPhoto = entities.Users.Where(u => u.Id == userId).Select(u => u.MainPhoto).First();
            }

            return(View(user));
        }
Esempio n. 18
0
        public static void BlockUser(int id, DateTime date)
        {
            using (ForumDBEntities entities = new ForumDBEntities())
            {
                BlockedUsers user = new BlockedUsers()
                {
                    UserId    = id,
                    BlockTime = date
                };

                entities.BlockedUsers.Add(user);
                entities.SaveChanges();
            }
        }
Esempio n. 19
0
        public ActionResult RecordView(int Id)
        {
            RecordViewModel viewRecord;

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                viewRecord = (from r in entities.Records
                              where r.Id == Id
                              select new RecordViewModel()
                {
                    Id = r.Id,
                    UserId = r.UserId,
                    Name = r.Name,
                    Text = r.Text,
                    Date = r.Date,
                    User = r.User,
                    Comments = (from c in r.Comments
                                where c.Record.Id == Id
                                select new CommentDTO()                                                 //use DTO to convey to controller
                    {
                        Id = c.Id,
                        Date = c.Date,
                        Text = c.Text,
                        UserId = c.UserId,
                        UserName = c.User.Name,
                        UserMainPhoto = c.User.MainPhoto,
                        UsersWhoLikeCount = c.UsersWhoLike.Count
                    }).ToList()
                }).First();

                if (User.Identity.IsAuthenticated)
                {
                    var user = entities.UserData.Find(User.Identity.GetUserId()).User;
                    ViewBag.LikedComments = user.LikedComments.ToList();

                    var userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();       //get UserManager
                    if (userManager.IsInRole(User.Identity.GetUserId(), "admin"))                                   //check if admin
                    {
                        ViewBag.IsModerator = true;
                    }
                    else
                    {
                        ViewBag.IsModerator = false;
                    }
                }
            }

            return(View(viewRecord));
        }
Esempio n. 20
0
        public ActionResult Subtopics(int Id)
        {
            IEnumerable <SubtopicViewModel> subtopics;                                             //subtopics list

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                subtopics = (from s in entities.Subtopics
                             where s.Topic.Id == Id
                             select new SubtopicViewModel {
                    Id = s.Id, Name = s.Name
                }).ToList();
            }

            return(View(subtopics));
        }
Esempio n. 21
0
        //check and change user's level info
        public static void CheckLevelInfo(int userId)
        {
            using (ForumDBEntities entities = new ForumDBEntities())
            {
                var user = entities.Users.Where(u => u.Id == userId).Include(u => u.Records).Include(u => u.LikedRecords).Include(u => u.Comments).FirstOrDefault();

                foreach (var level in entities.LevelInfo)
                {
                    if (user.Records.Count >= level.RecordsBarrier && user.LikedRecords.Count >= level.LikesBarrier && user.Comments.Count >= level.CommentsBarrier)
                    {
                        user.LevelInfo = level;
                    }
                }

                entities.SaveChanges();
            }
        }
Esempio n. 22
0
 public ActionResult Authorise(ForumV5.Models.User userModel)
 {
     using (ForumDBEntities db = new ForumDBEntities())
     {
         var userDetails = db.Users.Where(x => x.UserName == userModel.UserName && x.Password == userModel.Password).FirstOrDefault();
         if (userDetails == null)
         {
             userModel.LoginErrorMessage = "F**k off";
             return(View("Index", userModel));
         }
         else
         {
             Session["userID"]   = userDetails.UserID;
             Session["userName"] = userDetails.UserName;
             return(RedirectToAction("Index", "Home"));
         }
     }
 }
Esempio n. 23
0
        public ActionResult ChangeName(int id, string name)
        {
            using (ForumDBEntities entities = new ForumDBEntities())
            {
                var userId = entities.UserData.Find(User.Identity.GetUserId()).User.Id;
                ViewBag.Name = entities.Users.Find(id).Name;
                //ИДЕТ ДВА ЗАПРОСА ПОДРЯД
                bool req = Request.IsAjaxRequest();
                if (name != null)
                {
                    entities.Users.Find(id).Name = name;
                    entities.SaveChanges();
                    ViewBag.Name = name;
                }
            }

            return(Content(name));                   //return name
        }
Esempio n. 24
0
        public static bool IsBlocked(string login)
        {
            bool result;

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                var userRecord = entities.BlockedUsers.Where(u => u.UserId == entities.UserData.Where(us => us.UserName == login).FirstOrDefault().User.Id).First();

                if (userRecord == null || userRecord.BlockTime < DateTime.Now)
                {
                    result = false;
                }
                else
                {
                    result = true;
                }
            }

            return(result);
        }
Esempio n. 25
0
        public ActionResult UploadImage(HttpPostedFileBase image)
        {
            int userId = 0;

            if (image != null)
            {
                using (ForumDBEntities entities = new ForumDBEntities())
                {
                    userId = entities.UserData.Find(User.Identity.GetUserId()).User.Id;
                    var    user = entities.Users.Where(u => u.Id == userId).ToList().First();
                    string name = System.IO.Path.GetFileName(image.FileName);
                    name = name.Substring(name.LastIndexOf('.'));
                    image.SaveAs(Server.MapPath("~/Content/images/" + user.Id + name));
                    user.MainPhoto = user.Id + name;
                    entities.SaveChanges();
                }
            }

            return(RedirectToAction("ProfileView", new { id = userId }));
        }
Esempio n. 26
0
        //Index page with all records list
        public ActionResult Index(int?page)
        {
            int pageNum = page ?? 1;

            ViewBag.PagedAction = PageInfo.PagedAction.Index;                   //choose action to call

            IPagedList <RecordsListViewModel> records;

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                records = (from r in entities.Records
                           select new RecordsListViewModel()
                {
                    Id = r.Id,
                    Name = r.Name,
                    Text = r.Text,
                    Date = r.Date,
                    UserId = r.UserId,
                    SubtopicId = r.SubtopicId,
                    User = r.User,
                    UsersWhoLike = r.UsersWhoLike
                }).OrderByDescending(r => r.Date).ToPagedList(pageNum, PageInfo.pageSize);

                if (User.Identity.IsAuthenticated)
                {
                    int userId = entities.UserData.Find(User.Identity.GetUserId()).User.Id;                //get user id
                    ViewBag.LikedRecords = (from r in entities.Users.Find(userId).LikedRecords             //get liked by user records list
                                            select new RecordsListViewModel()
                    {
                        Id = r.Id
                    }).ToList();                               //mark like button by certain image
                }
            }

            return(View(records));
        }
Esempio n. 27
0
        public ActionResult AddRecord(AddRecordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(new HttpStatusCodeResult(400, "Wrong data"));
            }

            using (ForumDBEntities entities = new ForumDBEntities())
            {
                Records record = new Records()
                {
                    Name       = model.Name,
                    Text       = model.Text,
                    SubtopicId = model.SubtopicId,
                    Date       = DateTime.Now,
                    UserId     = entities.UserData.Find(User.Identity.GetUserId()).User.Id
                };

                entities.Records.Add(record);
                entities.SaveChanges();
            }

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