public void Delete(ag_upsideo_clientemailing emailing)
 {
     try
     {
         using (Data.Model.UpsilabEntities context = new UpsilabEntities())
         {
             var _rec = context.ag_upsideo_clientemailing.FirstOrDefault(x => x.idemailingclient == emailing.idemailingclient);
             _rec.deleted = "o";
             context.SaveChanges();
         }
     }
     catch (Exception e)
     {
         Log.Log.AppendException(e);
         throw new Exception("SavingError");
     }
 }
        public int Add(int idemailing, Guid idcgp, string a, string cc, string objet, string msg, Dictionary<string,string> files, bool isdraft)
        {
            using (Data.Model.UpsilabEntities context = new UpsilabEntities())
            {
                context.Connection.Open();
                using (var dbContextTransaction = context.Connection.BeginTransaction())
                {
                    ag_upsideo_clientemailing _emailing = null;
                    try
                    {
                        if (idemailing <= 0)
                        {
                            _emailing = new ag_upsideo_clientemailing
                            {
                                idcgp = idcgp,
                                a = a,
                                cc = cc,
                                datecreation = DateTime.Now,
                                draft = isdraft,
                                objet = objet,
                                message = msg
                            };


                            context.ag_upsideo_clientemailing.AddObject(_emailing);
                            context.SaveChanges();
                            //
                            //
                            //
                            if (files != null && files.Count() > 0)
                            {
                                foreach (var file in files)
                                {
                                    var _attached = new ag_upsideo_clientemailing_attachedfile { idemailingclient = _emailing.idemailingclient, location = file.Value, name = file.Key };
                                    context.ag_upsideo_clientemailing_attachedfile.AddObject(_attached);
                                    context.SaveChanges();
                                }
                            }
                        }
                        else
                        {
                            _emailing = context.ag_upsideo_clientemailing.FirstOrDefault(x => x.idemailingclient == idemailing);
                            _emailing.a = a;
                            _emailing.cc = cc;
                            _emailing.draft = isdraft;
                            _emailing.objet = objet;
                            _emailing.message = msg;
                            context.SaveChanges();

                            if (files != null && files.Count() > 0)
                            {
                                var tmpfiles = files.Select(x => x).ToDictionary(x => x.Key, x => x.Value);
                                foreach (var dbattached in _emailing.ag_upsideo_clientemailing_attachedfile)
                                {
                                    if (!files.ContainsKey(dbattached.name.Trim()))
                                    {
                                        tmpfiles.Remove(dbattached.name.Trim());
                                        dbattached.deleted = "o";
                                        context.SaveChanges();
                                    }
                                }
                                //
                                //
                                //
                                if (tmpfiles.Count > 0)
                                {
                                    foreach (var file in tmpfiles)
                                    {
                                        var _attached = new ag_upsideo_clientemailing_attachedfile { idemailingclient = _emailing.idemailingclient, location = file.Value, name = file.Key };
                                        context.ag_upsideo_clientemailing_attachedfile.AddObject(_attached);
                                        context.SaveChanges();
                                    }
                                }
                            }
                        }
                        //
                        //
                        //
                        dbContextTransaction.Commit();
                        return _emailing.idemailingclient;
                    }
                    catch (Exception e)
                    {
                        dbContextTransaction.Rollback();
                        Log.Log.AppendException(e);
                        throw new Exception("SavingError");
                    }
                }

            }
        }
 public void Update(ag_upsideo_clientemailing emailing)
 {
     try
     {
         using (Data.Model.UpsilabEntities context = new UpsilabEntities())
         {
             var _rec = context.ag_upsideo_clientemailing.FirstOrDefault(x => x.idemailingclient == emailing.idemailingclient);
             _rec.cc = emailing.cc;
             _rec.a = emailing.a;
             _rec.objet = emailing.objet;
             _rec.message = emailing.message;
             context.SaveChanges();
         }
     }
     catch (Exception e)
     {
         Log.Log.AppendException(e);
         throw new Exception("SavingError");
     }
 }