private void RemoveHSI(HubScriptItem HSI) { TokenManager TokMgr = new TokenManager(); AESManager AESMgr = new AESManager(); RCache.POST( Shared.ShRequest.Server , Shared.ShRequest.ScriptRemove(AccessToken, HSI.Id) , (e2, QId) => { try { JsonStatus.Parse(e2.ResponseString); TokMgr.UnassignId(HSI.Id); AESMgr.UnassignId(HSI.Id); MessageBus.SendUI(GetType(), AppKeys.SH_SCRIPT_REMOVE, HSI); Exit(); } catch (Exception ex) { HSI.ErrorMessage = ex.Message; } } , (a, b, ex) => { HSI.ErrorMessage = ex.Message; } , false ); }
public void UpdateTemplate(HubScriptItem Item) { BindItem = Item; LayoutRoot.DataContext = BindItem; InitAppBar(); }
public ScriptUpload( HubScriptItem HSI, Action<string, string> OnExit ) :this() { // Set Update template ReservedId = HSI.Id; Anon.IsChecked = string.IsNullOrEmpty( HSI.AuthorId ); Encrypt.IsChecked = HSI.Encrypted; ForceCommentEnc.IsChecked = HSI.ForceEncryption; NameInput.Text = HSI.Name; DescInput.Text = HSI.Desc; ZoneInput.Text = string.Join( ", ", HSI.Zone ); TypesInput.Text = string.Join( ", ", HSI.Type ); TagsInput.Text = string.Join( ", ", HSI.Tags ); ScopeLevel.SelectedValue = HSI.Scope; AddToken_Btn.IsEnabled = AddKey_Btn.IsEnabled = ForceCommentEnc.IsEnabled = Encrypt.IsEnabled = Anon.IsEnabled = Keys.IsEnabled = AccessTokens.IsEnabled = false; PredefineFile( HSI.Id ); this.OnExit = OnExit; }
private GRRow <HSDisplay> ToGRRow(HubScriptItem HSItem) { return(new GRRow <HSDisplay>(HSTable) { Source = new HSDisplay(HSItem) }); }
private async void GotoScriptDetail(object sender, ItemClickEventArgs e) { GrantProcess GProc = ( GrantProcess )e.ClickedItem; if (GProc.GrantDef.SourceRemoved || GProc.IsLoading) { return; } GProc.IsLoading = true; string AccessToken = ( string )TokMgr.GetAuthById(GProc.ScriptId)?.Value; SHSearchLoader SHLoader = new SHSearchLoader( "uuid: " + GProc.ScriptId , AccessToken == null ? null : new string[] { AccessToken } ); IList <HubScriptItem> HSIs = await SHLoader.NextPage(); HubScriptItem HSI = HSIs.FirstOrDefault(); if (HSI != null) { ControlFrame.Instance.NavigateTo(PageId.SCRIPT_DETAILS, () => { ScriptDetails SDetails = new ScriptDetails(HSI); SDetails.OpenRequest(GProc.Target); return(SDetails); }); } }
public ScriptUpload(HubScriptItem HSI, Action <string, string> OnExit) : this() { // Set Update template ReservedId = HSI.Id; Anon.IsChecked = string.IsNullOrEmpty(HSI.AuthorId); Encrypt.IsChecked = HSI.Encrypted; ForceCommentEnc.IsChecked = HSI.ForceEncryption; NameInput.Text = HSI.Name; DescInput.Text = HSI.Desc; ZoneInput.Text = string.Join(", ", HSI.Zone); TypesInput.Text = string.Join(", ", HSI.Type); TagsInput.Text = string.Join(", ", HSI.Tags); ScopeLevel.SelectedIndex = Array.IndexOf(Scopes, Scopes.First(x => x.Value == HSI.Scope)); AddToken_Btn.IsEnabled = AddKey_Btn.IsEnabled = ForceCommentEnc.IsEnabled = Encrypt.IsEnabled = Anon.IsEnabled = Keys.IsEnabled = AccessTokens.IsEnabled = false; PredefineFile(AppKeys.ZLOCAL, HSI.Id); this.OnExit = OnExit; }
private void OpenHSComment(HubScriptItem HSI) { ControlFrame.Instance.NavigateTo( PageId.SCRIPT_DETAILS , () => new ScriptDetails(HSI) , View => (( ScriptDetails )View).OpenComment()); }
internal HSCommentView(HubScriptItem HSI, CryptAES Crypt) : this() { this.Crypt = Crypt; BindItem = HSI; SetTemplate(); }
public HSRequestView(HubScriptItem HSI, CryptAES Crypt, SHTarget ReqTarget, string AccessToken) : this() { BindItem = HSI; this.Crypt = Crypt; this.ReqTarget = ReqTarget; this.AccessToken = AccessToken; XGrant.SetParameter(BindItem.Id, CustomAnchor.TimeKey); ShowRequest(ReqTarget); }
private bool TryGetId(string Id, out HubScriptItem Target) { Target = SearchSet.Cast <HubScriptItem>().FirstOrDefault(( HubScriptItem HSI ) => HSI.Id == Id); if (Target == null) { Logger.Log(ID, "Target is gone after Status Report returned", LogType.WARNING); return(false); } return(true); }
private void TransferRequest(SHTarget Target, HubScriptItem HSI) { ControlFrame.Instance.NavigateTo( PageId.SCRIPT_DETAILS , () => new ScriptDetails(HSI) , (View) => { ScriptDetails SD = ( ScriptDetails )View; SD.UpdateTemplate(HSI); SD.PlaceRequest(Target); } ); }
public void OpenItem(IGRRow Row) { if (Row is GRRow <HSDisplay> ) { HubScriptItem HSI = ((GRRow <HSDisplay>)Row).Source.Item; if (HSI.Faultered) { // Report to admin } else { ControlFrame.Instance.NavigateTo(PageId.SCRIPT_DETAILS, () => new ScriptDetails(HSI)); } } }
public static NameValue <Func <Page> > GetPageHandler(object Item) { if (Item is HubScriptItem) { HubScriptItem HSI = ( HubScriptItem )Item; return(new NameValue <Func <Page> >(PageId.SCRIPT_DETAILS, () => new ScriptDetails(HSI))); } else if (Item is BookBannerItem) { BookBannerItem BItem = ( BookBannerItem )Item; return(new NameValue <Func <Page> >(PageId.BOOK_INFO_VIEW, () => new wenku10.Pages.BookInfoView(BItem.BkItem))); } return(new NameValue <Func <Page> >(PageId.NULL, () => null)); }
private async void SHUploadComplete(string Id, string AccessToken) { await ControlFrame.Instance.CloseSubView(); HubScriptItem HSI = await PageProcessor.GetScriptFromHub(Id, AccessToken); if (ThisBook.ZItemId != Id) { ThisBook.Update(await ItemProcessor.GetBookFromId(Id)); } if (HSI != null) { OpenHSComment(HSI); } }
public PlaceRequest(SHTarget Target, HubScriptItem HSI, string Placeholder) { this.InitializeComponent(); StringResources stx = StringResources.Load("Message"); PrimaryButtonText = stx.Str("OK"); SecondaryButtonText = stx.Str("Cancel"); this.Target = Target; Canceled = true; BindItem = HSI; RemarksPlaceholder = Placeholder; SetTemplate(); }
public PlaceRequest( SHTarget Target, HubScriptItem HSI, string Placeholder ) { this.InitializeComponent(); StringResources stx = new StringResources( "Message" ); PrimaryButtonText = stx.Str( "OK" ); SecondaryButtonText = stx.Str( "Cancel" ); this.Target = Target; Canceled = true; BindItem = HSI; RemarksPlaceholder = Placeholder; SetTemplate(); }
private async void OpenHSComments(object sender, RoutedEventArgs e) { HSBtn.IsEnabled = false; string Token = ( string )new TokenManager().GetAuthById(ThisBook.ZItemId)?.Value; HubScriptItem HSI = await PageProcessor.GetScriptFromHub(ThisBook.ZItemId, Token); if (HSI == null) { // Suggest Upload ControlFrame.Instance.SubNavigateTo(this, () => new ScriptUpload(ThisBook, SHUploadComplete)); } else { OpenHSComment(HSI); } HSBtn.IsEnabled = true; }
private void MessageBus_OnDelivery(Message Mesg) { switch (Mesg.Content) { case AppKeys.SP_PROCESS_COMP: LocalBook SBook = ( LocalBook )Mesg.Payload; HubScriptItem HSC = SearchSet.Cast <HubScriptItem>().FirstOrDefault(x => x.Id == SBook.ZItemId); if (HSC == null) { Logger.Log(ID, "Book is not from Sharer's hub", LogType.DEBUG); } else { HSC.InCollection = SBook.ProcessSuccess; } break; case AppKeys.HS_REPORT_SUCCESS: Tuple <string, DRequestCompletedEventArgs> Payload = (Tuple <string, DRequestCompletedEventArgs>)Mesg.Payload; SearchItemUpdate(Payload.Item2, Payload.Item1); break; case AppKeys.HS_REPORT_FAILED: Tuple <string, string> ErrorPayload = (Tuple <string, string>)Mesg.Payload; HubScriptItem HSI; if (TryGetId(ErrorPayload.Item1, out HSI)) { HSI.ErrorMessage = ErrorPayload.Item2; } break; } }
private async void OpenSpider(HubScriptItem HSI) { BookItem Book = null; try { SpiderBook SBook = await SpiderBook.ImportFile(await HSI.ScriptFile.ReadString(), true); if (SBook.CanProcess && !SBook.Processed) { await ItemProcessor.ProcessLocal(SBook); Book = SBook.GetBook(); } } catch (Exception ex) { Logger.Log(ID, ex.Message, LogType.WARNING); } // Should be outside of try..catch block OpenBook(Book); }
public ScriptDetails( HubScriptItem Item, Frame ParentFrame = null ) :this() { BindItem = Item; this.ParentFrame = ParentFrame; SetTemplate(); }
public async void PlaceRequest( SHTarget Target, HubScriptItem HSI ) { StringResources stx = new StringResources(); PlaceRequest RequestBox = new PlaceRequest( Target, HSI , stx.Text( ( Target & SHTarget.KEY ) != 0 ? "KeyRequest" : "TokenRequest" ) ); await Popups.ShowDialog( RequestBox ); if ( !RequestBox.Canceled ) OpenRequest( Target ); }
protected override void OnNavigatedTo( NavigationEventArgs e ) { base.OnNavigatedTo( e ); BindItem = ( HubScriptItem ) e.Parameter; SetTemplate(); }
public async void SuggestUpload( BookItem b ) { BindItem = await LoadFromSHHub( b.Id, AccessToken ); if ( BindItem != null ) { await Dispatcher.RunIdleAsync( ( x ) => SetTemplate() ); } else { await Dispatcher.RunIdleAsync( x => ParentFrame.Content = new ScriptUpload( b, UploadReturn ) ); } }
public ScriptDetails(HubScriptItem Item) : this() { BindItem = Item; SetTemplate(); }
private async void ConfirmScriptParse( HubScriptItem HSI ) { StringResources stx = new StringResources( "Message" ); MessageDialog MsgBox = new MessageDialog( stx.Str( "ConfirmScriptParse" ) ); bool Parse = false; MsgBox.Commands.Add( new UICommand( stx.Str( "Yes" ), x => { Parse = true; } ) ); MsgBox.Commands.Add( new UICommand( stx.Str( "No" ) ) ); await Popups.ShowDialog( MsgBox ); if ( Parse ) { ProcessItem( FileListContext.GetById( HSI.Id ) ); MainHub.RefSV.ChangeView( 0, 0, null, false ); PopupFrame.Content = null; } }
private async void MessageBus_OnDelivery(Message Mesg) { switch (Mesg.Content) { case AppKeys.SH_SCRIPT_DATA: HubScriptItem HSI = ( HubScriptItem )Mesg.Payload; if ((HSI.Scope & SpiderScope.ZONE) != 0) { ControlFrame.Instance.NavigateTo( PageId.MASTER_EXPLORER, () => new MasterExplorer() // Open ZoneSpider Manager , P => (( MasterExplorer )P).NavigateToDataSource( typeof(ZSMDisplayData) , async(ZSVS) => { // Using the manager, import this script ZSMDisplayData DisplayData = (( ZSManagerVS )ZSVS).ZSMData; if (await DisplayData.OpenFile(HSI.ScriptFile)) { // Open the imported script ZoneSpider ZSpider = DisplayData.ZSTable.Items.Select(x => ( ZoneSpider )x.Source).FirstOrDefault(x => x.ZoneId == HSI.Id); (( MasterExplorer )P).NavigateToZone(ZSpider); } } )); break; } // This will save the book SpiderBook SBook = await SpiderBook.ImportFile(await HSI.ScriptFile.ReadString(), true); if (SBook.CanProcess) { ConfirmScriptParse(SBook); } else { ConfirmErrorReport(HSI.Id, StatusType.HS_INVALID); } break; case AppKeys.HS_DECRYPT_FAIL: StringResources stx = StringResources.Load("Message", "ContextMenu"); bool Place = false; await Popups.ShowDialog(UIAliases.CreateDialog( stx.Str("Desc_DecryptionFailed"), stx.Str("DecryptionFailed") , () => Place = true , stx.Text("PlaceRequest", "ContextMenu"), stx.Str("OK") )); if (Place) { HSI = ( HubScriptItem )Mesg.Payload; TransferRequest(SHTarget.KEY, HSI); } break; case AppKeys.HS_OPEN_COMMENT: InboxMessage BoxMessage = ( InboxMessage )Mesg.Payload; ControlFrame.Instance.NavigateTo(PageId.SCRIPT_DETAILS , () => new ScriptDetails(BoxMessage.HubScript) , P => (( ScriptDetails )P).OpenCommentStack(BoxMessage.CommId) ); break; case AppKeys.HS_NO_VOLDATA: ConfirmErrorReport((( BookInstruction )Mesg.Payload).ZItemId, StatusType.HS_NO_VOLDATA); break; case AppKeys.EX_DEATHBLOW: stx = StringResources.Load("Message", "ContextMenu"); bool UseDeathblow = false; await Popups.ShowDialog(UIAliases.CreateDialog( stx.Str("ConfirmDeathblow") , () => UseDeathblow = true , stx.Str("Yes"), stx.Str("No") )); if (UseDeathblow) { IDeathblow Deathblow = ( IDeathblow )Mesg.Payload; ControlFrame.Instance.NavigateTo(PageId.W_DEATHBLOW, () => new WDeathblow(Deathblow), P => (( WDeathblow )P).Blow()); } break; case AppKeys.PM_CHECK_TILES: CheckTiles(); break; case AppKeys.OPEN_VIEWSOURCE: ControlFrame.Instance.NavigateTo(PageId.MASTER_EXPLORER, () => new MasterExplorer(), P => (( MasterExplorer )P).NavigateToViewSource(( GRViewSource )Mesg.Payload)); break; case AppKeys.OPEN_ZONE: ControlFrame.Instance.NavigateTo(PageId.MASTER_EXPLORER, () => new MasterExplorer(), P => (( MasterExplorer )P).NavigateToZone(( ZoneSpider )Mesg.Payload)); break; case AppKeys.PROMPT_LOGIN: (IMember Member, Action DialogClosed) = (Tuple <IMember, Action>)Mesg.Payload; if (!Member.IsLoggedIn) { Login LoginDialog = new Login(Member); await Popups.ShowDialog(LoginDialog); } DialogClosed(); break; } }
private bool TryNotGetId( string Id, out HubScriptItem Target ) { Target = SearchSet.Cast<HubScriptItem>().FirstOrDefault( ( HubScriptItem HSI ) => HSI.Id == Id ); if( Target == null ) { Logger.Log( ID, "Target is gone after Status Report returned", LogType.WARNING ); return true; } return false; }
public async Task<bool> Remove( HubScriptItem HSI, string AccessToken = null ) { TaskCompletionSource<bool> TCS = new TaskCompletionSource<bool>(); TokenManager TokMgr = new TokenManager(); AESManager AESMgr = new AESManager(); if ( AccessToken == null ) AccessToken = ( string ) TokMgr.GetAuthById( HSI.Id )?.Value; RCache.POST( Shared.ShRequest.Server , Shared.ShRequest.ScriptRemove( AccessToken, HSI.Id ) , ( e2, QId ) => { try { JsonStatus.Parse( e2.ResponseString ); TCS.TrySetResult( true ); Worker.UIInvoke( () => SearchSet.Remove( HSI ) ); TokMgr.UnassignId( HSI.Id ); AESMgr.UnassignId( HSI.Id ); } catch ( Exception ex ) { HSI.ErrorMessage = ex.Message; TCS.TrySetResult( false ); } } , ( a, b, ex ) => { HSI.ErrorMessage = ex.Message; TCS.TrySetResult( false ); } , false ); return await TCS.Task; }
public BookInfoView(HubScriptItem HSI) : this() { OpenSpider(HSI); }
private void TransferRequest( SHTarget Target, HubScriptItem HSI ) { Sharers.ScriptDetails Details = PopupFrame.Content as Sharers.ScriptDetails; if ( Details == null ) { Details = new Sharers.ScriptDetails( HSI ); PopupFrame.Content = Details; } Details.PlaceRequest( Target, HSI ); }