コード例 #1
0
        public Task <LDialogResult <TResult> > ShowAsync <TResult, TDialog>()
            where TDialog : LDialogBase <TResult>, new()
        {
            var component = new TDialog();

            return(this.ShowAsync(component));
        }
コード例 #2
0
ファイル: MiscExtensions.cs プロジェクト: zoombapup/ATF
        /// <summary>
        /// Display a given type of dialog with a view model type</summary>
        /// <typeparam name="TDialog">Type of dialog to display</typeparam>
        /// <typeparam name="TViewModel">Type of view model</typeparam>
        /// <returns>Nullable Boolean signifying how window was closed by user</returns>
        public static bool?ShowDialogWithViewModel <TDialog, TViewModel>()
            where TDialog : Window
        {
            TDialog dialog = Activator.CreateInstance <TDialog>();

            dialog.DataContext = Activator.CreateInstance <TViewModel>();
            return(dialog.ShowParentedDialog());
        }
コード例 #3
0
        public static TViewModel ShowDialog <TViewModel, TDialog>() where TDialog : FrameworkElement, new()
        {
            var dlg = new TDialog();
            var vm  = (TViewModel)Activator.CreateInstance(typeof(TViewModel), dlg);

            dlg.DataContext = vm;
            return(vm);
        }
コード例 #4
0
        private List <TDialog> getDialogsFromXml(string sceneId)
        {
            List <TDialog> tDialogs = null;
            XPathNavigator nav      = xmlDocument.CreateNavigator();
            // Compile a standard XPath expression
            XPathExpression expr;

            expr = nav.Compile("//*[@id='" + sceneId + "']");
            XPathNodeIterator iterator = nav.Select(expr);

            if (iterator.MoveNext())
            {
                XPathNavigator navScene = iterator.Current.Clone();
                if (navScene.InnerXml == "")
                {
                    return(null);
                }

                XmlDocument xmlDocumentOfScene = new XmlDocument();
                xmlDocumentOfScene.InnerXml = navScene.InnerXml;
                XmlNodeList dialogNodes = xmlDocumentOfScene.GetElementsByTagName("dialog");
                if (dialogNodes.Count > 0)
                {
                    tDialogs = new List <TDialog>();
                    for (int countDialogs = 0; countDialogs < dialogNodes.Count; countDialogs++)
                    {
                        string  dialogXmlId       = dialogNodes[countDialogs].Attributes["id"].Value;
                        string  dialogDescription = dialogNodes[countDialogs].Attributes["description"].Value;
                        TDialog tDialog           = new TDialog(dialogXmlId, dialogDescription);

                        //##### Get signs of dialog #####
                        XmlDocument xmlDocumentOfDialog = new XmlDocument();
                        xmlDocumentOfDialog.InnerXml = "<dialog>" + dialogNodes[countDialogs].InnerXml + "</dialog>";
                        XmlNodeList signNodes = xmlDocumentOfDialog.GetElementsByTagName("situatedSignToken");
                        if (signNodes.Count > 0)
                        {
                            tDialog.signs = new List <TSign>();
                            for (int countSigns = 0; countSigns < signNodes.Count; countSigns++)
                            {
                                //---- Get sign ----
                                string signXmlId = signNodes[countSigns].InnerText;
                                string signName  = getAttributeFromXml("situatedSignToken", signXmlId, "name");
                                TSign  tSign     = new TSign(signName);
                                tDialog.signs.Add(tSign);
                                //------------------
                            }
                        }
                        else
                        {
                            tDialog.signs = null;
                        }
                        //###############################
                        tDialogs.Add(tDialog);
                    }
                }
            }
            return(tDialogs);
        }
コード例 #5
0
        protected TDialog CreateDialog <TDialog>()
            where TDialog : Dialog, new()
        {
            var dialog = new TDialog();

            dialog.CompanyInfo        = Company;
            dialog.ApplicationContext = ApplicationContext;
            dialog.ApplicationControl = ApplicationControl;
            dialog.XmlMessenger       = XmlMessenger;

            return(dialog);
        }
コード例 #6
0
        public TViewModel CreateDialog <TViewModel, TDialog>(params object[] args)
            where TDialog : Window, new()
            where TViewModel : DialogViewModelBase
        {
            var dlg = new TDialog();
            var vm  = (TViewModel)Activator.CreateInstance(typeof(TViewModel), new object[] { dlg }.Concat(args).ToArray());

            dlg.DataContext = vm;
            if (dlg.Content == null)
            {
                dlg.Content = vm;
            }

            return(vm);
        }
