Exemplo n.º 1
0
        public List <Training> GetTrainings(TrainingFilter filter)
        {
            if (filter == null)
            {
                return(Trainings);
            }

            //Not Good Code. Just for Demo. You will need to handle all cases here.
            return(Trainings.Where(x => String.Equals(x.City, filter.City, StringComparison.CurrentCultureIgnoreCase) ||
                                   (x.Country != null && (String.Equals(x.Country, filter.Country, StringComparison.CurrentCultureIgnoreCase))) ||
                                   (x.Country != null && (String.Equals(x.Country, filter.Country, StringComparison.CurrentCultureIgnoreCase))) ||
                                   (x.Zip != null && (String.Equals(x.Zip, filter.Zip, StringComparison.CurrentCultureIgnoreCase)))).ToList());
        }
Exemplo n.º 2
0
 public List <Training> GetTrainings([FromUri] TrainingFilter filter)
 {
     return(_trainingRepository.GetTrainings(filter));
 }
Exemplo n.º 3
0
 public ApiTableResponseModel <TrainingModel> GetFilteredTrainings(TrainingFilter filter)
 {
     return(DB.Trainings.GetTrainingsFiltered(filter));
 }
Exemplo n.º 4
0
        public static ApiTableResponseModel <TrainingModel> GetTrainingsFiltered(TrainingFilter filter)
        {
            ApiTableResponseModel <TrainingModel> response = new ApiTableResponseModel <TrainingModel>();

            using (var ctx = new DFAppEntities())
            {
                var q = ctx.Trainings
                        .Include(t => t.Locations)
                        .Include(t => t.DanceGroups)
                        .Include(t => t.DanceSelections)
                        .Include(t => t.Users)
                        // .Include("TrainingMemberPresenceRegistrations.Members")
                        .AsQueryable();

                if (filter.TrainingDate.HasValue)
                {
                    q = q.Where(x => x.TrainingDate == filter.TrainingDate.Value);
                }

                if (filter.TrainingDanceGroupID.HasValue)
                {
                    q = q.Where(x => x.TrainingDanceGroupID == filter.TrainingDanceGroupID.Value);
                }

                if (filter.TrainingLocationID.HasValue)
                {
                    q = q.Where(x => x.TrainingLocationID == filter.TrainingLocationID.Value);
                }

                if (filter.TrainerUserID.HasValue)
                {
                    q = q.Where(x => x.TrainerUserID == filter.TrainerUserID.Value);
                }

                if (!string.IsNullOrEmpty(filter.WeekDay))
                {
                    q = q.Where(x => x.WeekDay.ToUpper() == filter.WeekDay.ToUpper());
                }

                if (string.IsNullOrEmpty(filter.OrderByClause))
                {
                    // default order
                    filter.OrderByClause = "TrainingDate desc";
                }

                if (filter.PageNo < 1)
                {
                    filter.PageNo = 1;
                }

                if (filter.RecordsPerPage < 1)
                {
                    // unlimited
                    filter.RecordsPerPage = 1000000;
                }

                response.Total = q.Count();

                var Data =
                    q.ToList()
                    .Select(x =>
                            new TrainingModel()
                {
                    TrainingID             = x.TrainingID,
                    TrainingDate           = x.TrainingDate,
                    TrainingLocationID     = x.TrainingLocationID,
                    TrainingLocationName   = x.Locations.LocationName,
                    TrainingDanceGroupID   = x.TrainingDanceGroupID,
                    TrainingDanceGroupName = x.DanceGroups.DanceGroupName,
                    WeekDay         = x.WeekDay,
                    StartTime       = (TimeSpan)x.StartTime,
                    EndTime         = (TimeSpan)x.EndTime,
                    TrainerUserID   = x.TrainerUserID,
                    TrainerUserName = (x.Users != null) ? (x.Users.FirstName + " " + x.Users.LastName) : string.Empty,
                    Note            = x.Note //,

                                             //TrainingMemberPresenceRegistrations = x.TrainingMemberPresenceRegistrations.Select(r =>
                                             //    new TrainingMemberPresenceRegistrationModel()
                                             //    {
                                             //        TrainingID = r.TrainingID,
                                             //        MemberID = r.MemberID,
                                             //        MemberName = r.Members.FirstName + " " + r.Members.LastName,
                                             //        IsPresent = r.IsPresent,
                                             //        AbsenceJustified = r.AbsenceJustified,
                                             //        AbsenceNote = r.AbsenceNote
                                             //    }
                                             //)
                                             //.OrderBy(mp => mp.MemberName)
                }
                            )
                    .OrderBy(filter.OrderByClause)
                    .Skip((filter.PageNo - 1) * filter.RecordsPerPage)
                    .Take(filter.RecordsPerPage);

                response.Data = Data;
            }

            return(response);
        }