//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)); }
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 }
//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)); }
/*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)); }
public ActionResult Delete() { using (ForumDBEntities entities = new ForumDBEntities()) { ViewBag.UserId = entities.UserData.Find(User.Identity.GetUserId()).User.Id; } return(View()); }
public ApplicationUserStore(ForumDBEntities entities) { if (entities == null) { throw new ArgumentNullException(); } userStore = new UserStore <IdentityUser>(entities); }
public ActionResult DeleteComment(int id) { using (ForumDBEntities entities = new ForumDBEntities()) { entities.Comments.Remove(entities.Comments.Find(id)); entities.SaveChanges(); } return(new EmptyResult()); }
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()); }
//start page public ActionResult Index() { IEnumerable <ApplicationRole> roles; using (ForumDBEntities entities = new ForumDBEntities()) { roles = entities.Roles.ToList(); } return(View(roles)); }
//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); }
//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); }
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()); }
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()); }
//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); }
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()); }
//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()); }
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)); }
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(); } }
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)); }
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)); }
//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(); } }
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")); } } }
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 }
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); }
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 })); }
//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)); }
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")); }