public void Should_have_error_when_subject_is_null_or_empty() { var model = new SendPrivateMessageModel(); model.Subject = null; _validator.ShouldHaveValidationErrorFor(x => x.Subject, model); model.Subject = ""; _validator.ShouldHaveValidationErrorFor(x => x.Subject, model); }
public ActionResult SendPM(SendPrivateMessageModel model) { if (!_forumSettings.AllowPrivateMessages) { return RedirectToRoute("HomePage"); } 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 RedirectToRoute("PrivateMessages"); } } else { toCustomer = _customerService.GetCustomerById(model.ToCustomerId); } if (toCustomer == null || toCustomer.IsGuest()) { return RedirectToRoute("PrivateMessages"); } model.ToCustomerId = toCustomer.Id; model.CustomerToName = toCustomer.FormatUserName(); model.AllowViewingToProfile = _customerSettings.AllowViewingProfiles && !toCustomer.IsGuest(); if (ModelState.IsValid) { try { string subject = model.Subject; if (_forumSettings.PMSubjectMaxLength > 0 && subject.Length > _forumSettings.PMSubjectMaxLength) { subject = subject.Substring(0, _forumSettings.PMSubjectMaxLength); } var text = model.Message; if (_forumSettings.PMTextMaxLength > 0 && text.Length > _forumSettings.PMTextMaxLength) { text = text.Substring(0, _forumSettings.PMTextMaxLength); } var nowUtc = DateTime.UtcNow; var privateMessage = new PrivateMessage { StoreId = _storeContext.CurrentStore.Id, ToCustomerId = toCustomer.Id, FromCustomerId = _workContext.CurrentCustomer.Id, Subject = subject, Text = text, IsDeletedByAuthor = false, IsDeletedByRecipient = false, IsRead = false, CreatedOnUtc = nowUtc }; _forumService.InsertPrivateMessage(privateMessage); //activity log _customerActivityService.InsertActivity("PublicStore.SendPM", _localizationService.GetResource("ActivityLog.PublicStore.SendPM"), toCustomer.Email); return RedirectToRoute("PrivateMessages", new { tab = "sent" }); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } } return View(model); }
public ActionResult SendPM(int toCustomerId, int? replyToMessageId) { if (!_forumSettings.AllowPrivateMessages) { return RedirectToRoute("HomePage"); } if (_workContext.CurrentCustomer.IsGuest()) { return new HttpUnauthorizedResult(); } var customerTo = _customerService.GetCustomerById(toCustomerId); if (customerTo == null || customerTo.IsGuest()) { return RedirectToRoute("PrivateMessages"); } var model = new SendPrivateMessageModel(); model.ToCustomerId = customerTo.Id; model.CustomerToName = customerTo.FormatUserName(); model.AllowViewingToProfile = _customerSettings.AllowViewingProfiles && !customerTo.IsGuest(); if (replyToMessageId.HasValue) { var replyToPM = _forumService.GetPrivateMessageById(replyToMessageId.Value); if (replyToPM == null) { return RedirectToRoute("PrivateMessages"); } 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 RedirectToRoute("PrivateMessages"); } } return View(model); }
public void Should_not_have_error_when_subject_is_specified() { var model = new SendPrivateMessageModel(); model.Subject = "some comment"; _validator.ShouldNotHaveValidationErrorFor(x => x.Subject, model); }