Пример #1
0
        private async Task <MessageJournalIndexModel> InitIndexModel()
        {
            var model = new MessageJournalIndexModel
            {
                Count         = 10,
                AllCategories = new string[]
                {
                    MessageJournalCategory.Sent,
                    MessageJournalCategory.Received,
                    MessageJournalCategory.Published,
                }
                .Select(c => new SelectListItem {
                    Text = c, Value = c
                })
                .ToList()
            };

            using (var apiClient = NewApiClient())
            {
                var response = await apiClient.GetAsync("topic");

                response.EnsureSuccessStatusCode();
                var topicJson = await response.Content.ReadAsStringAsync();

                var topics = JsonConvert.DeserializeObject <string[]>(topicJson);
                model.AllTopics = topics
                                  .Select(t => new SelectListItem {
                    Text = t, Value = t
                })
                                  .ToList();
            }

            return(model);
        }
Пример #2
0
        public async Task <ActionResult> Index(MessageJournalIndexModel model)
        {
            var updatedModel = await InitIndexModel();

            updatedModel.Start             = model.Start;
            updatedModel.Count             = model.Count;
            updatedModel.FilterCategories  = model.FilterCategories;
            updatedModel.FilterTopics      = model.FilterTopics;
            updatedModel.FilterFrom        = model.FilterFrom;
            updatedModel.FilterTo          = model.FilterTo;
            updatedModel.FilterOrigination = model.FilterOrigination;
            updatedModel.FilterDestination = model.FilterDestination;
            updatedModel.FilterRelatedTo   = model.FilterRelatedTo;
            updatedModel.FilterMessageName = model.FilterMessageName;
            updatedModel.ReadAttempted     = true;

            var accessToken = GetAccessToken();
            var credentials = new BearerCredentials(accessToken);

            using (var journalClient = new HttpMessageJournalClient(ApiBaseUri, credentials))
            {
                var filter = new MessageJournalFilter
                {
                    Topics      = model.FilterTopics.Select(t => (TopicName)t).ToList(),
                    Categories  = model.FilterCategories.Select(c => (MessageJournalCategory)c).ToList(),
                    From        = model.FilterFrom,
                    To          = model.FilterTo,
                    Origination = model.FilterOrigination,
                    Destination = model.FilterDestination,
                    MessageName = model.FilterMessageName,
                    RelatedTo   = model.FilterRelatedTo
                };
                var readResult = await journalClient.Read(model.Start, model.Count, filter);

                updatedModel.Result = readResult;
            }
            return(View(updatedModel));
        }