コード例 #1
0
        public static IRendezVous InitialiserPlageOuverture(PayloadPlageOuverture payload)
        {
            IRendezVous rdv = Fabrique.Get <IRendezVous>();

            rdv.Sujet = $"[rdv-solidarités] - {Sanitize($"Plage d'ouverture : {string.Join(" - ", payload.Data.Motifs.Select(i => i.Name))}", SanitizeSujet)}";
            rdv.Lieu  = Sanitize(payload.Data.Lieu.Address, SanitizeLieu);

            DateTime dtd = DateTime.ParseExact(payload.Data.FirstDay, "yyyy-MM-dd", CultureInfo.InvariantCulture);
            DateTime dts = DateTime.ParseExact(payload.Data.StartTime, "HH:mm:ss", CultureInfo.InvariantCulture);
            DateTime dtf = DateTime.ParseExact(payload.Data.EndTime, "HH:mm:ss", CultureInfo.InvariantCulture);

            rdv.Debut = dtd.Add(new TimeSpan(dts.Hour, dts.Minute, dts.Second));
            rdv.Fin   = dtd.Add(new TimeSpan(dtf.Hour, dtf.Minute, dtf.Second));

            Agent        organisateur = payload.Data.Agent;
            IParticipant po           = Fabrique.Get <IParticipant>();

            po.Nom           = Sanitize($"{organisateur.LastName} {organisateur.FirstName}", SanitizeNom).Trim();
            po.Courriel      = organisateur.Email.ToLowerInvariant();
            rdv.Organisateur = po;

            rdv.Recurrence = payload.Data.Rrule;

            rdv.StatutAffichage = StatutAffichage.Occupe;
            rdv.ExternalId      = payload.Data.IcalUid;

            return(rdv);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 private static void LogEvent(IRendezVous rendezVous)
 {
     Log.EcrireInfo($"[NewCalendarEvent] >>> Sujet : {rendezVous.Sujet}");
     Log.EcrireInfo($"[NewCalendarEvent] >>> Du : {rendezVous.Debut:F}");
     Log.EcrireInfo($"[NewCalendarEvent] >>> au : {rendezVous.Fin:F}");
     Log.EcrireInfo($"[NewCalendarEvent] >>> Organisateur :{rendezVous.Organisateur.Courriel}");
     Log.EcrireInfo($"[NewCalendarEvent] >>> Lieu : {rendezVous.Lieu}");
     Log.EcrireInfo($"[NewCalendarEvent] >>> Description : {rendezVous.Description}");
     Log.EcrireInfo($"[NewCalendarEvent] >>> ExternalId : {rendezVous.ExternalId}");
     Log.EcrireInfo($"[NewCalendarEvent] >>> Recurrence : {(string.IsNullOrEmpty(rendezVous.Recurrence) ? "Aucune" : rendezVous.Recurrence)}");
 }
コード例 #4
0
        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));
        }