public override void AjouterPrincesse() { PersonnageAbstrait g = Fabrique.CreerPrincesse(String.Format("Princesse {0}", PersonnagesList.Count), Fabrique.CreerPosition(coordMaison.X, coordMaison.Y), coordMaison); PersonnagesList.Add(g); ListObservateur.Add(g); meteo.ListObservateur.Add(g); }
public override void AjouterReine() { if (PersonnagesList.Where(x => x.GetType().Equals(typeof(Reine))).Count() == 0) { reine = (Reine)Fabrique.CreerReine("La reine", coordMaison); PersonnagesList.Add(reine); } }
private static IRendezVous InitialiserRendezVous(PayloadRendezVous payload) { IRendezVous rdv = Fabrique.Get <IRendezVous>(); switch (payload.Data.Status) { case StatusExcused: rdv.Sujet = $"EXCUSE - [rdv-solidarités] - {Sanitize(payload.Data.Motif.Name, SanitizeSujet)}"; rdv.StatutAffichage = StatutAffichage.Disponible; break; case StatusNotExcused: rdv.Sujet = $"NON EXCUSE - [rdv-solidarités] - {Sanitize(payload.Data.Motif.Name, SanitizeSujet)}"; rdv.StatutAffichage = StatutAffichage.Disponible; break; default: rdv.Sujet = $"[rdv-solidarités] - {Sanitize(payload.Data.Motif.Name, SanitizeSujet)}"; rdv.StatutAffichage = StatutAffichage.AbsentduBureau; break; } rdv.Lieu = Sanitize(payload.Data.Address, SanitizeLieu); int duration = int.Parse(payload.Data.DurationInMin, CultureInfo.InvariantCulture); rdv.Debut = DateTime.ParseExact(payload.Data.StartsAt, "yyyy-MM-dd HH:mm:ss zzz", CultureInfo.InvariantCulture); rdv.Fin = rdv.Debut.Add(new TimeSpan(0, duration, 0)); AgentRendezVous organisateur = payload.Data.Agents[0]; IParticipant po = Fabrique.Get <IParticipant>(); po.Nom = Sanitize($"{organisateur.LastName} {organisateur.FirstName}", SanitizeNom).Trim(); po.Courriel = organisateur.Email.ToLowerInvariant(); rdv.Organisateur = po; rdv.RappelMinutesAvantDebut = RappelMinutesAvantDebut; rdv.ExternalId = payload.Data.Uuid; StringBuilder sb = new StringBuilder(); if (payload.Data.Users.Count > 1) { sb.Append("Usagers concernés : <br/>"); } for (int i = 0; i < payload.Data.Users.Count; i++) { sb.Append($"Usager n°{i + 1}"); sb.Append("<ul>"); sb.Append($"{payload.Data.Users[i].ToHtml()}"); sb.Append("</ul>"); } rdv.Description = sb.ToString(); return(rdv); }
public override void AjouterTermite() { System.Windows.Application.Current.Dispatcher.Invoke( DispatcherPriority.Normal, (Action) delegate() { PersonnagesList.Add(Fabrique.CreerTermite(String.Format("Termite {0}", PersonnagesList.Count), Fabrique.CreerPosition(DimensionX, DimensionY), coordMaison)); } ); }
public override void InitZones() { for (int i = 0; i < DimensionX; i++) { for (int j = 0; j < DimensionY; j++) { ZoneList.Add(Fabrique.CreerZone(String.Format("Zone en X={0}, Y={1}", i, j), Fabrique.CreerPosition(i, j))); } } }
public void AjouteNourriture() { CoordonneesAbstrait position = new Coordonnees(Hazard.Next(1, DimensionX), Hazard.Next(1, DimensionY)); while (position.X.Equals(coordMaison.X) || position.Y.Equals(coordMaison.Y)) { position = new Coordonnees(Hazard.Next(1, DimensionX), Hazard.Next(1, DimensionY)); } ObjetList.Add(Fabrique.CreerNourriture("Nourriture N " + ObjetList.Count, position)); }
public override void FournirAcces() { foreach (var unInsecte in PersonnagesList) { List <ZoneAbstrait> zoneAdjacentes = new List <ZoneAbstrait>(); zoneAdjacentes.AddRange(ZoneList.Where(x => x.Position.X > (unInsecte.Position.X - 2) && x.Position.X <(unInsecte.Position.X + 2) && x.Position.Y> (unInsecte.Position.Y - 2) && x.Position.Y < (unInsecte.Position.Y + 2) )); unInsecte.ChoixZoneSuivante = Fabrique.CreerAcces(zoneAdjacentes); } }
private static IList <IRendezVous> ChercherRendezVousDansLeMois(IRendezVous rendezVous) { ICritereRechercheRendezVousParExternalId crrv = Fabrique.Get <ICritereRechercheRendezVousParExternalId>(); crrv.Organisateur = rendezVous.Organisateur; crrv.DateDebutRecherche = new DateTime(rendezVous.Debut.Year, rendezVous.Debut.Month, 1); crrv.DateFinRecherche = new DateTime(rendezVous.Debut.Year, rendezVous.Debut.Month, 30); crrv.NombreMaximumResultats = NombreMaximumResultats; crrv.ExternalId = rendezVous.ExternalId; return(Fabrique.Get <IServiceExchange>().RechercherRendezVous(crrv)); }
/// <summary> /// Méthode de chargement des cocktails /// </summary> /// <returns>en retournant une collection de cocktails</returns> public IEnumerable <Cocktail> loadCocktail() { cocktailFile = XDocument.Load(dirData + "cocktails.xml"); IEnumerable <Cocktail> liste = new List <Cocktail>(); liste = cocktailFile.Descendants("cocktail").Select(cocktail => Fabrique.creerCocktail ( cocktail.Element("nom").Value, cocktail.Element("recette").Value, cocktail.Element("ingredients").Descendants("ingredient").Select(ing => new Ingredient(ing.Element("nom").Value, Convert.ToInt32(ing.Element("quantite").Value), Fabrique.convertToUnite(ing.Element("unite").Value))).ToList(), cocktail.Element("commentaires").Descendants("commentaire").ToDictionary(item => new User(item.Attribute("pseudo").Value), item => new Commentaire(item.Element("titre").Value, item.Element("texte").Value, Convert.ToInt16(item.Element("note").Value)) ), cocktail.Element("url").Value )); return(liste); }
public HttpResponseMessage NewCalendarEvent() { Log.EcrireInfo("[NewCalendarEvent] > Nouvel événement reçu"); if (Request == null) { return(HttpResponseMessageNoCache(new Reponse { Erreur = "Erreur interne", Signature = false })); } DumpRequest("NewCalendarEvent"); string message = Request.Content.ReadAsStringAsync().Result; if (string.IsNullOrEmpty(message)) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, new Reponse() { Erreur = "Message vide", Signature = false })); } Log.EcrireDebug($"[NewCalendarEvent] > Message reçu : {message}"); IControleurRdvs cr = Fabrique.Get <IControleurRdvs>(); try { cr.ControlerRequest(Request, message); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, new Reponse() { Erreur = ex.Message, Signature = false })); } try { cr.CreerRendezVous(message); } catch (Exception ex) { Log.EcrireErreur($"[NewCalendarEvent] >> Erreur >> {ex.Message}"); Log.EcrireErreur($"[NewCalendarEvent] >> Erreur >> StackTrace : {ex.StackTrace}"); return(Request.CreateResponse(HttpStatusCode.InternalServerError, new Reponse() { Erreur = ex.Message, Signature = true })); } return(HttpResponseMessageNoCache(new Reponse { Signature = true })); }
public void CreerRendezVous(string message) { // La balise Meta est commune // On désérialise sur un payload quelconque pour la récupérer Meta meta = JsonConvert.DeserializeObject <PayloadRendezVous>(message).Meta; IPayload payload; IRendezVous rendezVous; if (TypeRendezVous.Equals(meta.Model, StringComparison.Ordinal)) { payload = DeserialiserRendezVous(message); rendezVous = InitialiserRendezVous((PayloadRendezVous)payload); } else if (TypePlageOuverture.Equals(meta.Model, StringComparison.Ordinal)) { payload = DeserialiserPlageOuverture(message); rendezVous = InitialiserPlageOuverture((PayloadPlageOuverture)payload); } else { throw new NotSupportedException("Model non supporté."); } switch (meta.Event) { case Create: Log.EcrireInfo("[NewCalendarEvent] >> Nouveau rdv"); LogEvent(rendezVous); Fabrique.Get <IServiceExchange>().CreerRendezVous(rendezVous); break; case Update: Log.EcrireInfo("[NewCalendarEvent] >> mise à jour rdv"); LogEvent(rendezVous); IList <IRendezVous> lrvm = ChercherRendezVousDansLeMois(rendezVous); if (!lrvm.Any()) { throw new InvalidDataException("Aucune plage trouvée dans le mois spécifié."); } rendezVous.Id = lrvm[0].Id; // La recherche donne au moins 1 rdv de la série que je réutilise avec les nouvelles données Fabrique.Get <IServiceExchange>().ModifierRendezVous(rendezVous, true); break; case Delete: Log.EcrireInfo("[NewCalendarEvent] >> Suppression rdv"); LogEvent(rendezVous); IList <IRendezVous> lrvs = ChercherRendezVousDansLeMois(rendezVous); if (!lrvs.Any()) { throw new InvalidDataException("Aucune plage trouvée dans le mois spécifié."); } Fabrique.Get <IServiceExchange>().SupprimerRendezVous(lrvs[0], true); break; default: throw new NotSupportedException(); } }