public void Setup()
 {
     timeServiceMock             = new Mock <ITimeService>();
     erfassungsPeriodServiceMock = new Mock <IErfassungsPeriodService>();
     historizationService        = new HistorizationService(erfassungsPeriodServiceMock.Object, timeServiceMock.Object);
     timeServiceMock.Setup(s => s.Now).Returns(new DateTime(2011, 1, 1));
 }
Пример #2
0
 protected bool IsCurrentErfassungsPeriod(Guid?erfassungsPeriodId)
 {
     if (erfassungsPeriodId == null)
     {
         return(true);
     }
     return(HistorizationService.GetCurrentErfassungsperiod() == ErfassungsPeriodService.GetEntityById(erfassungsPeriodId.Value));
 }
        protected override List <ListeDerInspektionsroutenPo> GetPresentationObjectListForGis(ListeDerInspektionsroutenParameter parameter)
        {
            var queryOver = transactionScopeProvider.CurrentTransactionScope.Session.QueryOver <StrassenabschnittGIS>();

            queryOver = filtererFactory.CreateFilterer <StrassenabschnittGIS>(parameter).Filter(queryOver);
            queryOver = listeDerInspektionsroutenMapProvider.FilterForBoundingBox(queryOver, parameter);

            //Preload InspektionsRouteGIS entities
            var currentErfassungsperiod = HistorizationService.GetCurrentErfassungsperiod();

            transactionScopeProvider.CurrentTransactionScope.Session
            .QueryOver <InspektionsRouteGIS>()
            .Where(ir => ir.ErfassungsPeriod == currentErfassungsperiod)
            .Where(ir => ir.Mandant == currentErfassungsperiod.Mandant)
            .List <InspektionsRouteGIS>();

            //Fetch InspektionsRtStrAbschnitte and Belastungskategorie
            IEnumerable <StrassenabschnittGIS> list = queryOver
                                                      .Fetch(sa => sa.InspektionsRtStrAbschnitte).Eager
                                                      .Fetch(sa => sa.Belastungskategorie).Eager
                                                      .List <StrassenabschnittGIS>()
                                                      .Where(sa => sa.InspektionsRtStrAbschnitte.Any());

            //Filtering in memory
            if (parameter.Inspektionsroutename.HasText())
            {
                list = list.Where(sa => sa.InspektionsRtStrAbschnitte.Any(ira => (ira.InspektionsRouteGIS.Bezeichnung ?? "").ToLower().Contains(parameter.Inspektionsroutename.ToLower())));
            }

            if (parameter.InspektionsrouteInInspektionBei.HasText())
            {
                list = list.Where(sa => sa.InspektionsRtStrAbschnitte.Any(ira => (ira.InspektionsRouteGIS.InInspektionBei ?? "").ToLower().Contains(parameter.InspektionsrouteInInspektionBei.ToLower())));
            }

            if (parameter.InspektionsrouteInInspektionBisVon.HasValue)
            {
                list = list.Where(sa => sa.InspektionsRtStrAbschnitte.Any(ira => ira.InspektionsRouteGIS.InInspektionBis >= parameter.InspektionsrouteInInspektionBisVon.Value));
            }

            if (parameter.InspektionsrouteInInspektionBisBis.HasValue)
            {
                list = list.Where(sa => sa.InspektionsRtStrAbschnitte.Any(ira => ira.InspektionsRouteGIS.InInspektionBis <= parameter.InspektionsrouteInInspektionBisBis.Value));
            }

            return(list.OrderBy(sa => sa.InspektionsRtStrAbschnitte.Single().InspektionsRouteGIS.Bezeichnung).ThenBy(sa => sa.InspektionsRtStrAbschnitte.Single().Reihenfolge).Select(sa => CreatePo(sa, parameter.LegendImageBaseUrl, parameter.IsPreview)).ToList());
        }