Пример #1
0
        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"));
        }
Пример #2
0
        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"));
        }
Пример #3
0
        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"));
        }
Пример #4
0
        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"));
        }