public string Search([FromBody] AppointmentSearch appointmentSearch) { List <Appointment> appointmentList = new List <Appointment>(); try { if (appointmentSearch != null) { appointmentList = (from appointments in _context.Appointment where (appointments.Name.Contains(appointmentSearch.Name) || appointmentSearch.Name.Equals("")) && (appointments.State.Equals(appointmentSearch.State) || appointmentSearch.State.Equals("")) && (appointments.Startdate >= appointmentSearch.Startdate || appointmentSearch.Startdate.Equals(DateTime.MinValue)) && (appointments.Ownerid.Equals(appointmentSearch.Ownerid) || appointmentSearch.Ownerid.Equals("")) select appointments).ToList(); foreach (Appointment item in appointmentList) { item.State = _context.OptionMasterDetail.Where(x => x.Optionid == item.State && x.Isused == true).Single().Name; item.Ownerid = _context.User.Where(x => x.Id == item.Ownerid).Single().Name; } } } catch (Exception ex) { throw ex; } return(JsonConvert.SerializeObject(appointmentList)); }
public PagedResponse <AppointmentDto> Execute(AppointmentSearch search) { var query = _context.Appointments.AsQueryable(); if (!string.IsNullOrEmpty(search.FirstNameLastName) || !string.IsNullOrWhiteSpace(search.FirstNameLastName)) { query = query.Where(x => x.FirstNameLastName.ToLower().Contains(search.FirstNameLastName.ToLower())); } var skipCount = search.PerPage * (search.Page - 1); var response = new PagedResponse <AppointmentDto> { CurrentPage = search.Page, ItemsPerPage = search.PerPage, TotalCount = query.Count(), Items = query.Skip(skipCount).Take(search.PerPage).Select(x => new AppointmentDto { Id = x.Id, FirstNameLastName = x.FirstNameLastName }).ToList() }; return(response); }
public IActionResult Get([FromQuery] AppointmentSearch search, [FromServices] IGetAppointmentQuery query) { return(Ok(_executor.ExecuteQuery(query, search))); }