public virtual async Task <IHttpActionResult> Get()
        {
            try
            {
                var entities = await EntityReader.GetAllAsync();

                return(Ok(Mapper.Map <IEnumerable <TModel> >(entities)));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        // GET: api/TEntity
        public async Task <IHttpActionResult> Get()
        {
            try
            {
                var entities = await EntityReader.GetAllAsync();

                var verantwoordelijken = entities.Where(g => g.Rol == Entities.Enums.Rol.Manager);
                return(Ok(Mapper.Map <IEnumerable <GebruikerModel> >(verantwoordelijken)));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public virtual async Task <IHttpActionResult> Get([FromUri] string fields)
        {
            try
            {
                if (string.IsNullOrEmpty(fields))
                {
                    return(Ok(EntityReader.GetIncludeList()));
                }
                var entities = await EntityReader.GetAllAsync(fields.Split(','));

                return(Ok(Mapper.Map <IEnumerable <TModel> >(entities)));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public override async Task <IHttpActionResult> Get([FromUri] string fields)
        {
            try
            {
                IEnumerable <Issue> entities = null;
                var userName = User.Identity.Name;

                if (User.IsInRole(Rol.Administrator))
                {
                    entities = await EntityReader.GetAllAsync(fields.Split(','));
                }
                else if (User.IsInRole(Rol.Manager))
                {
                    entities = await EntityReader.Filter(e => e.Gebruiker.Email == userName || e.Gebruiker.Verantwoordelijke.Email == userName, fields.Split(','));
                }
                else if (User.IsInRole(Rol.Dispatcher))
                {
                    entities = await EntityReader.Filter(e => e.Gebruiker.Email == userName ||
                                                         (e.IssueStatussen.OrderByDescending(x => x.CreationDate).FirstOrDefault().Solver.Email == userName) ||
                                                         e.IssueStatussen.OrderByDescending(x => x.CreationDate).FirstOrDefault().StatusBeschrijving == IssueStatusBeschrijving.Geweigerd ||
                                                         e.IssueStatussen.OrderByDescending(x => x.CreationDate).FirstOrDefault().StatusBeschrijving == IssueStatusBeschrijving.Nieuw, fields.Split(','));
                }
                else if (User.IsInRole(Rol.Solver))
                {
                    entities = await EntityReader.Filter(e => e.Gebruiker.Email == userName ||
                                                         (e.IssueStatussen.OrderByDescending(x => x.CreationDate).FirstOrDefault().Solver.Email == userName), fields.Split(','));
                }
                else if (User.IsInRole(Rol.Gebruiker))
                {
                    entities = await EntityReader.Filter(e => e.Gebruiker.Email == userName, fields.Split(','));
                }


                return(Ok(Mapper.Map <IEnumerable <IssueModel> >(entities)));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }