public async Task<ActionResult> GetFilters(GetFiltersRequest filtersRequest) { if (filtersRequest?.Types == null) return null; var clusterClient = await GrainClientMultiton.GetAndConnectClient(GrainSessionId); var filterGrain = clusterClient.GetGrain<IFilterGrain>(Guid.Empty); var filters = await filterGrain.GetGroupedFilterValues(filtersRequest.Types); return Json(filters, JsonRequestBehavior.AllowGet); }
public async Task <ActionResult> GetFilters(GetFiltersRequest filtersRequest) { if (filtersRequest?.Types == null) { return(null); } var filterGrain = GrainClient.GrainFactory.GetGrain <IFilterGrain>(Guid.Empty); var filters = await filterGrain.GetGroupedFilterValues(filtersRequest.Types); return(Json(filters, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Lists all notifications by filter /// </summary> /// <param name="filters">GetFiltersRequest</param> /// <returns></returns> public async Task <List <NotificationDocument> > ListFilteredAsync(GetFiltersRequest filters) { List <NotificationDocument> documents = new List <NotificationDocument>(); // Retrieves and manipulates by filters documents = await _notificationsDAO.ListDocuments(filters.onlyActives, filters.OrderBy, filters.Country); if (filters.Page > 0) { documents = documents.Skip(filters.Page * filters.Limit).ToList(); } if (filters.Limit > 0) { documents = documents.Take(filters.Limit).ToList(); } return(documents); }
/// <summary> /// Lists all notifications /// </summary> /// <param name="filters"></param> /// <returns></returns> public async Task <ResultData> ListNotificationsAsync(GetFiltersRequest filters) { if (filters.Page < 0 || filters.Limit < 0 || !Enum.IsDefined(typeof(EOrdenation), filters.OrderBy)) { return(ErrorData(ServiceErrors.Get_ListNotificationsAsync_400_Filters)); } var result = await _repo.ListFilteredAsync(filters); if (result.Count < 1) { return(ErrorData(ServiceErrors.Get_ListNotificationsAsync_404_Notification)); } return(SuccessData( new GetNotificationsResponse(filters.Page, result.Count) { Content = result } )); }
public async Task <IActionResult> Get([FromQuery] GetFiltersRequest filters) { try { var response = await _service.ListNotificationsAsync(filters); if (response.Success) { return(StatusCode(200, response)); } else { return(StatusCode(404, response)); } } catch (Exception e) { Console.WriteLine(e.Message); return(StatusCode(500, nameof(Exception))); } }