Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
//        [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 }));
            }
        }