// GET: PDCAs public ActionResult Index() { List <PDCA> temp = ServicePDCA.GetPDCAByPilote(User.Identity.Name); ApplicationUser user = ServiceUser.getUserWD(User.Identity.Name); Zone zone = ServiceZone.GetZoneBypliote(user.pilote); //checking if pilote already asked for a certifcation Semaine semaine = ServiceSemaine.getLastSemaineWD(); bool certificationasked = false; List <Audit> auditscertif = semaine.audits.Where(a => a.TypeAudit.Equals("Certification")).ToList <Audit>(); foreach (var item in auditscertif) { if (item.zone.PiloteZoneObli.PiloteId == user.pilote.PiloteId) { certificationasked = true; } if (item.zone.PiloteZoneOpti != null) { if (item.zone.PiloteZoneOpti.PiloteId == user.pilote.PiloteId) { certificationasked = true; } } } PilotepdcaViewModel PPVM = new PilotepdcaViewModel { pdcas = temp, zone = zone, pilote = user.pilote, certificationasked = certificationasked }; return(View(PPVM)); }
// GET: Delegation public ActionResult demanderdelegation([Bind] DelagationViewModel vm) { Delegation delegation = new Delegation(); delegation.Delegate = ServiceAuditeur.GetAuditeur(vm.audit); delegation.Concernedaudit = ServiceAudit.getAuditdetached(vm.AuditId); delegation.Delegator = ServiceAuditeur.GetAuditeur(ServiceUser.getAuditeurUser(User.Identity.Name)); delegation.semaine = ServiceSemaine.getCurrentSemaine(); ServiceDelegation.addDelegation(delegation); return(RedirectToAction("Index", "Auditeur")); }
static public void RemindLateAudit() { //Getting this week ready this is abdallah //Semaine semaineactuelle = ServiceSemaine.addSemaine(semaineactuelle); ; List <Audit> nonaudits = ServiceSemaine.getCurrentSemaineWD().audits.Where(a => !a.isCompleted && a.AuditDay < DateTime.Now).ToList(); foreach (var item in nonaudits) { ApplicationUser auditeuruser = ServiceUser.getUserAuditeur(item.auditeur.AuditeurId); ApplicationUser piloteuser = ServiceUser.getUserPilote(item.zone.PiloteZoneObli.PiloteId); ServiceEmail.sendEmail(auditeuruser.Email, "Rappel d'audit", item.AuditDay + " a passé, s'il vous plaît effectuer l'audit de la zone " + item.zone.NomZone); ServiceEmail.sendEmail(piloteuser.Email, "Rappel d'audit", item.AuditDay + " a passé, s'il vous plaît effectuer l'audit de la zone " + item.zone.NomZone); ApplicationUser optpiloteuser = ServiceUser.getUserPilote(item.zone.PiloteZoneOpti.PiloteId); if (optpiloteuser != null) { ServiceEmail.sendEmail(optpiloteuser.Email, "Rappel d'audit", item.AuditDay + " a passé, s'il vous plaît effectuer l'audit de la zone " + item.zone.NomZone); } } }
static List <Audit> getzonesnonauditées() { List <Audit> audits = ServiceSemaine.getCurrentSemaineWD().audits.Where(a => !a.isCompleted).ToList(); return(audits); }
public void Assign() { Semaine semaineactuelle = ServiceSemaine.getLastSemaine(); if (!semaineactuelle.isCurrent) { semaineactuelle.isCurrent = true; ServiceSemaine.updateSemaine(semaineactuelle); } else { //Getting this week ready this is abdallah semaineactuelle = new Semaine(); semaineactuelle.isCurrent = true; semaineactuelle.Datedebut = DateTime.Now; semaineactuelle.Datefin = semaineactuelle.Datedebut.AddDays(6); ServiceSemaine.addSemaine(semaineactuelle); } List <Semaine> Allsemaines = ServiceSemaine.getAllsem(); Allsemaines = Allsemaines.Where(s => s.SemaineId != semaineactuelle.SemaineId).ToList(); foreach (var item in Allsemaines) { item.isCurrent = false; ServiceSemaine.updateSemaine(item); } //I'm going to get the number of "zones" and "auditeurs" //and make sure that I don't choose the same person twice //if there is an other zone to audit and there are auditeurs //that were not yet assigned to any zone //GG dude //modified by abdallah //PS!!!: if i forget to mention it directly always go through the services //see the Services folders and u will instantly get it //and encapsulate the repository inside a Using //so that the repository gets disposed of //thats very critical dude to get rid of the DbContext object //thats a nasty object man its messes every thing when it gets tangled with its own kind dude //They are Jhon Snows they are LONE WOLVES :p List <Zone> zones = ServiceZone.GetAllZones(); int numZones = zones.Count; //same here List <Auditeur> auditeurs = ServiceAuditeur.GetAllAuditeurs(); int numAuditeurs = auditeurs.Count; List <int> auditeursPris = new List <int>(numAuditeurs); for (int i = 0; i < numAuditeurs; i++) { auditeursPris.Add(0); } Random rand = new Random(); int r; int numAssignments = 0; for (int i = 0; i < numZones; i++) { if (numAssignments == numAuditeurs) { auditeursPris.Clear(); for (int j = 0; j < numAuditeurs; j++) { auditeursPris.Add(0); } numAssignments = 0; } r = rand.Next(0, numAuditeurs); while (auditeursPris[r] != 0 && numAssignments < numAuditeurs) { r = rand.Next(0, numAuditeurs); } numAssignments++; auditeursPris[r] = 1; //Adding Audits. this is abdallah Audit audittemp = new Audit(); audittemp.TypeAudit = "Regulier"; audittemp.semaine = semaineactuelle; audittemp.auditeur = auditeurs[r]; audittemp.zone = zones[i]; audittemp.AuditDay = semaineactuelle.Datedebut.AddDays(rand.Next(2, 6)); audittemp.isInProgress = false; audittemp.isCompleted = false; ServiceAudit.addAudit(audittemp); Console.WriteLine("l'auditeur " + auditeurs[r].Nom + " est affecté à la zone" + zones[i].NomZone); //Sending mail to Auditeur //ServiceEmail.sendEmail(auditeurs[r].Mail, "Information sur un prochain Audit", " La zone " + zones[i].NomZone + " sera auditée le jour J par l’auditeur " + auditeurs[r].Nom + " " + auditeurs[r].Prenom + ", merci de vous fixer l’heure de l’audit "); //sending mail To Audité aka pilote zone its not provided //ServiceEmail.sendEmail("no access to company emails", "Information sur un Audit cette semaine", " La zone " + zones[i].NomZone + " sera auditée le jour J par l’auditeur " + auditeurs[r].Nom + " " + auditeurs[r].Prenom + ", merci de vous fixer l’heure de l’audit "); } }