Example #1
0
        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
                );
        }
Example #2
0
        public void UpdateTemplate(HubScriptItem Item)
        {
            BindItem = Item;
            LayoutRoot.DataContext = BindItem;

            InitAppBar();
        }
Example #3
0
        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;
        }
Example #4
0
 private GRRow <HSDisplay> ToGRRow(HubScriptItem HSItem)
 {
     return(new GRRow <HSDisplay>(HSTable)
     {
         Source = new HSDisplay(HSItem)
     });
 }
Example #5
0
        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);
                });
            }
        }
Example #6
0
        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;
        }
Example #7
0
 private void OpenHSComment(HubScriptItem HSI)
 {
     ControlFrame.Instance.NavigateTo(
         PageId.SCRIPT_DETAILS
         , () => new ScriptDetails(HSI)
         , View => (( ScriptDetails )View).OpenComment());
 }
Example #8
0
        internal HSCommentView(HubScriptItem HSI, CryptAES Crypt)
            : this()
        {
            this.Crypt = Crypt;
            BindItem   = HSI;

            SetTemplate();
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
 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);
     }
         );
 }
Example #12
0
        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));
                }
            }
        }
Example #13
0
        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));
        }
Example #14
0
        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);
            }
        }
Example #15
0
        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();
        }
Example #16
0
        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();
        }
Example #17
0
        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;
        }
Example #18
0
        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;
            }
        }
Example #19
0
        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);
        }
Example #20
0
 public ScriptDetails( HubScriptItem Item, Frame ParentFrame = null )
     :this()
 {
     BindItem = Item;
     this.ParentFrame = ParentFrame;
     SetTemplate();
 }
Example #21
0
        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 );
        }
Example #22
0
 protected override void OnNavigatedTo( NavigationEventArgs e )
 {
     base.OnNavigatedTo( e );
     BindItem = ( HubScriptItem ) e.Parameter;
     SetTemplate();
 }
Example #23
0
 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 ) );
     }
 }
Example #24
0
 public ScriptDetails(HubScriptItem Item)
     : this()
 {
     BindItem = Item;
     SetTemplate();
 }
Example #25
0
        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;
            }
        }
Example #26
0
        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;
            }
        }
Example #27
0
        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;
        }
Example #28
0
        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;
        }
Example #29
0
 public BookInfoView(HubScriptItem HSI)
     : this()
 {
     OpenSpider(HSI);
 }
Example #30
0
        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 );
        }