예제 #1
0
        public async Task <HttpResponseMessage> Get(HttpRequestMessage req, TraceWriter log)
        {
            try
            {
                var organisationId = req.GetQueryNameValuePairs().Where(w => w.Key == "organisationId").FirstOrDefault().Value;

                bool isAdmin = await _userDigestService.IsAdminAsync(req);

                var userDigest = await _userDigestService.CurrentUserAsync(req);

                if (!string.IsNullOrEmpty(organisationId) && (isAdmin || userDigest.OrganisationId == organisationId))
                {
                    var orgUsers = await _userService.GetByOrgAsync(organisationId);

                    return(req.CreateResponse(HttpStatusCode.OK, orgUsers.ToList()));
                }

                var userId = req.GetQueryNameValuePairs().Where(w => w.Key == "userId").FirstOrDefault().Value;

                var allUsers = new List <UserDB>();
                if (!string.IsNullOrEmpty(userId))
                {
                    var singleUser = await _userService.GetUserAsync(userId, req);

                    allUsers.Add(singleUser);
                }
                else
                {
                    var searchTerm = req.GetQueryNameValuePairs().Where(w => w.Key == "SearchTerm").FirstOrDefault().Value;
                    if (!string.IsNullOrEmpty(searchTerm))
                    {
                        allUsers.AddRange(await _userService.SearchAsync(searchTerm, req));
                    }
                    else
                    {
                        var users = await _userService.GetAllUsers(req);

                        allUsers.AddRange(users);
                    }
                }
                return(req.CreateResponse(HttpStatusCode.OK, allUsers));
            }
            catch (Exception exp)
            {
                log.Error("Error retrieving users: " + exp.Message + exp.StackTrace);
                return(req.CreateErrorResponse(HttpStatusCode.InternalServerError, exp));
            }
        }
예제 #2
0
        public async Task <HttpResponseMessage> Get(HttpRequestMessage req, TraceWriter log)
        {
            if (!(await _userDigestService.IsAdminAsync(req)))
            {
                return(req.CreateResponse(HttpStatusCode.Forbidden));
            }

            var item = await _metadataRepository.GetItemAsync(Metadata.MetadataId);

            return(req.CreateResponse(HttpStatusCode.OK, item));
        }
        public async Task <HttpResponseMessage> Get(HttpRequestMessage req, TraceWriter log)
        {
            if (!await _userDigestService.IsAdminAsync(req))
            {
                return(req.CreateResponse(HttpStatusCode.Forbidden));
            }

            var id = req.GetQueryNameValuePairs().Where(w => w.Key == "id").FirstOrDefault().Value;

            if (id != null)
            {
                var changeRecord = await _changeRecordRepository.GetItemAsync(id);

                return(req.CreateResponse(HttpStatusCode.OK, changeRecord));
            }
            else
            {
                var results = await _searchApi.Search <ChangeRecord, ChangeRecord>(req, log);

                return(req.CreateResponse(HttpStatusCode.OK, results));
            }
        }