Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using System.Web;
- using System.Web.Mvc;
- using OPS.BOL;
- using OPS.DAL;
- using OPS.UI.MVC.Models;
- using Repository;
- using Microsoft.AspNet.Identity;
- using Microsoft.AspNet.Identity.EntityFramework;
- using Microsoft.AspNet.Identity.Owin;
- using Microsoft.Owin.Security;
- using Utilitaire;
- using OPS.UI.MVC;
- namespace OPS.Controllers.Admin
- {
- [LayoutOfRole]
- [Authorize(Roles = "Ingenieur Formation")]
- public class CollaborateurController : Controller
- {
- private ApplicationUserManager _userManager;
- public ApplicationUserManager UserManager
- {
- get
- {
- return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
- }
- private set
- {
- _userManager = value;
- }
- }
- private ApplicationSignInManager _signInManager;
- public ApplicationSignInManager SignInManager
- {
- get
- {
- return _signInManager ?? HttpContext.GetOwinContext().Get<ApplicationSignInManager>();
- }
- private set { _signInManager = value; }
- }
- IUnitOfWork uow;
- public CollaborateurController() : this(null, null, new UnitOfWork(new OPSEntities())) { }
- public CollaborateurController(ApplicationUserManager userManager, ApplicationSignInManager signInManager, IUnitOfWork unitOfWork)
- {
- UserManager = userManager;
- SignInManager = signInManager;
- this.uow = unitOfWork;
- }
- public void ChangePasswordAdmin()
- {
- var user = UserManager.FindByName("Admin");
- // validate password using PasswordValidator.Validate
- PasswordHasher pw = new PasswordHasher();
- user.PasswordHash = pw.HashPassword("Vince19620136");
- UserManager.Update(user);
- }
- public void AjouterRole()
- {
- var roleManager = new RoleManager<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
- if (!roleManager.RoleExists("Ingenieur Formation"))
- {
- var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
- role.Name = "Ingenieur Formation";
- roleManager.Create(role);
- }
- }
- // GET: ListeCollaborateurs
- public ActionResult Index(string SuccessMessage)
- {
- ViewBag.NbElementMax = uow.Repository<CollaborateurAfpa>().GetAlls().Count();
- ViewBag.SuccessMessage = SuccessMessage;
- return View();
- }
- public ActionResult GetListeCollaborateurs(int CurrentPage, int NbElementParPage)
- {
- List<CollaborateurAfpa> ListeCollaborateurs = new List<CollaborateurAfpa>();
- ListeCollaborateurs = uow.Repository<CollaborateurAfpa>().Get(o => true,
- c => c.OrderBy(co => co.MatriculeCollaborateurAfpa),
- page: CurrentPage, pageSize: NbElementParPage).ToList();
- return PartialView("_ListeCollaborateurs", ListeCollaborateurs);
- }
- public ActionResult Create()
- {
- Charger_Listes();
- return View(new CollaborateurAfpa());
- }
- private void Charger_Listes()
- {
- // Récupération de la liste des établissements
- var requeteEtablissement = uow.Repository<Etablissement>().GetAlls().OrderBy(e => e.NomEtablissement);
- List<SelectListItem> ListeEtablissements = new List<SelectListItem>();
- foreach (var item in requeteEtablissement)
- {
- ListeEtablissements.Add((new SelectListItem()
- {
- Text = item.NomEtablissement,
- Value = item.IdEtablissement.ToString()
- }));
- }
- // Récupération de la liste des UOs
- var requeteUO = uow.Repository<UniteOrganisationnelle>().GetAlls().OrderBy(uo => uo.LibelleUO);
- List<SelectListItem> ListeUOs = new List<SelectListItem>();
- foreach (var item in requeteUO)
- {
- ListeUOs.Add((new SelectListItem()
- {
- Text = item.LibelleUO,
- Value = item.UO
- }));
- }
- // Récupération de la liste des collaborateurs
- var requeteCollaborateur = uow.Repository<CollaborateurAfpa>().GetAlls();
- List<SelectListItem> ListeCollaborateurs = new List<SelectListItem>();
- foreach (var item in requeteCollaborateur)
- {
- ListeCollaborateurs.Add((new SelectListItem()
- {
- Text = item.MatriculeCollaborateurAfpa + " : " + item.NomCollaborateur + " " + item.PrenomCollaborateur,
- Value = item.MatriculeCollaborateurAfpa
- }));
- }
- ViewBag.IdEtablissement = ListeEtablissements;
- ViewBag.UO = ListeUOs;
- ViewBag.DependDE = ListeCollaborateurs;
- }
- [HttpPost]
- public async Task<ActionResult> Create(CollaborateurAfpa newCollaborateur, string Role)
- {
- if (ModelState.IsValid)
- {
- uow.Repository<CollaborateurAfpa>().Insert(newCollaborateur);
- var user = new ApplicationUser { UserName = newCollaborateur.MatriculeCollaborateurAfpa };
- user.Theme = Themes.Get_Liste_Themes()["Cerulean"];
- user.Email = newCollaborateur.MailCollaborateurAfpa;
- var result = await UserManager.CreateAsync(user);
- if (result.Succeeded)
- {
- // Affecter l'utilisateur dans le rôle sélectionné
- UserManager.AddToRole(user.Id, Role);
- // Mise à jour du collaborateur -> lien vers l'utilisateur créé
- newCollaborateur.UserID = user.Id;
- uow.SaveChanges();
- // Pour plus d'informations sur l'activation de la confirmation du compte et la réinitialisation du mot de passe, consultez http://go.microsoft.com/fwlink/?LinkID=320771
- // Envoyer un message électronique avec ce lien
- string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
- var callbackUrl = Url.Action("SetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
- TitreCivilite TitreCivilite = uow.Repository<TitreCivilite>().Find(newCollaborateur.CodeTitreCivilite);
- string civ = "";
- if (TitreCivilite != null)
- {
- civ = TitreCivilite.TitreCiviliteComplet;
- }
- string nomCollaborateur = civ + " " + newCollaborateur.NomCollaborateur;
- string body = Utilitaire.GererEMail.EmailConfirmInscription(user.UserName, callbackUrl, nomCollaborateur);
- Utilitaire.GererEMail.SendEMail(user.Email, "Réinitialiser mot de passe", body);
- return RedirectToAction("Index", new { SuccessMessage = "Ajout du nouveau collaborateur réussi ! \n Un e-mail de confirmation d'inscription lui a été envoyé !" });
- }
- AddErrors(result);
- }
- Charger_Listes();
- return View(newCollaborateur);
- }
- public ActionResult Edit(string matricule)
- {
- CollaborateurAfpa collaborateur = uow.Repository<CollaborateurAfpa>().Find(matricule);
- Charger_Listes_Default_Value(collaborateur);
- var user = UserManager.FindById(collaborateur.UserID);
- if (user != null)
- {
- ViewBag.Role = user.Roles.FirstOrDefault().RoleId;
- }
- return View(collaborateur);
- }
- private void Charger_Listes_Default_Value(CollaborateurAfpa collaborateur)
- {
- // Récupération de la liste des établissements
- var requeteEtablissement = uow.Repository<Etablissement>().GetAlls().OrderBy(e => e.NomEtablissement);
- List<SelectListItem> ListeEtablissements = new List<SelectListItem>();
- foreach (var item in requeteEtablissement)
- {
- ListeEtablissements.Add((new SelectListItem()
- {
- Text = item.NomEtablissement,
- Value = item.IdEtablissement.ToString(),
- Selected = collaborateur.IdEtablissement == item.IdEtablissement ? true : false
- }));
- }
- // Récupération de la liste des UOs
- var requeteUO = uow.Repository<UniteOrganisationnelle>().GetAlls().OrderBy(uo => uo.LibelleUO);
- List<SelectListItem> ListeUOs = new List<SelectListItem>();
- foreach (var item in requeteUO)
- {
- ListeUOs.Add((new SelectListItem()
- {
- Text = item.LibelleUO,
- Value = item.UO,
- Selected = collaborateur.UO == item.UO ? true : false
- }));
- }
- // Récupération de la liste des collaborateurs
- var requeteCollaborateur = uow.Repository<CollaborateurAfpa>().GetAlls();
- List<SelectListItem> ListeCollaborateurs = new List<SelectListItem>();
- foreach (var item in requeteCollaborateur)
- {
- ListeCollaborateurs.Add((new SelectListItem()
- {
- Text = item.MatriculeCollaborateurAfpa + " : " + item.NomCollaborateur + " " + item.PrenomCollaborateur,
- Value = item.MatriculeCollaborateurAfpa,
- Selected = collaborateur.MailCollaborateurAfpa == item.MatriculeCollaborateurAfpa ? true : false
- }));
- }
- ViewBag.IdEtablissement = ListeEtablissements;
- ViewBag.UO = ListeUOs;
- ViewBag.DependDE = ListeCollaborateurs;
- }
- [HttpPost]
- public async Task<ActionResult> Edit(CollaborateurAfpa collaborateur, string Role)
- {
- if (ModelState.IsValid)
- {
- uow.Repository<CollaborateurAfpa>().Update(collaborateur);
- string message = "Enregistrement du collaborateur réussi !";
- var user = UserManager.FindByName(collaborateur.MatriculeCollaborateurAfpa);
- if (user == null)
- {
- user = new ApplicationUser { UserName = collaborateur.MatriculeCollaborateurAfpa };
- user.Email = collaborateur.MailCollaborateurAfpa;
- var result = await UserManager.CreateAsync(user);
- if (result.Succeeded)
- {
- // Affecter l'utilisateur dans le rôle sélectionné
- UserManager.AddToRole(user.Id, Role);
- // Mise à jour du collaborateur -> lien vers l'utilisateur créé
- collaborateur.UserID = user.Id;
- // Pour plus d'informations sur l'activation de la confirmation du compte et la réinitialisation du mot de passe, consultez http://go.microsoft.com/fwlink/?LinkID=320771
- // Envoyer un message électronique avec ce lien
- string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
- var callbackUrl = Url.Action("SetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
- TitreCivilite TitreCivilite = uow.Repository<TitreCivilite>().Find(collaborateur.CodeTitreCivilite);
- string civ = "";
- if (TitreCivilite != null)
- {
- civ = TitreCivilite.TitreCiviliteComplet;
- }
- string nomCollaborateur = civ + " " + collaborateur.NomCollaborateur;
- string body = Utilitaire.GererEMail.EmailConfirmInscription(user.UserName, callbackUrl, nomCollaborateur);
- Utilitaire.GererEMail.SendEMail(user.Email, "Réinitialiser mot de passe", body);
- message += "\n L'utilisateur n'étant pas déjà inscrit, un e-mail de confirmation d'inscription lui a été envoyé !";
- }
- AddErrors(result);
- }
- user.Email = collaborateur.MailCollaborateurAfpa;
- UserManager.Update(user);
- uow.SaveChanges();
- return RedirectToAction("Index", new { SuccessMessage = message });
- }
- Charger_Listes_Default_Value(collaborateur);
- return View(collaborateur);
- }
- private void AddErrors(IdentityResult result)
- {
- foreach (var error in result.Errors)
- {
- ModelState.AddModelError("", error);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement