コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public IActionResult Get([FromQuery] AppointmentSearch search,
                          [FromServices] IGetAppointmentQuery query)
 {
     return(Ok(_executor.ExecuteQuery(query, search)));
 }