public ActionResult ApercuCourriel(BrouillonViewModel brouillon)
        {
            brouillon.NoMsg = -1;
            PPMessage message = EnregistrerMessage(brouillon);

            try
            {
                PPVendeur vendeur =
                    (from v in context.PPVendeurs
                     where v.NoVendeur == brouillon.destinataires.FirstOrDefault()
                     select v).FirstOrDefault();
                if (vendeur != null)
                {
                    message.DescMsg = message.DescMsg.Replace("X%", (vendeur.Pourcentage * 100).ToString() + "%");
                }
            }
            catch (Exception)
            {
            }


            RejectAllChanges(); //Au cas ou

            return(View(message));
        }
        public ActionResult EnregistrerBrouillon(BrouillonViewModel brouillon)
        {
            var ogMessage = (from msg in context.PPMessages where msg.NoMsg == brouillon.NoMsg select msg).First();
            var message   = EnregistrerMessage(brouillon, ogMessage);

            context.SubmitChanges();

            return(Json(brouillon));
        }
        public ActionResult CreerBrouillon(BrouillonViewModel brouillon)
        {
            var maxId = (from m in context.PPMessages
                         select m.NoMsg).ToList().DefaultIfEmpty().Max();

            int noMessage = maxId + 1;

            brouillon.NoMsg = noMessage;
            if ((brouillon.DescMsg ?? "").Contains("Froala"))
            {
                brouillon.DescMsg = brouillon.DescMsg.Substring(brouillon.DescMsg.Length - 229);
            }
            var message = EnregistrerMessage(brouillon);

            context.PPMessages.InsertOnSubmit(message);
            context.SubmitChanges();

            return(Json(brouillon));
        }
        private PPMessage EnregistrerMessage(BrouillonViewModel brouillon, PPMessage msg = null)
        {
            if (msg == null)
            {
                msg = new PPMessage();
            }

            brouillon.destinataires = brouillon.destinataires ?? new List <int?>();

            msg.NoMsg        = (int)brouillon.NoMsg.GetValueOrDefault(msg.NoMsg);
            msg.DescMsg      = brouillon.DescMsg;
            msg.Lieu         = brouillon.Lieu;
            msg.objet        = brouillon.objet;
            msg.dateEnvoi    = DateTime.Now;
            msg.NoExpediteur = (int)SessionUtilisateur.UtilisateurCourant.No;

            var destinataires            = msg.PPDestinataires.ToList();
            var NosDestinatairesAAjouter = new List <int?>(brouillon.destinataires);
            var NosDestinatairesADelete  = new List <int>();

            foreach (var dest in destinataires)
            {
                if (dest.NoDestinataire < 0 && dest.NoDestinataire > -4)
                {
                    context.PPDestinataires.DeleteAllOnSubmit(msg.PPDestinataires);
                    msg.PPDestinataires.AddRange(ConvToDestinataire(CasSpeciaux(dest.NoDestinataire), msg));
                    return(msg);
                }

                if (!brouillon.destinataires.Contains(dest.NoDestinataire))
                {
                    NosDestinatairesADelete.Add(dest.NoDestinataire);
                }
                else
                {
                    NosDestinatairesAAjouter.Remove(dest.NoDestinataire);
                }
            }

            var destinatairesADelete = (from dest in context.PPDestinataires
                                        where NosDestinatairesADelete.Contains(dest.NoDestinataire)
                                        select dest);

            context.PPDestinataires.DeleteAllOnSubmit(destinatairesADelete);

            List <PPDestinataire> destinatairesObj = new List <PPDestinataire>(NosDestinatairesAAjouter.Count);

            foreach (var noDest in NosDestinatairesAAjouter)
            {
                if (noDest < 0)
                {
                    context.PPDestinataires.DeleteAllOnSubmit(msg.PPDestinataires);
                    msg.PPDestinataires.AddRange(ConvToDestinataire(CasSpeciaux((int)noDest), msg));
                    return(msg);
                }

                if (!noDest.HasValue)
                {
                    continue;
                }

                var objDest = new PPDestinataire
                {
                    NoMsg          = msg.NoMsg,
                    NoDestinataire = noDest.Value
                };
                destinatairesObj.Add(objDest);
            }

            msg.PPDestinataires.AddRange(destinatairesObj);
            context.PPDestinataires.InsertAllOnSubmit(destinatairesObj);

            return(msg);
        }