public static ValidationResult Validate(GestionPhotoImmobilier.Models.Seance seance)
        {
            if (seance.DateSeance != null)
            {
                DateTime?date           = seance.DateSeance;
                DateTime dateMaintenant = DateTime.Now;
                dateMaintenant = dateMaintenant.AddHours(-(dateMaintenant.Hour));
                dateMaintenant = dateMaintenant.AddMinutes(-(dateMaintenant.Minute));
                dateMaintenant = dateMaintenant.AddSeconds(-(dateMaintenant.Second));
                dateMaintenant = dateMaintenant.AddMilliseconds(-(dateMaintenant.Millisecond));

                DateTime dateMaintenantPlusUnJour  = dateMaintenant.AddDays(1);
                DateTime dateMaintenantPlus15Jours = dateMaintenant.AddDays(15);

                if (date.Value.Day == dateMaintenantPlusUnJour.Day && date.Value.Month == dateMaintenantPlusUnJour.Month && date.Value.Year == dateMaintenantPlusUnJour.Year)
                {
                    return(ValidationResult.Success);
                }
                if (date < dateMaintenantPlusUnJour)
                {
                    return(new ValidationResult("La date doit être supérieur à une journée suivant la date du jour"));
                }
                if (date >= dateMaintenantPlus15Jours)
                {
                    return(new ValidationResult("La date doit être inférieure ou égale à 15 journée suivant la date du jour"));
                }
            }
            return(ValidationResult.Success);
        }
Ejemplo n.º 2
0
        public static ValidationResult Validate(GestionPhotoImmobilier.Models.Seance seance)
        {
            UnitOfWork unitofWork = new UnitOfWork();

            // Il doit y avoir un minimum de 4h entre deux rendez-vous
            // pour un même phtographe la même journée

            if (seance == null)
            {
                return(ValidationResult.Success);
            }

            foreach (var sea in unitofWork.SeanceRepository.ObtenirSeance())
            {
                // Si la séance n'a pas de date. Ne devrait jamais arrivé.
                if (sea.DateSeance == null)
                {
                    return(ValidationResult.Success);
                }

                // Si la séance n'a aucun rendez vous de lié.
                //if (unitofWork.RdvRepository.ObtenirRdvDeLaSeance(sea.SeanceId).Count() == 0)
                //    return ValidationResult.Success;

                // Si la séance prise ici est la même que celle qu'on essaye de valider...
                if (sea.SeanceId == seance.SeanceId)
                {
                    continue;
                }

                // vérifie que la date de la seance est plus tard que l'heure actuel
                if (sea.DateSeance.Value.Year == seance.DateSeance.Value.Year &&
                    sea.DateSeance.Value.Month == seance.DateSeance.Value.Month &&
                    sea.DateSeance.Value.Day == seance.DateSeance.Value.Day &&
                    sea.Photographe.Equals(seance.Photographe))
                {
                    TimeSpan diff = seance.DateSeance.Value - sea.DateSeance.Value;

                    // vérifie que l'heure de la séance est plus tard d'au moins 4h avec le dernier rendez-vous deja séduler sur l'horaire pour un meme photographe
                    if (Math.Abs(diff.Hours) < 4)
                    {
                        return(new ValidationResult("L'heure de la séance doit être ultérieur d'au moins 4h au dernier rendez-vous de la journée."));
                    }
                }
            }

            return(ValidationResult.Success);
        }