コード例 #7
0
        public Task <TDialog> GetCurrentDialogAsync <TDialog>() where TDialog : IBaseMetroDialogFrame
        {
            this.Dispatcher.VerifyAccess();
            var t = new TaskCompletionSource <TDialog>();

            this.Dispatcher.Invoke((Action)(() =>
            {
                TDialog dialog = default(TDialog);

                if (this.MetroActiveDialogContainer != null)
                {
                    dialog = this.MetroActiveDialogContainer.Children.OfType <TDialog>().LastOrDefault();
                    t.TrySetResult(dialog);
                }
            }));
            return(t.Task);
        }
コード例 #8
0
        /// <summary>
        /// Get Dialog by id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public TDialog getDialog(int id)
        {
            //--Data Base Access Variables--
            MySql.Data.MySqlClient.MySqlCommand    dbCommand    = new MySql.Data.MySqlClient.MySqlCommand();
            MySql.Data.MySqlClient.MySqlConnection dbConnection = new MySql.Data.MySqlClient.MySqlConnection(connectionString);
            MySql.Data.MySqlClient.MySqlDataReader dbDataReader;
            dbCommand.Connection = dbConnection;
            //------------------------------

            dbCommand.CommandText = "SELECT * FROM TB_DIALOGS WHERE (id = " + id + ")";
            try
            {
                dbConnection.Open();
                TDialog tDialog;
                dbDataReader = dbCommand.ExecuteReader();
                dbDataReader.Read();
                tDialog = new TDialog(Convert.ToInt32(dbDataReader["id"]), Convert.ToInt32(dbDataReader["transition_id"]), dbDataReader["dialog"].ToString(), null);
                dbDataReader.Close();
                dbCommand.CommandText = "SELECT * FROM TB_SIGNS WHERE (dialog_id = " + tDialog.id + ")";
                dbDataReader          = dbCommand.ExecuteReader();
                tDialog.signs         = new List <TSign>();
                while (dbDataReader.Read())
                {
                    tDialog.signs.Add(new TSign(Convert.ToInt32(dbDataReader["id"]), tDialog.id, dbDataReader["sign"].ToString(), dbDataReader["sign_value"].ToString()));
                }
                if (tDialog.signs.Count <= 0)
                {
                    tDialog.signs = null;
                }
                dbDataReader.Close();
                dbConnection.Close();
                return(tDialog);
            }
            catch
            {
                dbConnection.Close();
                System.Threading.Thread.Sleep(20000);
                return(null);
            }
        }
コード例 #9
0
        public void Recieve_SimpleCall_NotThrows()
        {
            const long  RequestMessageId = 1234;
            var         authKeyData      = SessionMock.GenerateAuthKeyData();
            const ulong sessionId        = 123456;
            const ulong salt             = 654321;

            uint[] rpcResponceCode = { 0xf35c6d01 };

            var sendUser = new TDialog
            {
                ReadInboxMaxId = 132,
                Peer           = new TPeerUser {
                    UserId = 123
                },
                NotifySettings = new TPeerNotifySettingsEmpty(),
                Draft          = new TDraftMessageEmpty()
            };

            var mSession = SessionMock.Create().BuildSession(sessionId, salt, authKeyData);

            this.RegisterMock(mSession);

            var mClientSettings = ClientSettingsMock.Create().AttachSession(() => mSession.Object);

            this.RegisterMock(mClientSettings);

            var mTcpTransport = TcpTransportMock.Create().BuildReceieve(out var tsc);

            this.RegisterMock(mTcpTransport);

            var mConfrimSendService = ConfirmationSendServiceMock.Create().BuildAddForSend(messageId => Assert.Equal(RequestMessageId, messageId));

            this.RegisterMock(mConfrimSendService);

            var mRecieveHandler = RecieveHandlerMock.Create().BuildRecieveHandler(rpcResponceCode).BuildHandleResponce(
                (code, reader) =>
            {
                Assert.Equal(RequestMessageId, reader.ReadInt64());
                return(null);
            });

            this.RegisterMock(mRecieveHandler);
            this.RegisterAdapterForHandler();

            this.RegisterType <RecievingService>();

            // ---
            var rpcResult = new TRpcResult {
                ReqMsgId = RequestMessageId, Result = sendUser
            };
            var recieveData = EncodePacket(Serializer.SerializeObject(rpcResult), RequestMessageId);

            var mtProtoPlainSender = this.Resolve <RecievingService>();

            mtProtoPlainSender.StartReceiving();
            Thread.Sleep(500);

            tsc.SetResult(recieveData);

            Thread.Sleep(500);

            // --
            mRecieveHandler.Verify(recieveService => recieveService.HandleResponce(It.IsAny <BinaryReader>()), Times.Once);
            mConfrimSendService.Verify(recieveService => recieveService.AddForSend(It.IsAny <long>()), Times.Once);
        }