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);
		}
示例#2
0
        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));
        }
示例#3
0
        /// <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);
        }
示例#4
0
        /// <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)));
            }
        }