/// <summary> /// Method returning filtered courses /// </summary> /// <param name="filter">Filter to select specific courses</param> /// <returns>IEnumerable of DtoService</returns> public async Task <IEnumerable <DtoService> > GetCoursesWithoutCustomer(string customerEmail) { var ret = new ObservableCollection <DtoService>(); try { using (var data = Context) { var services = await data.Service .Where (s => s.ServiceType.isCourse && s.Customer.All(c => c.email != customerEmail) ) .Take(TakeTop).ToListAsync(); foreach (var course in services) { ret.Add(ServiceConverter.DataAccessToDto(course)); } } } catch (Exception e) { ret = null; } return(ret); }
/// <summary> /// Method returning filtered courses /// </summary> /// <param name="filter">Filter to select specific courses</param> /// <returns>IEnumerable of DtoService</returns> public async Task <IEnumerable <DtoService> > GetServices(ServiceFilter filter = null) { var ret = new ObservableCollection <DtoService>(); try { using (var data = Context) { if (filter == null) { foreach ( var course in await data.Service.Where(s => s.ServiceType.isCourse).Take(TakeTop).ToListAsync()) { ret.Add(ServiceConverter.DataAccessToDto(course)); } } else { var services = await data.Service .Where (s => s.ServiceType.isCourse == filter.IsCourse && (string.IsNullOrEmpty(filter.Customer) || s.Customer.Any( c => c.name.Contains(filter.Customer) || c.surname.Contains(filter.Customer))) && (string.IsNullOrEmpty(filter.Instructor) || s.Employee.name.Contains(filter.Instructor) || s.Employee.surname.Contains(filter.Instructor)) && (filter.ServiceTypeId == null || s.ServiceType.id == filter.ServiceTypeId) && (filter.SportId == null || s.ServiceType.sportTypeID == filter.SportId) && (string.IsNullOrEmpty(filter.CustomerEmail) || s.Customer.Any(c => c.email == filter.CustomerEmail)) ) .Take(TakeTop).ToListAsync(); foreach (var course in services) { ret.Add(ServiceConverter.DataAccessToDto(course)); } } } } catch (Exception e) { ret = null; } return(ret); }
/// <summary> /// Method returning course with specific id /// </summary> /// <param name="courseId">Id of course</param> /// <returns>Dto object of course</returns> public async Task <DtoService> GetCourse(int courseId) { DtoService course = null; using (var data = Context) { var service = await data.Service.FirstOrDefaultAsync(c => c.id == courseId); if (service != null) { course = ServiceConverter.DataAccessToDto(service); } } return(course); }