Exemplo n.º 1
0
        public async Task <PagedResult <DrivingSchoolGrid> > RetrieveDrivingSchoolAvailability(DrivingSchoolAvailabilityFilter drivingSchoolAvailability, List <OrderBy> orderBy = null, Paging paging = null)
        {
            var predicate = BuildDrivingSchoolAvailabilityPredicate(drivingSchoolAvailability);
            var test      = await _dataService.RetrievePagedResultAsync <Data.Entities.StudentDrivingDetail>(predicate);

            var drivingSchoolIds = test.Items.Select(e => e.DrivingSchoolId).ToList();
            var data             = await _dataService.RetrievePagedResultAsync <Data.Entities.DrivingSchoolGrid>(e => !drivingSchoolIds.Contains(e.DrivingSchoolId), orderBy, paging);

            return(_mapper.MapToPagedResult <DrivingSchoolGrid>(data));
        }
Exemplo n.º 2
0
        private ExpressionStarter <Data.Entities.StudentDrivingDetail> BuildDrivingSchoolAvailabilityPredicate(DrivingSchoolAvailabilityFilter drivingSchoolAvailabilityFilter)
        {
            var studentDrivingDetailData = _dataService.RetrievePagedResult <Data.Entities.StudentDrivingDetail>(e => true).Items;
            var test = studentDrivingDetailData.All(e => e.StartDate <= drivingSchoolAvailabilityFilter.StartDate &&
                                                    e.EndDate >= drivingSchoolAvailabilityFilter.StartDate &&
                                                    e.StartTime <= drivingSchoolAvailabilityFilter.StartTime &&
                                                    e.EndTime >= drivingSchoolAvailabilityFilter.StartTime &&
                                                    e.DrivingSchoolCarId == drivingSchoolAvailabilityFilter.DrivingSchoolCarId
                                                    );
            //bool test = true;
            var predicate = PredicateBuilder.New <Data.Entities.StudentDrivingDetail>(true);

            if (drivingSchoolAvailabilityFilter != null && drivingSchoolAvailabilityFilter.IsSunday)
            {
                predicate = test ? predicate.Or(e => e.IsSunday == drivingSchoolAvailabilityFilter.IsSunday) : predicate.And(e => e.IsSunday == drivingSchoolAvailabilityFilter.IsSunday);
            }
            if (drivingSchoolAvailabilityFilter != null && drivingSchoolAvailabilityFilter.IsMonday)
            {
                predicate = test ? predicate.Or(e => e.IsMonday == drivingSchoolAvailabilityFilter.IsMonday) : predicate.And(e => e.IsMonday == drivingSchoolAvailabilityFilter.IsMonday);
            }
            if (drivingSchoolAvailabilityFilter != null && drivingSchoolAvailabilityFilter.IsTuesday)
            {
                predicate = test ? predicate.Or(e => e.IsTuesday == drivingSchoolAvailabilityFilter.IsTuesday) : predicate.And(e => e.IsTuesday == drivingSchoolAvailabilityFilter.IsTuesday);
            }
            if (drivingSchoolAvailabilityFilter != null && drivingSchoolAvailabilityFilter.IsWednesday)
            {
                predicate = test ? predicate.Or(e => e.IsWednesday == drivingSchoolAvailabilityFilter.IsWednesday) : predicate.And(e => e.IsWednesday == drivingSchoolAvailabilityFilter.IsWednesday);
            }
            if (drivingSchoolAvailabilityFilter != null && drivingSchoolAvailabilityFilter.IsThursday)
            {
                predicate = test ? predicate.Or(e => e.IsThursday == drivingSchoolAvailabilityFilter.IsThursday) : predicate.And(e => e.IsThursday == drivingSchoolAvailabilityFilter.IsThursday);
            }
            if (drivingSchoolAvailabilityFilter != null && drivingSchoolAvailabilityFilter.IsFriday)
            {
                predicate = test ? predicate.Or(e => e.IsFriday == drivingSchoolAvailabilityFilter.IsFriday) : predicate.And(e => e.IsFriday == drivingSchoolAvailabilityFilter.IsFriday);
            }
            if (drivingSchoolAvailabilityFilter != null && drivingSchoolAvailabilityFilter.IsSaturday)
            {
                predicate = test ? predicate.Or(e => e.IsSaturday == drivingSchoolAvailabilityFilter.IsSaturday) : predicate.And(e => e.IsSaturday == drivingSchoolAvailabilityFilter.IsSaturday);
            }
            if (drivingSchoolAvailabilityFilter != null && drivingSchoolAvailabilityFilter.IsTwoWheelerLicense)
            {
                predicate = test ? predicate.Or(e => e.DrivingSchool.IsTwoWheelerLicense == drivingSchoolAvailabilityFilter.IsTwoWheelerLicense) : predicate.And(e => e.DrivingSchool.IsTwoWheelerLicense == drivingSchoolAvailabilityFilter.IsTwoWheelerLicense);
            }
            if (drivingSchoolAvailabilityFilter != null && drivingSchoolAvailabilityFilter.IsFourWheelerLicense)
            {
                predicate = test ? predicate.Or(e => e.DrivingSchool.IsFourWheelerLicense == drivingSchoolAvailabilityFilter.IsFourWheelerLicense) : predicate.And(e => e.DrivingSchool.IsFourWheelerLicense == drivingSchoolAvailabilityFilter.IsFourWheelerLicense);
            }
            predicate = predicate.And(e => !(e.StartDate >= drivingSchoolAvailabilityFilter.StartDate && e.EndDate <= drivingSchoolAvailabilityFilter.StartDate));
            predicate = predicate.And(e => !(e.StartTime >= drivingSchoolAvailabilityFilter.StartTime && e.EndTime <= drivingSchoolAvailabilityFilter.StartTime));
            predicate = predicate.And(e => e.DrivingSchoolCarId == drivingSchoolAvailabilityFilter.DrivingSchoolCarId);
            return(predicate);
        }
Exemplo n.º 3
0
        public async Task <ActionResult> RetrieveDrivingSchoolAvailability(DrivingSchoolAvailabilityFilter drivingSchoolAvailabilityFilter, Paging paging, List <OrderBy> orderBy)
        {
            var data = await _drivingSchoolBusinessService.RetrieveDrivingSchoolAvailability(drivingSchoolAvailabilityFilter, orderBy, paging);

            return(this.JsonNet(data));
        }