public IHttpActionResult Get([FromUri] ClashExceptionSearchQueryModel searchQuery) { if (!ModelState.IsValid) { return(this.Error().InvalidParameters()); } // searchQuery is ref type so we can not add default value at input // parameter. If value not specified then return null value. so // adding below condition if (searchQuery == null) { searchQuery = new ClashExceptionSearchQueryModel(); } searchQuery.EndDate = searchQuery.EndDate.ToUniversalTime(); searchQuery.StartDate = searchQuery.StartDate.ToUniversalTime(); var clashExceptions = _clashExceptionRepository.SearchWithDescriptions(searchQuery); return(Ok(new SearchResultModel <ClashExceptionModel> { Items = clashExceptions?.Items != null && clashExceptions.Items.Any() ? clashExceptions.Items.ToList() : null, TotalCount = clashExceptions?.TotalCount ?? 0 })); }
public PagedQueryResult <ClashExceptionModel> SearchWithDescriptions(ClashExceptionSearchQueryModel searchQuery) { lock (_session) { var res = Search(searchQuery); return(res is null ? null : new PagedQueryResult <ClashExceptionModel>(res.TotalCount, GetClashExceptionModels(res.Items))); } }
public IHttpActionResult Delete(DateTime?dateRangeStart = null, DateTime?dateRangeEnd = null) { if (dateRangeStart == null && dateRangeEnd == null) { _clashExceptionRepository.Truncate(); return(Ok()); } var search = new ClashExceptionSearchQueryModel() { StartDate = dateRangeStart ?? default(DateTime), EndDate = dateRangeEnd ?? default(DateTime) }; var clashExceptions = _clashExceptionRepository.Search(search); if (clashExceptions?.Items == null || !clashExceptions.Items.Any()) { return(NotFound()); } clashExceptions.Items.ToList().ForEach(_ => _clashExceptionRepository.Remove(_.Id)); return(Ok()); }
public PagedQueryResult <ClashExceptionModel> SearchWithDescriptions(ClashExceptionSearchQueryModel searchQuery) => throw new NotImplementedException();
public PagedQueryResult <ClashException> Search(ClashExceptionSearchQueryModel searchQuery) { throw new NotImplementedException(); }
public PagedQueryResult <ClashException> Search(ClashExceptionSearchQueryModel searchQuery) { lock (_session) { var items = _session.GetAll <ClashException>(); if (searchQuery.StartDate != default(DateTime) && searchQuery.EndDate != default(DateTime)) { items = items.Where(c => (c.StartDate.Date >= searchQuery.StartDate.Date && c.StartDate.Date < searchQuery.EndDate.Date.AddDays(1)) || (c.EndDate != null && c.EndDate.Value.Date >= searchQuery.StartDate.Date && c.EndDate.Value.Date < searchQuery.EndDate.Date.AddDays(1)) || (c.StartDate.Date < searchQuery.EndDate.Date.AddDays(1) && (c.EndDate == null || c.EndDate.Value.Date >= searchQuery.EndDate.Date))).ToList(); } else { if (searchQuery.StartDate != default(DateTime) && searchQuery.EndDate == default(DateTime)) { items = items.Where(c => (c.StartDate.Date >= searchQuery.StartDate.Date) || (c.StartDate.Date < searchQuery.StartDate.Date.AddDays(1) && (c.EndDate == null || c.EndDate.Value.Date >= searchQuery.StartDate.Date))).ToList(); } else { if (searchQuery.StartDate == default(DateTime) && searchQuery.EndDate != default(DateTime)) { items = items .Where(c => (c.EndDate != null && c.EndDate.Value.Date < searchQuery.EndDate.Date.AddDays(1)) || (c.StartDate.Date < searchQuery.EndDate.Date.AddDays(1) && (c.EndDate == null || c.EndDate.Value.Date >= searchQuery.EndDate.Date))) .ToList(); } } } if (items != null && items.Any()) { IComparer <object> propertyComparer = null; if (searchQuery.OrderBy == ClashExceptionOrder.FromType || searchQuery.OrderBy == ClashExceptionOrder.ToType) { propertyComparer = new EnumNameComparer(); } var sortedItems = items.Sort(searchQuery.OrderBy.ToString(), searchQuery.OrderByDirection.ToString(), propertyComparer); if (searchQuery.Skip != null) { sortedItems = sortedItems.Skip(searchQuery.Skip.Value).ToList(); } if (searchQuery.Top != null) { sortedItems = sortedItems.Take(searchQuery.Top.Value).ToList(); } return(new PagedQueryResult <ClashException>(items.Count, sortedItems?.ToList())); } return(null); } }