Exemplo n.º 1
0
        /// <summary>
        /// Get a list of <see cref="User"/>.
        /// </summary>
        /// <param name="lang">The language.</param>
        /// <param name="paging">The paging parameters.</param>
        /// <param name="sorting">The sorting parameters.</param>
        /// <param name="filtering">The filtering parameters.</param>
        /// <param name="fielding">The fielding parameters. (not used)</param>
        /// <returns>The pagined list of <see cref="User"/>.</returns>
        public PagedCollection <User> GetUsers(string lang,
                                               PagingParameters paging,
                                               SortingParameters sorting,
                                               FilteringParameters filtering,
                                               FieldingParameters fielding)
        {
            if (Session == null)
            {
                throw new Exception("Session is null");
            }

            var result = Session.Read("users",
                                      paging.ToMDBPagingParameters(),
                                      sorting.ToSortDefinition(),
                                      filtering.ToFilterDefinition());

            return(new PagedCollection <User>
            {
                Items = result.Items.ToUserList(),
                TotalNumberOfItems = result.TotalNumberOfItems,
                PageIndex = paging.Index,
                PageSize = paging.Size,
                TotalNumberOfPages = (long)Math.Ceiling(result.TotalNumberOfItems / (double)paging.Size)
            });
        }
Exemplo n.º 2
0
        public IHttpActionResult GetUsersList(string lang                   = null,
                                              PagingParameters paging       = null,
                                              SortingParameters sorting     = null,
                                              FilteringParameters filtering = null,
                                              FieldingParameters fielding   = null)
        {
            try
            {
                if (paging == null)
                {
                    paging = new PagingParameters();
                }

                if (paging != null && !paging.IsValid)
                {
                    throw new ArgumentException(nameof(paging));
                }

                if (sorting != null && !sorting.IsValid)
                {
                    throw new ArgumentException(nameof(sorting));
                }

                if (filtering != null && !filtering.IsValid)
                {
                    throw new ArgumentException(nameof(filtering));
                }

                if (fielding != null && !fielding.IsValid)
                {
                    throw new ArgumentException(nameof(fielding));
                }

                return(Ok(Repository.GetUsers(lang, paging, sorting, filtering, fielding)));
            }
            catch (ArgumentException aex)
            {
                return(BadRequest(aex.Message));
            }
            catch (SecurityException)
            {
                throw new HttpResponseException(HttpStatusCode.Forbidden);
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }