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); }
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)); }