コード例 #1
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = "GetExtendedInfoItem/{id}")] HttpRequest req, string id)
        {
            _logger.LogInformation("C# HTTP trigger function GetExtendedInfoItem processed a request.");
            string tenant = req.Headers[Constants.HEADER_TENANT];

            if (String.IsNullOrWhiteSpace(tenant))
            {
                tenant = null;
            }
            ServerSettings serverSettings = await _serverSettingsRepository.GetServerSettings(tenant);

            string keyWord = req.Headers[Constants.HEADER_KEYWORD];

            if (String.IsNullOrEmpty(keyWord) || !(serverSettings.IsUser(keyWord)))
            {
                _logger.LogWarning("GetExtendedInfoItem called with wrong keyword.");
                return(new BadRequestErrorMessageResult("Keyword is missing or wrong."));
            }
            // Get CalendarItem by id
            InfoItem rawInfoItem = await _cosmosRepository.GetItem(id);

            if (null == rawInfoItem)
            {
                return(new BadRequestErrorMessageResult("No InfoItem with given id found."));
            }
            ExtendedInfoItem extendedItem = new ExtendedInfoItem(rawInfoItem);

            // Read all comments
            extendedItem.CommentsList = await _commentRepository.GetItems(c => c.CalendarItemId.Equals(extendedItem.Id));

            return(new OkObjectResult(extendedItem));
        }
コード例 #2
0
        public async Task <ExtendedInfoItem> GetExtendedInfoItem(string tenant, string keyword, string itemId)
        {
            ExtendedInfoItem infoItem = await $"https://{_functionsConfig.FunctionAppName}.azurewebsites.net/api/GetExtendedInfoItem/{itemId}"
                                        .WithHeader(HEADER_FUNCTIONS_KEY, _functionsConfig.ApiKey)
                                        .WithHeader(HEADER_KEYWORD, keyword)
                                        .WithHeader(HEADER_TENANT, tenant)
                                        .GetJsonAsync <ExtendedInfoItem>();

            return(infoItem);
        }
コード例 #3
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req)
        {
            _logger.LogInformation("C# HTTP trigger function GetExtendedInfoItems processed a request.");
            string tenant = req.Headers[Constants.HEADER_TENANT];

            if (String.IsNullOrWhiteSpace(tenant))
            {
                tenant = null;
            }
            ServerSettings serverSettings = await _serverSettingsRepository.GetServerSettings(tenant);

            string keyWord = req.Headers[Constants.HEADER_KEYWORD];

            if (String.IsNullOrEmpty(keyWord) || !serverSettings.IsUser(keyWord))
            {
                _logger.LogWarning("GetExtendedInfoItems called with wrong keyword.");
                return(new BadRequestErrorMessageResult("Keyword is missing or wrong."));
            }
            IEnumerable <InfoItem> rawListOfInfoItems;

            if (null == tenant)
            {
                rawListOfInfoItems = await _cosmosRepository.GetItems(d => (d.Tenant ?? String.Empty) == String.Empty);
            }
            else
            {
                rawListOfInfoItems = await _cosmosRepository.GetItems(d => d.Tenant.Equals(tenant));
            }
            List <ExtendedInfoItem> resultInfoItems = new List <ExtendedInfoItem>(10);

            foreach (InfoItem item in rawListOfInfoItems)
            {
                // Create ExtendedInfoItem and get comments
                ExtendedInfoItem extendedItem = new ExtendedInfoItem(item);
                resultInfoItems.Add(extendedItem);
                // Read all comments
                extendedItem.CommentsList = await _commentRepository.GetItems(c => c.CalendarItemId.Equals(extendedItem.Id));
            }
            IEnumerable <ExtendedInfoItem> orderedList = resultInfoItems.OrderBy(d => d.OrderId);

            return(new OkObjectResult(orderedList));
        }
コード例 #4
0
        public async Task <IActionResult> GetExtendedInfoItem([FromHeader(Name = "x-meetup-tenant")] string tenant, [FromHeader(Name = "x-meetup-keyword")] string keyword, [FromQuery] string itemId)
        {
            ExtendedInfoItem infoItem = await _meetUpFunctions.GetExtendedInfoItem(tenant, keyword, itemId);

            return(Ok(infoItem));
        }