public ActionResult SendMessages() { int SubscriberPageSize = 8; //PagedList<IUserProfile> subscriberList = null;// new PagedList<IUserProfile>( ////PagedList<IAbonnementProjet> aboList = new PagedList<IAbonnementProjet>(; //List<IAbonnementProjet> aboList = new List<IAbonnementProjet>(); //foreach (var proj in CurrentUser.Projets) //{ // IQueryable<IUserProfile> users = Data.AbonnementProjetDataAccess.GetAllAbonnements(proj.IdProjet).Select( abo => abo.UserProfile); // // charger pr page Projet 1 only //} SendMessageViewData messageData = new SendMessageViewData(); messageData.Subscribers = new List <IUserProfile>(); IProjet firstProjet = CurrentUser.Projets.First(); if (firstProjet != null) { messageData.Subscribers = Data.AbonnementProjetDataAccess.GetAllAbonnements(firstProjet.IdProjet).Select(abo => abo.UserProfile).ToList(); } return(View(messageData)); }
public ActionResult SendMessage(int?pId, string toUid) { //ViewData["title"] = "Message"; Guid ToUserId = toUid.ToGuid(); if (pId == null && toUid == null) { ViewData["title"] = "Messagerie"; ViewData["message"] = "Impossible d'envoyer le message :("; return(PartialView("BlankModal")); } IUserProfile toUser = null; IProjet relatedProjet = null; if (ToUserId.IsEmpty() == false) { toUser = Data.UserDataAccess.GetUser(ToUserId); if (toUser == null) { ViewData["message"] = "Ce message ne peut être envoyé au destinataire indiqué :( "; } } else if (pId.HasValue) { relatedProjet = Data.ProjetDataAccess.GetProjet(pId.Value); if (relatedProjet == null) { ViewData["message"] = "Le projet concernant ce message est introuvable :( "; } } if (ViewData.ContainsKey("message")) { return(PartialView("BlankModal")); } SendMessageViewData sendMessageData = new SendMessageViewData(); if (relatedProjet != null) { sendMessageData.RelatedProjet = relatedProjet; sendMessageData.ToUserProfile = relatedProjet.OwnerUserProfile; sendMessageData.relatedProjetId = relatedProjet.IdProjet.ToString(); sendMessageData.toUserId = relatedProjet.OwnerUserProfile.UserId.ToString(); sendMessageData.sujet = "A propos du voyage n°" + sendMessageData.RelatedProjet.IdProjet + ": " + sendMessageData.RelatedProjet.GetShortDisplayName(); } if (toUser != null) { sendMessageData.ToUserProfile = toUser; sendMessageData.toUserId = toUser.UserId.ToString(); sendMessageData.sujet = ""; } return(PartialView("SendMessageModal", sendMessageData)); }
// [TrimActionParams] public ActionResult SendSingleMessage(SendMessageViewData sentMsgData) { //Si le message répond à un autre on met la tête de thread a non lu. throw new Exception("Exception non catchée"); const int MAXMESSAGELENGHT = 4000; int newMsgId = -1; try { /* * System.Diagnostics.Debug.WriteLine("homosexuel : " + sentMsgData.sujet); * System.Diagnostics.Trace.WriteLine("homosexuel : " + sentMsgData.sujet); */ //bool ajax = Request.IsAjaxRequest(); //C'est moche mais sa saoul //21/07/09 20:12 var sujet = sentMsgData.sujet; var message = sentMsgData.message; var toUserId = sentMsgData.toUserId; var fromUserId = sentMsgData.fromUserId; var relatedProjetId = sentMsgData.relatedProjetId;//.Trim(); var responseMsgId = sentMsgData.responseMsgId; int?relProjId = (!relatedProjetId.IsNullOrEmpty()) ? (int?)int.Parse(relatedProjetId) : null; int?respIdMsg = (!responseMsgId.IsNullOrEmpty()) ? (int?)int.Parse(responseMsgId) : null; newMsgId = respIdMsg ?? newMsgId; if (message.Length > MAXMESSAGELENGHT) { this.ModelState.AddModelError("message", "Votre message est trop long. (plus de " + MAXMESSAGELENGHT + " caractères)"); } if (!this.ModelState.IsValid) { throw new Exception("Message trop long"); } if (sujet.IsNullOrEmpty() && respIdMsg.HasValue) { IMessagePrive originalMsg = Data.MessageDataAccess.GetMessage(respIdMsg.Value); originalMsg.IsFromNewMessage = true; // le thread est considéré comme nouveau originalMsg.IsToNewMessage = true; sujet = "RE : " + originalMsg.SujetMessage; } //sujet généré automatiqment si nul if (sujet.IsNullOrEmpty() && relProjId != null) { sujet = GetDefaultMessageSubject(relProjId.Value); } else if ((sujet).IsNullOrEmpty()) { sujet = "(sans sujet)"; } IMessagePrive newMsg = InsertNewMessage(new Guid(fromUserId), new Guid(toUserId), sujet, message, respIdMsg, relProjId); newMsgId = newMsg.MsgId; //Envoi de l'email de notification this.CovCakeMailer.SendNewMessageNotify(newMsg); } catch (Exception e) { if (Request.IsAjaxRequest()) { return(Json(false)); } else { this.ModelState.AddModelError("_FORMMSG", "Le message n'a pas pu être envoyé"); TempData["ModelError"] = this.ModelState; return(RedirectToAction("ShowMessage", new { msgId = newMsgId })); } // return PartialView("sendMessageError"); } if (Request.IsAjaxRequest()) { return(Json(true)); // new TextViewResult("Le messsage a bien été envoyé"); // PartialView("SendMessageModal", sendMessageData); } else { return(RedirectToAction("ShowMessage", new { msgId = newMsgId })); } }