public void AnswerQuestion(Answer answer) { EditedLog editedlog = new EditedLog(); editedlog.Content = answer.Content; editedlog.CreatedDate = DateTime.Now; editedlog.UserId = answer.UserId; answer.EditedContents.Add(editedlog); _dal.Repository <Answer>().Insert(answer); _dal.Save(); }
public void CommentPost(Comment comment) { _dal.Repository <Comment>().Insert(comment); EditedLog log = new EditedLog(); log.PostId = comment.Id; log.UserId = comment.UserId; log.Content = comment.Content; log.CreatedDate = comment.CreatedDate; _dal.Repository <EditedLog>().Insert(log); _dal.Save(); }
public ActionResult Edit(ArticleEditViewModel articleEditVM) { if (!ModelState.IsValid) { return(View("Views/BlogEditView", articleEditVM)); } Article article = bService.GetArticle(articleEditVM.Id); if (article.Content == articleEditVM.Content && article.Title == articleEditVM.Title) { return(RedirectToAction("Detail", new { id = article.Id })); } if (article.UserId == _currentUserId || User.IsInRole("Administrator") || User.IsInRole("Moderator") || User.IsInRole("Expert")) { article.Title = articleEditVM.Title; article.Content = articleEditVM.Content; article.Privacy = articleEditVM.Privacy == 0 ? article.Privacy : articleEditVM.Privacy; if (article.UserId == _currentUserId) { article.PublicDate = articleEditVM.PublicDate.Value; } if (article.PublicDate <= DateTime.Now) { EditedLog editedlog = new EditedLog(); editedlog.Content = articleEditVM.Content; editedlog.CreatedDate = DateTime.Now; editedlog.PostId = article.Id; editedlog.Title = articleEditVM.Title; editedlog.UserId = User.Identity.GetUserId <int>(); article.LastEditedDate = editedlog.CreatedDate; article.EditedContents.Add(editedlog); } bService.UpdateArticle(article); return(RedirectToAction("Detail", new { id = article.Id })); } //string returnUrl = Request.Cookies.Get("returnUrl") != null ? Request.Cookies.Get("returnUrl").Value : default(string); if (_previousUrl == default(string)) { return(RedirectToAction("Detail", new { id = article.Id })); } else { return(Redirect(Url.Content(_previousUrl))); } }
public ActionResult Edit(QuestionEditViewModel questionVM) { if (!ModelState.IsValid) { return(View("Views/QuestionEditView", questionVM)); } Question question = qService.GetQuestion(questionVM.Id); if (question.Content == questionVM.Content && question.Title == questionVM.Title) { return(RedirectToAction("Detail", new { id = question.Id })); } if (question.UserId == _currentUserId || User.IsInRole("Administrator") || User.IsInRole("Moderator") || User.IsInRole("Expert")) { EditedLog editedlog = new EditedLog(); editedlog.Content = questionVM.Content; editedlog.CreatedDate = DateTime.Now; editedlog.PostId = question.Id; editedlog.UserId = User.Identity.GetUserId <int>(); editedlog.Title = questionVM.Title; question.Title = questionVM.Title; question.Content = questionVM.Content; question.Privacy = questionVM.Privacy == 0 ? question.Privacy : questionVM.Privacy; question.LastEditedDate = editedlog.CreatedDate; question.EditedContents.Add(editedlog); qService.EditQuestion(question); return(RedirectToAction("Detail", new { id = question.Id })); } //ViewBag.ErrorMessage = "Bạn không có quyền chỉnh sửa câu hỏi này"; //string returnUrl = Request.Cookies.Get("returnUrl") != null ? Request.Cookies.Get("returnUrl").Value : default(string); if (_previousUrl == default(string)) { return(RedirectToAction("Detail", new { id = question.Id })); } else { return(Redirect(Url.Content(_previousUrl))); } }
public ActionResult Edit(DiscussionEditViewModel discussionEditVM) { if (!ModelState.IsValid) { return(View("Views/DiscussionEditView", discussionEditVM)); } Discussion discussion = dService.GetDiscussion(discussionEditVM.Id); if (discussion.Content == discussionEditVM.Content && discussion.Title == discussionEditVM.Title) { return(RedirectToAction("Detail", new { id = discussion.Id })); } if (discussion.UserId == _currentUserId || User.IsInRole("Administrator") || User.IsInRole("Moderator") || User.IsInRole("Expert")) { EditedLog editedlog = new EditedLog(); editedlog.Content = discussionEditVM.Content; editedlog.CreatedDate = DateTime.Now; editedlog.Title = discussionEditVM.Title; editedlog.PostId = discussion.Id; editedlog.UserId = _currentUserId; discussion.Title = discussionEditVM.Title; discussion.Content = discussionEditVM.Content; discussion.Privacy = discussionEditVM.Privacy == 0 ? discussion.Privacy : discussionEditVM.Privacy; discussion.LastEditedDate = editedlog.CreatedDate; discussion.EditedContents.Add(editedlog); dService.EditDiscussion(discussion); return(RedirectToAction("Detail", new { id = discussion.Id })); } //string returnUrl = Request.Cookies.Get("returnUrl") != null ? Request.Cookies.Get("returnUrl").Value : default(string); if (_previousUrl == default(string)) { return(RedirectToAction("Detail", new { id = discussion.Id })); } else { return(Redirect(Url.Content(_previousUrl))); } }
public Answer EditAnswer(Answer answer, int userId, bool hasPermission) { Answer a = _dal.Repository <Answer>().GetById(answer.Id); if (a.UserId == userId || hasPermission) { a.Content = answer.Content; a.LastEditedDate = DateTime.Now; EditedLog editedlog = new EditedLog(); editedlog.Content = answer.Content; editedlog.CreatedDate = a.LastEditedDate; editedlog.UserId = userId; a.EditedContents.Add(editedlog); _dal.Save(); return(a); } return(a); }
public Comment UpdateComment(Comment c, int userId) { Comment comment = _dal.Repository <Comment>().GetById(c.Id); if (comment.Content == c.Content) { return(comment); } comment.Content = c.Content; comment.LastEditedDate = DateTime.Now; _dal.Repository <Comment>().Update(comment); EditedLog log = new EditedLog(); log.PostId = comment.Id; log.UserId = comment.UserId; log.Content = comment.Content; log.CreatedDate = comment.LastEditedDate; _dal.Repository <EditedLog>().Insert(log); _dal.Save(); return(comment); }
public ActionResult CategoryIndex(CategoryViewModel discussionTagHomeVM, int tagId) { Discussion discussion = new Discussion(); discussion.Title = discussionTagHomeVM.Tile; discussion.Content = discussionTagHomeVM.Content; discussion.CreatedDate = DateTime.Now; discussion.LastEditedDate = discussion.CreatedDate; discussion.Privacy = MainPostPrivacyEnum.Everyone; discussion.Tags.Add(cService.GetTag(tagId)); discussion.UserId = User.Identity.GetUserId <int>(); discussion.LastViewed = DateTime.Now; discussion.Status = PostStatusEnum.Active; dService.InsertDiscussion(discussion); EditedLog editedlog = new EditedLog(); editedlog.Content = discussion.Content; editedlog.CreatedDate = discussion.LastEditedDate; editedlog.PostId = discussion.Id; editedlog.UserId = discussion.UserId; discussion.EditedContents.Add(editedlog); dService.EditDiscussion(discussion); //discussion.Tags = cService.GetTags(discussionTagHomeVM.TagIds); if (discussion.Id != 0) { return(RedirectToAction("Detail", new { @id = discussion.Id })); } else { return(View("Views/Error")); } }
public ActionResult Create(QuestionCreateViewModel questionVM) { if (!ModelState.IsValid) { return(View("Views/QuestionCreateView", questionVM)); } Question question = new Question(); question = Mapper.Map <QuestionCreateViewModel, Question>(questionVM); question.CreatedDate = DateTime.Now; question.LastEditedDate = question.CreatedDate; question.UserId = User.Identity.GetUserId <int>(); question.Tags = cService.GetTags(questionVM.TagIds); question.Invitations = cService.GetInvitations(questionVM.InviteIds, User.Identity.GetUserId <int>()); question.Status = PostStatusEnum.Active; qService.InsertQuestion(question); EditedLog editedlog = new EditedLog(); editedlog.Content = question.Content; editedlog.CreatedDate = question.LastEditedDate; editedlog.PostId = question.Id; editedlog.UserId = question.UserId; editedlog.Title = question.Title; question.EditedContents.Add(editedlog); qService.EditQuestion(question); //Console.WriteLine(questionVM.Tags[0]); if (question.Id != 0) { //new Thread(() => //{ foreach (int inviteeId in question.Invitations.Select(i => i.InviteeId)) { Notification notification = new Notification(); notification.AuthorId = _currentUserId; notification.CreatedDate = DateTime.Now; notification.Content = question.Title; notification.Seen = false; notification.Type = NotificationSettingEnum.Invited; notification.UserId = inviteeId; notification.Link = Url.Action("Detail", "Question", new { id = question.Id }); cService.AddNotification(notification); using (RealTimeService rService = new RealTimeService(new CPMathHubModelContainer(), notification.UserId)) { IEnumerable <string> connectionIds = RealTimeHub.Connections.GetConnections(notification.UserId); foreach (string conId in connectionIds) { _hub.Clients.Client(conId).notifyNewActivity(rService.CountNewActivityNotification()); } } } // } //).Start(); return(RedirectToAction("Detail", new { id = question.Id })); } else { return(new HttpStatusCodeResult(500)); } }
public ActionResult Create(ArticleCreateViewModel model) { if (!ModelState.IsValid) { return(View("Views/BlogCreateView", model)); } Article article = new Article(); article = Mapper.Map <ArticleCreateViewModel, Article>(model); article.UserId = User.Identity.GetUserId <int>(); article.Tags = cService.GetTags(model.TagIds); article.Invitations = cService.GetInvitations(model.InviteIds, User.Identity.GetUserId <int>()); if (article.PublicDate.Value.Date == DateTime.Now.Date) { article.PublicDate = DateTime.Now; } bService.InsertArticle(article); EditedLog editedlog = new EditedLog(); editedlog.Content = article.Content; editedlog.CreatedDate = article.LastEditedDate; editedlog.PostId = article.Id; editedlog.UserId = article.UserId; editedlog.Title = article.Title; article.EditedContents.Add(editedlog); bService.UpdateArticle(article); //Console.WriteLine(questionVM.Tags[0]); if (article.Id != 0) { //new Thread(() => //{ foreach (int inviteeId in article.Invitations.Select(i => i.InviteeId)) { Notification notification = new Notification(); notification.AuthorId = _currentUserId; notification.CreatedDate = DateTime.Now; notification.Content = article.Title; notification.Seen = false; notification.Type = NotificationSettingEnum.Invited; notification.UserId = inviteeId; notification.Link = Url.Action("Detail", "Article", new { id = article.Id }); cService.AddNotification(notification); using (RealTimeService rService = new RealTimeService(new CPMathHubModelContainer(), notification.UserId)) { IEnumerable <string> connectionIds = RealTimeHub.Connections.GetConnections(notification.UserId); foreach (string conId in connectionIds) { _hub.Clients.Client(conId).notifyNewActivity(rService.CountNewActivityNotification()); } } } // } //).Start(); return(RedirectToAction("Detail", new { id = article.Id })); } else { return(new HttpStatusCodeResult(500)); } }