public void Should_have_error_when_subject_is_null_or_empty() { var model = new PrivateMessageModel(); model.Subject = null; _validator.ShouldHaveValidationErrorFor(x => x.Subject, model); model.Subject = ""; _validator.ShouldHaveValidationErrorFor(x => x.Subject, model); }
public ActionResult ViewPM(int privateMessageId) { if (!AllowPrivateMessages()) { return RedirectToRoute("HomePage"); } if (_workContext.CurrentCustomer.IsGuest()) { return new HttpUnauthorizedResult(); } var pm = _forumService.GetPrivateMessageById(privateMessageId); if (pm != null) { if (pm.ToCustomerId != _workContext.CurrentCustomer.Id && pm.FromCustomerId != _workContext.CurrentCustomer.Id) { return RedirectToRoute("PrivateMessages"); } if (!pm.IsRead && pm.ToCustomerId == _workContext.CurrentCustomer.Id) { pm.IsRead = true; _forumService.UpdatePrivateMessage(pm); } } else { return RedirectToRoute("PrivateMessages"); } var model = new PrivateMessageModel() { Id = pm.Id, FromCustomerId = pm.FromCustomer.Id, CustomerFromName = pm.FromCustomer.FormatUserName(), AllowViewingFromProfile = _customerSettings.AllowViewingProfiles && pm.FromCustomer != null && !pm.FromCustomer.IsGuest(), ToCustomerId = pm.ToCustomer.Id, CustomerToName = pm.ToCustomer.FormatUserName(), AllowViewingToProfile = _customerSettings.AllowViewingProfiles && pm.ToCustomer != null && !pm.ToCustomer.IsGuest(), Subject = pm.Subject, Message = pm.FormatPrivateMessageText(), CreatedOn = _dateTimeHelper.ConvertToUserTime(pm.CreatedOnUtc, DateTimeKind.Utc), IsRead = pm.IsRead, }; return View(model); }
public ActionResult ViewPM(int privateMessageId) { if (!AllowPrivateMessages()) { return RedirectToAction("index", "home"); } if (_workContext.CurrentCustomer.IsGuest()) { return new HttpUnauthorizedResult(); } var pm = _forumService.GetPrivateMessageById(privateMessageId); if (pm != null) { if (pm.ToCustomerId != _workContext.CurrentCustomer.Id && pm.FromCustomerId != _workContext.CurrentCustomer.Id) { return RedirectToAction("Index"); } if (!pm.IsRead && pm.ToCustomerId == _workContext.CurrentCustomer.Id) { pm.IsRead = true; _forumService.UpdatePrivateMessage(pm); } } else { return RedirectToAction("Index"); } var model = new PrivateMessageModel() { customerFromName = pm.FromCustomer.FormatUserName(), customerToName = pm.ToCustomer.FormatUserName(), Subject = pm.Subject, Message = pm.FormatPrivateMessageText(), ToCustomerId = pm.FromCustomerId, Id = pm.Id, }; return View(model); }
public ActionResult SendPM(PrivateMessageModel model) { if (!AllowPrivateMessages()) { return RedirectToAction("index", "home"); } if (_workContext.CurrentCustomer.IsGuest()) { return new HttpUnauthorizedResult(); } Customer toCustomer = null; var replyToPM = _forumService.GetPrivateMessageById(model.ReplyToMessageId); if (replyToPM != null) { if (replyToPM.ToCustomerId == _workContext.CurrentCustomer.Id || replyToPM.FromCustomerId == _workContext.CurrentCustomer.Id) { toCustomer = replyToPM.FromCustomer; } else { return RedirectToAction("Index"); } } else { toCustomer = _customerService.GetCustomerById(model.ToCustomerId); } if (toCustomer == null || toCustomer.IsGuest()) { return RedirectToAction("Index"); } model.customerToName = toCustomer.FormatUserName(); if (ModelState.IsValid) { try { string subject = model.Subject; var maxSubjectLength = _forumSettings.PMSubjectMaxLength; if (maxSubjectLength > 0 && subject.Length > maxSubjectLength) { subject = subject.Substring(0, maxSubjectLength); } var text = model.Message; var maxPostLength = _forumSettings.PMTextMaxLength; if (maxPostLength > 0 && text.Length > maxPostLength) { text = text.Substring(0, maxPostLength); } var nowUtc = DateTime.UtcNow; var privateMessage = new PrivateMessage { ToCustomerId = toCustomer.Id, FromCustomerId = _workContext.CurrentCustomer.Id, Subject = subject, Text = text, IsDeletedByAuthor = false, IsDeletedByRecipient = false, IsRead = false, CreatedOnUtc = nowUtc }; _forumService.InsertPrivateMessage(privateMessage); return RedirectToAction("Index", new {tab = "sent"}); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } } return View(model); }
public ActionResult SendPM(int toCustomerId, int? replyToMessageId) { if (!AllowPrivateMessages()) { return RedirectToAction("index", "home"); } if (_workContext.CurrentCustomer.IsGuest()) { return new HttpUnauthorizedResult(); } var customerTo = _customerService.GetCustomerById(toCustomerId); if (customerTo == null) { return RedirectToAction("Index"); } var model = new PrivateMessageModel(); model.ToCustomerId = toCustomerId; model.customerToName = customerTo.FormatUserName(); if (replyToMessageId.HasValue) { var replyToPM = _forumService.GetPrivateMessageById(replyToMessageId.Value); if (replyToPM == null) { return RedirectToAction("Index"); } if (replyToPM.ToCustomerId == _workContext.CurrentCustomer.Id || replyToPM.FromCustomerId == _workContext.CurrentCustomer.Id) { model.ReplyToMessageId = replyToPM.Id; model.Subject = string.Format("Re: {0}", replyToPM.Subject); } else { return RedirectToAction("Index"); } } return View(model); }
public void Should_not_have_error_when_subject_is_specified() { var model = new PrivateMessageModel(); model.Subject = "some comment"; _validator.ShouldNotHaveValidationErrorFor(x => x.Subject, model); }
public ActionResult SendPM(PrivateMessageModel model) { if (!AllowPrivateMessages()) { return RedirectToAction("index", "home"); } if (_workContext.CurrentCustomer.IsGuest()) { return new HttpUnauthorizedResult(); } Customer toCustomer = null; var replyToPM = _forumService.GetPrivateMessageById(model.ReplyToMessageId); if (replyToPM != null) { if (replyToPM.ToCustomerId == _workContext.CurrentCustomer.Id || replyToPM.FromCustomerId == _workContext.CurrentCustomer.Id) { toCustomer = replyToPM.FromCustomer; } else { return RedirectToAction("Index"); } } else { toCustomer = _customerService.GetCustomerById(model.ToCustomerId); } if (toCustomer == null || toCustomer.IsGuest()) { return RedirectToAction("Index"); } try { string subject = model.Subject; if (subject != null) { subject = subject.Trim(); } if (String.IsNullOrEmpty(subject)) { throw new NopException(_localizationService.GetResource("PrivateMessages.SubjectCannotBeEmpty")); } var maxSubjectLength = _forumSettings.PMSubjectMaxLength; if (maxSubjectLength > 0 && subject.Length > maxSubjectLength) { subject = subject.Substring(0, maxSubjectLength); } var text = model.Message; if (text != null) { text = text.Trim(); } if (String.IsNullOrEmpty(text)) { throw new NopException(_localizationService.GetResource("PrivateMessages.MessageCannotBeEmpty")); } var maxPostLength = _forumSettings.PMTextMaxLength; if (maxPostLength > 0 && text.Length > maxPostLength) { text = text.Substring(0, maxPostLength); } var nowUtc = DateTime.UtcNow; var privateMessage = new PrivateMessage { ToCustomerId = toCustomer.Id, FromCustomerId = _workContext.CurrentCustomer.Id, Subject = subject, Text = text, IsDeletedByAuthor = false, IsDeletedByRecipient = false, IsRead = false, CreatedOnUtc = nowUtc }; _forumService.InsertPrivateMessage(privateMessage); return RedirectToAction("Index", new { tab = "sent" }); } catch (Exception ex) { model.PostError = ex.Message; } return View(model); }