public static void UpdateFournisseur(AgregFournisseurViewModel frn)
        {
            var model = ViewModelToModel(frn);
            var frn_data = AgregFournisseurModel.FournisseurModelToAg_upsideo_fournisseur(model);            
            //var frncode_data = AgregFournisseurCodeBL.GetFournisseurCodeByFournisseurId(frn.IdFournisseur);
            var frncode_data = AgregFournisseurCodeBL.GetFournisseurCodeById(frn.IdFournisseurCode);
            if (frncode_data == null)
            {
                frncode_data = new ag_upsideo_fournisseur_code
                {
                    id = -1,
                    idcgp = model.IdCgp,
                    idfrontfournisseur = model.IdFrontFournisseur,
                    login = model.Login,
                    code1 = model.Code1,
                    code2 = model.Code2,
                    code3 = model.Code3
                };
            }
            else
            {
                frncode_data.login = model.Login;
                frncode_data.code1 = model.Code1;
                frncode_data.code2 = model.Code2;
                frncode_data.code3 = model.Code3;
            }

            AgregFournisseurBL.UpdateFournisseur(frn_data, frncode_data);
        }
        public static AgregFournisseurModel AddFournisseurRetour(ag_upsideo_fournisseur frn, ag_upsideo_fournisseur_code frncode)
        {
            using (Data.Model.UpsilabEntities context = new UpsilabEntities())
            {
                context.Connection.Open();
                using (var dbContextTransaction = context.Connection.BeginTransaction())
                {
                    try
                    {
                        frn.deleted = "n";
                        context.ag_upsideo_fournisseur.AddObject(frn);
                        context.SaveChanges();
                        //
                        //
                        //
                        frncode.idfrontfournisseur = frn.idfrontfournisseur;
                        context.ag_upsideo_fournisseur_code.AddObject(frncode);
                        context.SaveChanges();
                        //
                        //
                        //
                        dbContextTransaction.Commit();
                    }
                    catch (Exception e)
                    {
                        dbContextTransaction.Rollback();
                        Log.Log.AppendException(e);
                        throw new Exception("SavingError");
                    }
                }

            }
            return AgregFournisseurModel.Ag_upsideo_fournisseurToFournisseurModel(frn, frncode);
        }
        public static AgregFournisseurModel Ag_upsideo_fournisseurToFournisseurModel(ag_upsideo_fournisseur ag_frn, ag_upsideo_fournisseur_code ag_frncode)
        {
            if (ag_frncode == null)
            {
                return new AgregFournisseurModel
                {
                    IdFrontFournisseur = ag_frn.idfrontfournisseur,
                    IdFrontFournisseurCode = -1,
                    IdCrmCabinet = ag_frn.idcrmcabinet,
                    NomFournisseur = ag_frn.nomfournisseur,
                    Adresse = ag_frn.adresse,
                    CleAgreg = ag_frn.cleAgreg,
                    CodePostal = ag_frn.Code_postal,
                    Email = ag_frn.e_mail,
                    Fax = ag_frn.Fax,
                    SiteWeb = ag_frn.Site_Web,
                    Telephone = ag_frn.Téléphone,
                    Ville = ag_frn.Ville,
                    Accordcgp = ag_frn.accordcgp.HasValue ? ag_frn.accordcgp.Value : 0
                };
            }

            if (ag_frn.idfrontfournisseur != ag_frncode.idfrontfournisseur)
                return null;

            return new AgregFournisseurModel
            {
                IdFrontFournisseur = ag_frn.idfrontfournisseur,
                IdFrontFournisseurCode = ag_frncode.id,
                IdCgp = ag_frncode.idcgp.Value,
                IdCrmCabinet = ag_frn.idcrmcabinet,
                NomFournisseur = ag_frn.nomfournisseur,
                Adresse = ag_frn.adresse,
                CleAgreg = ag_frn.cleAgreg,
                CodePostal = ag_frn.Code_postal,
                Email = ag_frn.e_mail,
                Fax = ag_frn.Fax,
                SiteWeb = ag_frn.Site_Web,
                Telephone = ag_frn.Téléphone,
                Ville = ag_frn.Ville,
                Accordcgp = ag_frn.accordcgp.HasValue ? ag_frn.accordcgp.Value : 0,
                //
                //
                //
                Login = ag_frncode.login,
                Code1 = ag_frncode.code1,
                Code2 = ag_frncode.code2,
                Code3 = ag_frncode.code3,
                //
                Statut = ag_frncode.Statut,
                Commentaire = ag_frncode.Commentaire,
                AutorisationTransfertUrl = ag_frn.AutorisationTransfertUrl
            };
        }
        public static AgregFournisseurModel UpdateFournisseurRetour(ag_upsideo_fournisseur frn, ag_upsideo_fournisseur_code frncode)
        {

            using (UpsilabEntities context = new UpsilabEntities())
            {
                context.Connection.Open();
                using (var dbContextTransaction = context.Connection.BeginTransaction())
                {
                    try
                    {
                        //
                        //
                        //
                        var tmpFrn = context.ag_upsideo_fournisseur.Where(f => f.idfrontfournisseur == frn.idfrontfournisseur).FirstOrDefault();
                        tmpFrn.nomfournisseur = frn.nomfournisseur;
                        tmpFrn.Site_Web = frn.Site_Web;
                        tmpFrn.Téléphone = frn.Téléphone;
                        tmpFrn.Ville = frn.Ville;
                        tmpFrn.Fax = frn.Fax;
                        tmpFrn.e_mail = frn.e_mail;
                        tmpFrn.Code_postal = frn.Code_postal;
                        tmpFrn.cleAgreg = frn.cleAgreg;
                        tmpFrn.adresse = frn.adresse;
                        tmpFrn.accordcgp = frn.accordcgp;
                        context.SaveChanges();
                        //
                        //
                        //
                        if (frncode.id == -1)
                        {
                            context.ag_upsideo_fournisseur_code.AddObject(frncode);
                        }
                        else
                        {
                            var tmpFrncode = context.ag_upsideo_fournisseur_code.Where(f => f.id == frncode.id).FirstOrDefault();
                            tmpFrncode.login = frncode.login;
                            tmpFrncode.code1 = frncode.code1;
                            tmpFrncode.code2 = frncode.code2;
                            tmpFrncode.code3 = frncode.code3;
                        }
                        //
                        //
                        //
                        context.SaveChanges();
                        //
                        //
                        //
                        dbContextTransaction.Commit();
                        //                       
                    }
                    catch (Exception ex)
                    {
                        dbContextTransaction.Rollback();
                        Log.Log.AppendException(ex);
                        throw new Exception("SavingError");
                    }
                    return AgregFournisseurModel.Ag_upsideo_fournisseurToFournisseurModel(frn,frncode);
                }
            }
        }