protected override void OnActionExecuting(ActionExecutingContext filterContext) { //On récup l'user var user = GetUserSession(); if (user.IsNull() || user.IsAdministrateurFranchise().IsFalse()) { return; } adminFranchise = UserToAdministrateurFranchise(user); }
/// <summary> /// Permet d'enregistrer en bdd une franchise + compte admin /// </summary> /// <param name="model">ViewModelRegisterFranchise</param> /// <returns>int</returns> public int AddFranchise(ViewModelRegisterFranchise model = null) { try { //On regarde si le model est null if (model.IsNull()) return -1; //On regarde si le mail n'est pas déjà présent dans la bdd var user = Users.FirstOrDefault(u => u.Email.ToLower().Equals(model.Email.ToLower())); if (user.IsNotNull()) return -2; //On récup l'abonnement choisi var abonnement = GetAbonnement(model.AbonnementId); if (abonnement.IsNull()) return -3; //Début du processus de création de la franchise //Création de l'AdministrateurFranchise var administrateurFranchise = new AdministrateurFranchise { Nom = model.Nom, Genre = model.GenreId == 1, Email = model.Email, Password = model.Password.ToMd5(), Prenom = model.Prenom, Role = Roles.Find(3) }; //Création de la franchise var franchise = new Franchise { ListeAdministrateur = new List<AdministrateurFranchise> { administrateurFranchise }, FicheFranchise = new FicheFranchise { Nom = model.NomFranchise, ChiffreAffaire = 0, NombreSalon = 0, NombreEmployes = 0, Adresse = model.Adresse, Ville = model.NomVille, Pays = model.Pays, CodePostal = model.CodePostal } }; //On regarde si un Administrateur posséde le même mail if (ExistUser(administrateurFranchise.Email)) return -4; //On ajoute la franchise à l'admin administrateurFranchise.Franchise = franchise; //Add en bdd Users.Add(administrateurFranchise); Franchises.Add(franchise); //Save de la bdd SaveChanges(); return administrateurFranchise.Id; } catch (Exception e) { var g = e.Message; return -1; } }
/// <summary> /// Permet de savoir si l'utilisateur peut ajouter un employé /// </summary> /// <param name="admin">Admin</param> /// <returns>bool</returns> public bool AuthorizedAddEmploye(AdministrateurFranchise admin = null) { try { if (admin.IsNull()) return false; var g = Franchises.Where(f => f.Id == admin.IdFranchise).Include(f => f.Salons).ToList(); var franchise = Franchises.Include(f => f.Salons).FirstOrDefault(f => f.Id == admin.IdFranchise); if (franchise.IsNull()) return false; return franchise.Salons.Count != 0; //var c = Franchises.Where(f => f.Id == admin.IdFranchise).Include(f => f.Salons).Select(f => f.Salons).Count() != 0; //return c; } catch (Exception) { return false; } }
/// <summary> /// Permet de savoir si l'utilisateur peut ajouter un salon /// </summary> /// <param name="admin">Admin</param> /// <returns>bool</returns> public bool AutorizedAddSalon(AdministrateurFranchise admin = null) { try { if (admin.IsNull()) return false; return GetNombreSalonsRestant(admin) != 0; } catch (Exception) { return false; } }
/// <summary> /// Permet de récupérer le nombre de salons que l'utilisateur peut encore ajouter /// </summary> /// <param name="admin">AdministrateurFranchise</param> /// <returns>int</returns> public int GetNombreSalonsRestant(AdministrateurFranchise admin = null) { try { if (admin.IsNull()) return 0; var max = Franchises.FirstOrDefault(f => f.Id == admin.IdFranchise); var salonActuel = GetNombreSalon(admin); return salonActuel; } catch (Exception) { return 0; } }
/// <summary> /// Permet de récupérer le nombre de salons /// </summary> /// <param name="admin">AdministrateurFranchise</param> /// <returns>int</returns> public int GetNombreSalon(AdministrateurFranchise admin = null) { try { if (admin.IsNull()) return 0; var franchise = GetFranchiseById(admin.IdFranchise); if (franchise.IsNull()) return 0; return franchise.FicheFranchise.NombreSalon; //return Franchises.Where(f => f.Id == admin.IdFranchise).SelectMany(f => f.Salons).Count(); } catch (Exception) { return 0; } }
/// <summary> /// Permet de récupérer le nombre d'employé total d'une franchise /// </summary> /// <param name="admin">AdministrateurFranchise</param> /// <returns>int</returns> public int GetNombreEmployes(AdministrateurFranchise admin = null) { try { if (admin.IsNull()) return 0; var franchise = GetFranchiseById(admin.IdFranchise); if (franchise.IsNull()) return 0; return franchise.FicheFranchise.NombreEmployes; //Franchises.Where(f => f.Id == admin.IdFranchise) // .SelectMany(f => f.Salons).Include(s => s.FicheSalon) // .Sum(s => s.FicheSalon.NombreEmployes); //return // Franchises.Where(f => f.Id == admin.IdFranchise) // .SelectMany(f => f.Salons) // .SelectMany(s => s.ListeEmployes) // .Count(); } catch (Exception) { return 0; } }
/// <summary> /// Permet de récupérer tous les employés des salons via un AdministrateurFranchise /// </summary> /// <param name="admin">AdministrateurFranchise</param> /// <returns>List{Salon}</returns> public List<Employe> GetEmployes(AdministrateurFranchise admin = null) { try { if (admin.IsNull()) return new List<Employe>(); return Franchises.Where(f => f.Id == admin.IdFranchise) .SelectMany(f => f.Salons) .SelectMany(s => s.ListeEmployes).Distinct() .Include(e => e.Salon) .Include(s => s.Salon.FicheSalon) .ToList(); } catch (Exception) { return new List<Employe>(); } }
public bool AccessEmploye(int? idEmploye, AdministrateurFranchise admin = null) { try { if (idEmploye.IsNull() || admin.IsNull()) return false; return Users.OfType<Employe>() .Include(e => e.Salon) .Where(u => u.Id == idEmploye) .FirstOrDefault() .IsNotNull(); } catch (Exception) { return false; } }
/// <summary> /// Permet de récupérer les salons via un AdministrateurFranchise /// </summary> /// <param name="admin">AdministrateurFranchise</param> /// <returns>List{Salon}</returns> public List<Salon> GetSalons(AdministrateurFranchise admin = null) { try { if (admin.IsNull()) return new List<Salon>(); return Franchises.Where(f => f.Id == admin.IdFranchise).SelectMany(f => f.Salons).Include(s => s.ListeEmployes) .Include(s => s.PrestationClients).Include(s => s.FicheSalon).Include(s => s.Abonnement).ToList(); } catch (Exception) { return new List<Salon>(); } }