/// <summary>
        ///     Permet de créer l'objet Salon à partir du model
        /// </summary>
        /// <param name="model">Le model Form</param>
        /// <returns>Salon</returns>
        private Salon CreateSalon(ViewModelFormAddSalon model)
        {
            try
            {
                if (model.IsNull()) return null;

                var listeJours = CreateListeJourOuvertures(model);
                if (listeJours.IsEmpty()) return null;

                var salon = new Salon
                {
                    FicheSalon = new FicheSalon
                    {
                        JourOuvertures = listeJours,
                        Adresse = model.Adresse,
                        CodePostal = model.CodePostal,
                        Pays = model.Pays,
                        Ville = model.NomVille,
                        NombreEmployes = 0,
                        Nom = model.NomSalon,
                        Description = model.DescriptionSalon
                    },
                    ListeAvis = new List<Avis>(),
                    ListeEmployes = new List<Employe>(),
                    Moyenne = 0,
                    PrestationClients = new List<ReservationClient>()
                };
                return salon;
            }
            catch (Exception)
            {
                return null;
            }
        }
        /// <summary>
        ///     Permet de générer la liste des jours ouvertures d'un salon
        /// </summary>
        /// <param name="modelAddSalon">ViewModelAddSalon</param>
        /// <returns>List{JourOuverture}</returns>
        private List<Disponibilite> CreateListeJourOuvertures(ViewModelFormAddSalon model = null)
        {
            try
            {
                if (model.IsNull()) return null;

                //Création des jours
                var listeJour = GetDisponibiliteInit();

                //On attribut les jours
                var lundi = new Disponibilite();
                var mardi = new Disponibilite();
                var mercredi = new Disponibilite();
                var jeudi = new Disponibilite();
                var vendredi = new Disponibilite();
                var samedi = new Disponibilite();
                var dimanche = new Disponibilite();

                foreach (var j in listeJour.Where(j => !j.IsNull() && !j.Jour.IsNull()))
                {
                    switch (j.Jour.Id)
                    {
                        case 1:
                            lundi = j;
                            break;
                        case 2:
                            mardi = j;
                            break;
                        case 3:
                            mercredi = j;
                            break;
                        case 4:
                            jeudi = j;
                            break;
                        case 5:
                            vendredi = j;
                            break;
                        case 6:
                            samedi = j;
                            break;
                        case 7:
                            dimanche = j;
                            break;
                    }
                }

                //Attribution horaire lundi
                lundi.CreneauMatin.DebutHeure = model.LundiOuvertureMatin.Split(':').First().ToInt();
                lundi.CreneauMatin.DebutMinute = model.LundiOuvertureMatin.Split(':').Last().ToInt();
                lundi.CreneauMatin.FinHeure = model.LundiFermetureMatin.Split(':').First().ToInt();
                lundi.CreneauMatin.FinMinute = model.LundiFermetureMatin.Split(':').Last().ToInt();

                lundi.CreneauAprem.DebutHeure = model.LundiOuvertureAprem.Split(':').First().ToInt();
                lundi.CreneauAprem.DebutMinute = model.LundiOuvertureAprem.Split(':').Last().ToInt();
                lundi.CreneauAprem.FinHeure = model.LundiFermetureAprem.Split(':').First().ToInt();
                lundi.CreneauAprem.FinMinute = model.LundiFermetureAprem.Split(':').Last().ToInt();

                //Attribution horaire mardi
                mardi.CreneauMatin.DebutHeure = model.MardiOuvertureMatin.Split(':').First().ToInt();
                mardi.CreneauMatin.DebutMinute = model.MardiOuvertureMatin.Split(':').Last().ToInt();
                mardi.CreneauMatin.FinHeure = model.MardiFermetureMatin.Split(':').First().ToInt();
                mardi.CreneauMatin.FinMinute = model.MardiFermetureMatin.Split(':').Last().ToInt();

                mardi.CreneauAprem.DebutHeure = model.MardiOuvertureAprem.Split(':').First().ToInt();
                mardi.CreneauAprem.DebutMinute = model.MardiOuvertureAprem.Split(':').Last().ToInt();
                mardi.CreneauAprem.FinHeure = model.MardiFermetureAprem.Split(':').First().ToInt();
                mardi.CreneauAprem.FinMinute = model.MardiFermetureAprem.Split(':').Last().ToInt();

                //Attribution horaire mercredi
                mercredi.CreneauMatin.DebutHeure = model.MercrediOuvertureMatin.Split(':').First().ToInt();
                mercredi.CreneauMatin.DebutMinute = model.MercrediOuvertureMatin.Split(':').Last().ToInt();
                mercredi.CreneauMatin.FinHeure = model.MercrediFermetureMatin.Split(':').First().ToInt();
                mercredi.CreneauMatin.FinMinute = model.MercrediFermetureMatin.Split(':').Last().ToInt();

                mercredi.CreneauAprem.DebutHeure = model.MercrediOuvertureAprem.Split(':').First().ToInt();
                mercredi.CreneauAprem.DebutMinute = model.MercrediOuvertureAprem.Split(':').Last().ToInt();
                mercredi.CreneauAprem.FinHeure = model.MercrediFermetureAprem.Split(':').First().ToInt();
                mercredi.CreneauAprem.FinMinute = model.MercrediFermetureAprem.Split(':').Last().ToInt();

                //Attribution horaire jeudi
                jeudi.CreneauMatin.DebutHeure = model.JeudiOuvertureMatin.Split(':').First().ToInt();
                jeudi.CreneauMatin.DebutMinute = model.JeudiOuvertureMatin.Split(':').Last().ToInt();
                jeudi.CreneauMatin.FinHeure = model.JeudiFermetureMatin.Split(':').First().ToInt();
                jeudi.CreneauMatin.FinMinute = model.JeudiFermetureMatin.Split(':').Last().ToInt();

                jeudi.CreneauAprem.DebutHeure = model.JeudiOuvertureAprem.Split(':').First().ToInt();
                jeudi.CreneauAprem.DebutMinute = model.JeudiOuvertureAprem.Split(':').Last().ToInt();
                jeudi.CreneauAprem.FinHeure = model.JeudiFermetureAprem.Split(':').First().ToInt();
                jeudi.CreneauAprem.FinMinute = model.JeudiFermetureAprem.Split(':').Last().ToInt();

                //Attribution horaire vendredi
                vendredi.CreneauMatin.DebutHeure = model.VendrediOuvertureMatin.Split(':').First().ToInt();
                vendredi.CreneauMatin.DebutMinute = model.VendrediOuvertureMatin.Split(':').Last().ToInt();
                vendredi.CreneauMatin.FinHeure = model.VendrediFermetureMatin.Split(':').First().ToInt();
                vendredi.CreneauMatin.FinMinute = model.VendrediFermetureMatin.Split(':').Last().ToInt();

                vendredi.CreneauAprem.DebutHeure = model.VendrediOuvertureAprem.Split(':').First().ToInt();
                vendredi.CreneauAprem.DebutMinute = model.VendrediOuvertureAprem.Split(':').Last().ToInt();
                vendredi.CreneauAprem.FinHeure = model.VendrediFermetureAprem.Split(':').First().ToInt();
                vendredi.CreneauAprem.FinMinute = model.VendrediFermetureAprem.Split(':').Last().ToInt();

                //Attribution horaire samedi
                samedi.CreneauMatin.DebutHeure = model.SamediOuvertureMatin.Split(':').First().ToInt();
                samedi.CreneauMatin.DebutMinute = model.SamediOuvertureMatin.Split(':').Last().ToInt();
                samedi.CreneauMatin.FinHeure = model.SamediFermetureMatin.Split(':').First().ToInt();
                samedi.CreneauMatin.FinMinute = model.SamediFermetureMatin.Split(':').Last().ToInt();

                samedi.CreneauAprem.DebutHeure = model.SamediOuvertureAprem.Split(':').First().ToInt();
                samedi.CreneauAprem.DebutMinute = model.SamediOuvertureAprem.Split(':').Last().ToInt();
                samedi.CreneauAprem.FinHeure = model.SamediFermetureAprem.Split(':').First().ToInt();
                samedi.CreneauAprem.FinMinute = model.SamediFermetureAprem.Split(':').Last().ToInt();

                //Attribution horaire dimanche
                dimanche.CreneauMatin.DebutHeure = model.DimancheOuvertureMatin.Split(':').First().ToInt();
                dimanche.CreneauMatin.DebutMinute = model.DimancheOuvertureMatin.Split(':').Last().ToInt();
                dimanche.CreneauMatin.FinHeure = model.DimancheFermetureMatin.Split(':').First().ToInt();
                dimanche.CreneauMatin.FinMinute = model.DimancheFermetureMatin.Split(':').Last().ToInt();

                dimanche.CreneauAprem.DebutHeure = model.DimancheOuvertureAprem.Split(':').First().ToInt();
                dimanche.CreneauAprem.DebutMinute = model.DimancheOuvertureAprem.Split(':').Last().ToInt();
                dimanche.CreneauAprem.FinHeure = model.DimancheFermetureAprem.Split(':').First().ToInt();
                dimanche.CreneauAprem.FinMinute = model.DimancheFermetureAprem.Split(':').Last().ToInt();

                return new List<Disponibilite>
                {
                    lundi,
                    mardi,
                    mercredi,
                    jeudi,
                    vendredi,
                    samedi,
                    dimanche
                };
            }
            catch (Exception)
            {
                return null;
            }
        }
        /// <summary>
        ///     Permet d'ajouter un salon
        /// </summary>
        /// <param name="admin">AdministrateurFranchise</param>
        /// <param name="salon">Salon</param>
        /// <returns>bool</returns>
        public int AddSalon(ViewModelFormAddSalon model = null)
        {
            try
            {
                if (model.IsNull()) return 0;
                
                var salon = new Salon
                {
                    FicheSalon = new FicheSalon
                    {
                        JourOuvertures = GetDisponibiliteInit(),
                        Adresse = model.Adresse,
                        CodePostal = model.CodePostal,
                        Pays = model.Pays,
                        Ville = model.NomVille,
                        NombreEmployes = 0,
                        Nom = model.NomSalon,
                        Description = model.DescriptionSalon
                    },
                    ListeAvis = new List<Avis>(),
                    ListeEmployes = new List<Employe>(),
                    Moyenne = 0,
                    PrestationClients = new List<ReservationClient>(),
                    IdAbonnement = model.AbonnementId,
                    
                };
                if (salon.IsNull()) return 0;

                //On regarde si il y a une photo de profil du salon
                var rform = new RForm();
                salon.FicheSalon.ImageProfil = rform.GetImage("~/Content/ImagesSalons/", "file", 400, 400);

                Salons.Add(salon);

                SaveChanges();
                return salon.Id;
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        var g = ve.ErrorMessage;
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            ve.PropertyName, ve.ErrorMessage);
                    }
                }
                return 0;
            }
        }