public ActionResult SubmitArticle(int articleId, int issueId, int catId) { if (Session["User"] == null) { return(Content("login")); } User user = ((Urdu_Magazine.Models.User)Session["User"]); int UserId = user.id; var username = user.full_name; var profilepic = user.profile_picture; var article = db.Articles.Find(articleId); if (article.Number_Of_Submissions == 5) { return(Content("limitreached")); } db.Article_Submit_Info.Add(new Article_Submit_Info { Article_Id = articleId, SubmittedForIssue = issueId, In_Category = catId, Available = true }); article.Number_Of_Submissions++; db.SaveChanges(); Task task = new Task(delegate { Notification tempNot = new Notification { who = UserId, issue_id = issueId, article_id = articleId, date = DateTime.Now, link = "~/Issue/publishIssue", type = 4, //description = user.id+" " }; db.Notifications.Add(tempNot); db.SaveChanges(); var editorId = db.Issues.Find(issueId).Magazine.User_Id; if (editorId != issueId) { var userIds = new List <int>(); userIds.Add(editorId); var userIdsGroups = userIds.Distinct().Select(x => "user-id-" + x).ToList(); LiveConnectivityHelper liveConnectivityHelper = new LiveConnectivityHelper(); liveConnectivityHelper.sendNotification(userIdsGroups, 4, username, profilepic, tempNot.date.ToString(), "~/Issue/publishIssue"); } }); task.Start(); return(Content("success")); }
public ActionResult postComment(int issueId, string commentText) { if (Session["User"] == null) { return(Content("login")); } var user = ((Urdu_Magazine.Models.User)Session["User"]); var username = user.full_name; var profilepic = user.profile_picture; var userId = user.id; var date = DateTime.Now; Comment comment = new Comment { comment1 = commentText, issueId = issueId, userId = user.id, timestamp = date }; db.Comments.Add(comment); db.SaveChanges(); Task task = new Task(delegate { db.Notifications.Add(new Notification { who = userId, issue_id = issueId, date = date, link = "~/Issue/Webview/" + issueId, type = 1, //description = user.id+" " }); db.SaveChanges(); var userIds = db.Article_Issue.Where(a => a.Issue_Id == issueId).Select(x => x.Article.User.id).ToList(); //To get all writers; var PublisheruserId = db.Issues.Find(issueId).Magazine.User_Id; userIds.Add(PublisheruserId); userIds.RemoveAll(x => x == userId); // var userIds = db.Database.ExecuteSqlCommand("Delete from inPageAds where articleId={0}", new object[] { data.articleId }); var liveConnectivity = GlobalHost.ConnectionManager.GetHubContext <LiveConnectivity>(); liveConnectivity.Clients.Group("web-view-" + issueId).addComment(username, (profilepic == null)?"default": profilepic, commentText, date.ToString()); var userIdsGroups = userIds.Distinct().Select(x => "user-id-" + x).ToList(); LiveConnectivityHelper liveConnectivityHelper = new LiveConnectivityHelper(); liveConnectivityHelper.sendNotification(userIdsGroups, 1, username, profilepic, date.ToString(), "~/Issue/Webview/" + issueId); //liveConnectivity.Clients.Groups(userIdsGroup).showNotification(username, (profilepic == null) ? "default" : profilepic,); }); task.Start(); return(Content("success")); }
public ActionResult publishIssue(int issueId) { if (Session["User"] == null) { return(Content("login")); } if (db.Issues.Find(issueId).Article_Issue.Count > 0) { User user = ((Urdu_Magazine.Models.User)Session["User"]); int UserId = user.id; var username = user.full_name; var profilepic = user.profile_picture; Issue issue = db.Issues.Find(issueId); issue.isPublished = true; issue.pdfStatus = 2; db.Entry(issue).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); Task task = new Task(delegate { string filename = makePDF(issueId); Notification tempNot = new Notification { who = UserId, issue_id = issueId, date = DateTime.Now, link = "~/Issue/Webview/" + issueId, type = 3, //description = user.id+" " }; db.Notifications.Add(tempNot); db.SaveChanges(); var userIds = db.Article_Issue.Where(a => a.Issue_Id == issueId).Select(x => x.Article.User.id).ToList(); //To get all writers/users to notify; userIds.RemoveAll(x => x == UserId); //jis ki waja se notification arahi hai usko kata do var userIdsGroups = userIds.Distinct().Select(x => "user-id-" + x).ToList(); //distinct lagaya and ids ko groups k format mae le aye LiveConnectivityHelper liveConnectivityHelper = new LiveConnectivityHelper(); liveConnectivityHelper.sendNotification(userIdsGroups, 3, username, profilepic, tempNot.date.ToString(), "~/Issue/Webview/" + issueId); }); task.Start(); return(Content("published")); } return(Content("selectArticles")); }
public ActionResult submitArticles(int issueid, IEnumerable <int> ArticlesChecked, IEnumerable <int> AllArticleIds) { if (Session["User"] == null) { return(Content("login")); } User user = ((Urdu_Magazine.Models.User)Session["User"]); int UserId = user.id; var username = user.full_name; var profilepic = user.profile_picture; var userIds = new List <int>(); var AllArticlesSubmittedForIssue = db.Article_Submit_Info.Where(x => x.SubmittedForIssue == issueid && AllArticleIds.Contains(x.Article_Id)).ToList(); //Ye khuwari sirf null exception na aye is waja se kri hai. if (ArticlesChecked == null) { foreach (var item in AllArticlesSubmittedForIssue) { if (!item.Article.Available_To_Select) { db.Articles.Find(item.Article_Id).Available_To_Select = true; db.Article_Issue.RemoveRange(db.Article_Issue.Where(x => x.Issue_Id == issueid && x.Article_Id == item.Article_Id)); } } db.Notifications.RemoveRange(db.Notifications.Where(x => x.issue_id == issueid && x.type == 5)); } else { foreach (var item in AllArticlesSubmittedForIssue) { if (ArticlesChecked.Contains(item.Article_Id)) { if (item.Article.Available_To_Select) { db.Article_Issue.Add(new Article_Issue { Issue_Id = issueid, Article_Id = item.Article_Id, In_category = item.In_Category }); db.Articles.Find(item.Article_Id).Available_To_Select = false; Notification tempNot = new Notification { article_id = item.Article_Id, date = DateTime.Now, issue_id = issueid, who = UserId, type = 5, }; db.Notifications.Add(tempNot); userIds.Add(item.Article.User_Id); } } else { if (!item.Article.Available_To_Select) { db.Articles.Find(item.Article_Id).Available_To_Select = true; db.Article_Issue.RemoveRange(db.Article_Issue.Where(x => x.Issue_Id == issueid && x.Article_Id == item.Article_Id)); db.Notifications.Remove(db.Notifications.FirstOrDefault(x => x.type == 5 && x.issue_id == issueid && x.article_id == item.Article_Id)); } } } } db.SaveChanges(); Task task = new Task(delegate { userIds.RemoveAll(x => x == UserId); var userIdsGroups = userIds.Distinct().Select(x => "user-id-" + x).ToList(); LiveConnectivityHelper liveConnectivityHelper = new LiveConnectivityHelper(); liveConnectivityHelper.sendNotification(userIdsGroups, 5, username, profilepic, DateTime.Now.ToString(), "#"); }); task.Start(); //foreach(var item in Articles) //{ // if (db.Articles.Find(item).Available_To_Select) // { // db.Article_Issue.Add(new Article_Issue // { // Issue_Id = issueid, // Article_Id = item // }); // db.Articles.Find(item).Available_To_Select = false; // } //} //db.SaveChanges(); return(Content("success")); }