private async Task RequestSubjectExportAsync(Expression <Func <Subject, bool> > predicate, bool refresh, bool isUpdateExportTypesOnly) { currentSubject = await exporter.QuerySubjectAsync(predicate, refresh); var publishedData = currentSubject?.PublishedItems.Select(pi => GetPublishedItemInfo(pi)); var availableTypes = currentSubject?.AvailableExportTypes.ToDictionary(k => publishersInfo[k.Key], v => v.Value); view.ShowAvailableToPublish(availableTypes); view.ShowPublishedItems(publishedData); if (!isUpdateExportTypesOnly) { view.ShowSubject(currentSubject?.Subject); view.ShowSubjectPhotos(currentSubject?.SubjectPhotos); } PublishedItemInfo GetPublishedItemInfo(PublishedItem publishedItem) { var publisher = publishedItem.Publisher; PublisherInfo publisherInfo = null; if (publisher != null && publishersInfo.ContainsKey(publisher)) { publisherInfo = publishersInfo[publisher]; } else { publisherInfo = new PublisherInfo(GetPublisherName(publishedItem.PublisherType)); } return(new PublishedItemInfo(publishedItem, publisherInfo)); } }
private void RegisterPublishers(params Publisher[] publishers) { foreach (var publisher in publishers) { exporter.AddPublisher(publisher); var publisherInfo = new PublisherInfo(publisher, GetPublisherName(publisher.GetType())); publishersInfo.Add(publisher, publisherInfo); } }
public PublishedItemInfo(PublishedItem publishedItem, PublisherInfo publisherData) { PublishedItem = publishedItem; PublisherData = publisherData; }
private async void View_SignOutClick(object sender, PublisherInfo e) { await(e?.Publisher as IAuthorizable)?.LogOutAsync(); }