BusinessObjects.VacationRequests.VacationRequestInfoList.DataPortal_Fetch C# (CSharp) Method

DataPortal_Fetch() protected method

protected DataPortal_Fetch ( Common.Model.VacationRequestSearchCriteria criteria ) : void
criteria Common.Model.VacationRequestSearchCriteria
return void
        protected void DataPortal_Fetch(VacationRequestSearchCriteria criteria)
        {
            RaiseListChangedEvents = false;
            IsReadOnly = false;

            using (var ctx = new VacationManagerContext())
            {
                IList<Persistence.Model.VacationRequestEntity> requests;

                if (criteria == null)
                    requests = ctx.Requests.ToList();
                else
                {
                    var query = ctx.Requests.AsQueryable();
                    if (criteria.GetMine)
                        query = query.Where(x => x.Employee.Id == criteria.EmployeeId);
                    else
                        query = query.Where(x => x.Employee.Manager.Id == criteria.EmployeeId);

                    if (criteria.States != null)
                        query = query.Where(x => criteria.States.Contains(x.State));

                    requests = query.OrderByDescending(x => x.CreationDate)
                        .ToList();
                }

                foreach (var item in requests)
                    Add(DataPortal.Create<VacationRequest>(item));
            }

            IsReadOnly = true;
            RaiseListChangedEvents = true;
        }
VacationRequestInfoList