/// <summary> /// 当选中一条或多条对话时的操作,第一条选中的对话出现在主框上。 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DialogueBox_GotFocus(object sender, RoutedEventArgs e) { if (DialoguesGrid.SelectedItems.Count > 0) { editingDialogue = DialoguesGrid.SelectedItems[0] as DialogueViewModel; } }
/// <summary> /// 当对话框失去焦点时,说明已经编辑完成。 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DialogueBox_LostFocus(object sender, RoutedEventArgs e) { if (editingDialogue != null) { editingDialogue.Line = DialogueBox.Text; editingDialogue = null; } }
public IActionResult Dialogue(string ID) { DialogueViewModel viewModel = new DialogueViewModel(); viewModel.messages = _manager.GetDialogue(ID); viewModel.id = ID; return(View(viewModel)); }
public void Dev2Dialogue_NullImageSource_ValidTitleDescriptionDescriptionTitle_Expected_NullImageReference() { IDialogueViewModel dev2Dialogue = new DialogueViewModel(); dev2Dialogue.SetupDialogue("Test Title", "Test Description", null, "SomeTitleText"); Assert.IsTrue(dev2Dialogue.ImageSource == null); // cleanup - Dispose of the dev2Dialogue dev2Dialogue.Dispose(); }
public void Dev2Dialogue_NullTitleDesciptionImageSource_ValidDescriptionTitle_Expected_CreatedWithOnlyDescriptionTitleText() { IDialogueViewModel dev2Dialogue = new DialogueViewModel(); dev2Dialogue.SetupDialogue(null, null, null, "SomeTitleText"); Assert.IsFalse(string.IsNullOrEmpty(dev2Dialogue.DescriptionTitleText)); // cleanup - Dispose of the dev2Dialogue dev2Dialogue.Dispose(); }
public IDialogueViewModel CreateServerAboutDialog(string serverVersion) { IDialogueViewModel dialogueViewModel = new DialogueViewModel(); string packUri = StringResources.Warewolf_Logo; var ver = VersionInfo.FetchVersionInfo(); SetupServerDialogAction(dialogueViewModel, ver, packUri, serverVersion); return(dialogueViewModel); }
public void Dev2Dialogue_NullDescription_ValidDescriptionImgSourceDecsriptionTitle_Expected_DialogueSetup_DescriptionSetToEmpty() { IDialogueViewModel dev2Dialogue = new DialogueViewModel(); string newFileName = _filePath.Replace(".png", "Dev2Dialogue_NullDescription_ValidDescriptionImgSourceDecsriptionTitle_Expected_DialogueSetup_DescriptionSetToEmpty.png"); createFile(newFileName); dev2Dialogue.SetupDialogue("Test Title", null, newFileName, "SomeTitleText"); File.Delete(newFileName); Assert.AreEqual(string.Empty, dev2Dialogue.DescriptionText); // cleanup - Dispose of the dev2Dialogue dev2Dialogue.Dispose(); }
public static IDialogueViewModel CreateAboutDialog() { IDialogueViewModel dialogueViewModel = new DialogueViewModel(); string packUri = StringResources.Warewolf_Logo; var ver = VersionInfo.FetchVersionInfo(); dialogueViewModel.SetupDialogue(StringResources.About_Header_Text, String.Format(StringResources.About_Content, ver, ver), packUri, StringResources.About_Description_Header, StringResources.EULA_Link, StringResources.EULA_Text); return(dialogueViewModel); }
// ReSharper disable once InconsistentNaming public void Dev2DialogueSetup_CorrectParameterSet_Test() { IDialogueViewModel dev2Dialogue = new DialogueViewModel(); string newFileName = _filePath.Replace(".png", "Dev2DialogueSetup_CorrectParameterSet_Test.png"); createFile(newFileName); dev2Dialogue.SetupDialogue("Test Title", "Test Description", newFileName, "SomeTitleText"); File.Delete(newFileName); Assert.IsTrue(dev2Dialogue.ImageSource != null); // cleanup - Dispose of the dev2Dialogue dev2Dialogue.Dispose(); }
public void Dev2Dialogue_NullTitleDescriptionDescriptionTitleText_ValidImageSource_Expected_ValidImage() { IDialogueViewModel dev2Dialogue = new DialogueViewModel(); string newFileName = _filePath.Replace(".png", "Dev2Dialogue_NullTitleDescriptionDescriptionTitleText_ValidImageSource_Expected_ValidImage.png"); createFile(newFileName); dev2Dialogue.SetupDialogue("Test Title", null, newFileName, null); File.Delete(newFileName); Assert.IsNotNull(dev2Dialogue.ImageSource); // cleanup - Dispose of the dev2Dialogue dev2Dialogue.Dispose(); }
public void Dev2Dialogue_NullDescriptionDescriptionTitleText_ValidTitleImageSource_Expected_EmptyDescriptionTitleAndDescription() { IDialogueViewModel dev2Dialogue = new DialogueViewModel(); string newFileName = _filePath.Replace(".png", "Dev2Dialogue_NullDescriptionDescriptionTitleText_ValidTitleImageSource_Expected_EmptyDescriptionTitleAndDescription.png"); createFile(newFileName); dev2Dialogue.SetupDialogue("Test Title", null, newFileName, null); File.Delete(newFileName); Assert.IsTrue(dev2Dialogue.DescriptionText == string.Empty && dev2Dialogue.DescriptionTitleText == string.Empty); // cleanup - Dispose of the dev2Dialogue dev2Dialogue.Dispose(); }
public void Dev2Dialogue_NullTitleDescription_ValidgImgSourceDecsriptionTitle_Expected_DialogueSetup_TitleandDescriptionSetToEmpty() { IDialogueViewModel dev2Dialogue = new DialogueViewModel(); string newFileName = _filePath.Replace(".png", "Dev2Dialogue_NullTitleDescription_ValidgImgSourceDecsriptionTitle_Expected_DialogueSetup_TitleandDescriptionSetToEmpty.png"); createFile(newFileName); dev2Dialogue.SetupDialogue(null, null, newFileName, "SomeTitleText"); File.Delete(newFileName); Assert.IsTrue(dev2Dialogue.Title == string.Empty && dev2Dialogue.DescriptionText == string.Empty); // cleanup - Dispose of the dev2Dialogue dev2Dialogue.Dispose(); }
public ViewResult DialogueWith(int userId, int page = 1) { int pageSize = 100; ViewBag.UserAuth = User.Identity.IsAuthenticated; ViewBag.UserName = User.Identity.Name; User user1 = db.Users.Include(xc => xc.UserDialogues).ThenInclude(xc => xc.Dialogue).FirstOrDefault(x => x.Email == User.Identity.Name); User user2 = db.Users.Include(xc => xc.UserDialogues).ThenInclude(xc => xc.Dialogue).FirstOrDefault(x => x.UserId == userId); int dialogueId = FindDialogueId(user1, user2); Dialogue dialogue = db.Dialogues.Include(xc => xc.Messages).ThenInclude(x => x.Sender).FirstOrDefault(x => x.DialogueId == dialogueId); Dialogue dialogue2 = db.Dialogues.Include(xc => xc.UserDialogues).FirstOrDefault(x => x.DialogueId == dialogueId); List <Message> messages = dialogue.Messages.OrderByDescending(x => x.Time).ToList(); UserDialogue ud = dialogue2.UserDialogues.FirstOrDefault(x => x.UserId == user1.UserId); ud.IsRead = true; db.Update(ud); db.SaveChanges(); var count = messages.Count(); ViewBag.SearchCount = count; var items = messages.Skip((page - 1) * pageSize).Take(pageSize).ToList(); PageViewModel pageViewModel = new PageViewModel(count, page, pageSize); DialogueViewModel d1 = new DialogueViewModel { Dialogue = dialogue, User2 = user2, Messages = messages, PageViewModel = pageViewModel }; return(View(d1)); }
public void TestCreateDialogueViewModel() { var viewModel = new DialogueViewModel(); }
public DialogueView() { InitializeComponent(); _viewModel = (DialogueViewModel)Resources["viewModel"]; }
public DialogueView(IViewModel viewModel) { vm = (DialogueViewModel)viewModel; InitializeComponent(); }
public static new void CreateEditor(ContentControl document) { RodskaApp app = (RodskaApp)RodskaApp.Current; document.Content = null; ITypeFactory typeFactory = app.currentMainVM.GetTypeFactory(); MainWindow mainWindow = (MainWindow)app.MainWindow; if (mainWindow.CurrentDocument == null) { return; } Dialogue dialogue = (Dialogue)mainWindow.CurrentDocument; DialogueViewModel dialogVM = typeFactory.CreateInstanceWithParametersAndAutoCompletion <DialogueViewModel>(dialogue); DialogueControl control = new DialogueControl(dialogVM); control.conversationWorkspace.ViewModel = new NodeNetwork.ViewModels.NetworkViewModel(); DialogueNode node = new DialogueNode(dialogue); using (control.ConversationWorkspace.ViewModel.SuppressChangeNotifications()) { Dictionary <string, DialoguePromptNode> PromptNodes = new Dictionary <string, DialoguePromptNode>(); Dictionary <string, DialogueResponseNode> ResponseNodes = new Dictionary <string, DialogueResponseNode>(); if (dialogue.Prompts.Count > 0) { foreach (DialoguePrompt prompt in dialogue.Prompts) { DialoguePromptNode dialoguePrompt = new DialoguePromptNode(); StringNode SpeechNode = new StringNode(); SpeechNode.ValueEditor.Value = prompt.Speech; ConnectionViewModel speechToPrompt = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, dialoguePrompt.SpeechInput, SpeechNode.StringOutput); control.ConversationWorkspace.ViewModel.Nodes.Add(SpeechNode); control.ConversationWorkspace.ViewModel.Connections.Add(speechToPrompt); StringNode TitleNode = new StringNode(); TitleNode.ValueEditor.Value = prompt.Title; ConnectionViewModel titleToPrompt = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, dialoguePrompt.Title, TitleNode.StringOutput); control.ConversationWorkspace.ViewModel.Nodes.Add(TitleNode); control.ConversationWorkspace.ViewModel.Connections.Add(titleToPrompt); IntegerNode PriorityNode = new IntegerNode(); PriorityNode.ValueEditor.Value = prompt.Priority; ConnectionViewModel priorityToPrompt = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, dialoguePrompt.Priority, PriorityNode.Output); control.ConversationWorkspace.ViewModel.Nodes.Add(PriorityNode); control.ConversationWorkspace.ViewModel.Connections.Add(priorityToPrompt); StringNode ActionLuaNode = new StringNode(); ActionLuaNode.ValueEditor.Value = prompt.ActionLua ?? ""; ConnectionViewModel actionLuaToPrompt = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, dialoguePrompt.ActionLua, ActionLuaNode.StringOutput); control.ConversationWorkspace.ViewModel.Nodes.Add(ActionLuaNode); control.ConversationWorkspace.ViewModel.Connections.Add(actionLuaToPrompt); StringNode ConditionLuaNode = new StringNode(); ActionLuaNode.ValueEditor.Value = prompt.ConditionLua ?? "return true"; ConnectionViewModel conditionLuaToPrompt = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, dialoguePrompt.ConditionLua, ConditionLuaNode.StringOutput); control.ConversationWorkspace.ViewModel.Nodes.Add(ConditionLuaNode); control.ConversationWorkspace.ViewModel.Connections.Add(conditionLuaToPrompt); ConnectionViewModel promptToDialogue = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, node.Prompts, dialoguePrompt.FinalPrompt); ConnectionViewModel promptToDialogue2; if (DialoguePrompt.GetLeafWithName(prompt.Title, dialogue.InitialPrompts) != null) { promptToDialogue2 = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, node.InitialPrompts, dialoguePrompt.FinalPrompt); control.ConversationWorkspace.ViewModel.Connections.Add(promptToDialogue2); } control.ConversationWorkspace.ViewModel.Nodes.Add(dialoguePrompt); control.ConversationWorkspace.ViewModel.Connections.Add(promptToDialogue); PromptNodes[prompt.Title] = dialoguePrompt; } } if (dialogue.Responses.Count > 0) { Console.WriteLine("Responses found."); foreach (DialogueResponse response in dialogue.Responses) { Console.WriteLine(response); DialogueResponseNode dialogueResponse = new DialogueResponseNode(); StringNode SpeechNode = new StringNode(); SpeechNode.ValueEditor.Value = response.Speech; ConnectionViewModel speechToResponse = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, dialogueResponse.SpeechInput, SpeechNode.StringOutput); control.ConversationWorkspace.ViewModel.Nodes.Add(SpeechNode); control.ConversationWorkspace.ViewModel.Connections.Add(speechToResponse); StringNode TitleNode = new StringNode(); TitleNode.ValueEditor.Value = response.Title; ConnectionViewModel titleToPrompt = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, dialogueResponse.Title, TitleNode.StringOutput); control.ConversationWorkspace.ViewModel.Nodes.Add(TitleNode); control.ConversationWorkspace.ViewModel.Connections.Add(titleToPrompt); IntegerNode OrderNode = new IntegerNode(); OrderNode.ValueEditor.Value = response.Order; ConnectionViewModel priorityToPrompt = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, dialogueResponse.Order, OrderNode.Output); control.ConversationWorkspace.ViewModel.Nodes.Add(OrderNode); control.ConversationWorkspace.ViewModel.Connections.Add(priorityToPrompt); StringNode ActionLuaNode = new StringNode(); ActionLuaNode.ValueEditor.Value = response.ActionLua ?? ""; ConnectionViewModel actionLuaToPrompt = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, dialogueResponse.ActionLua, ActionLuaNode.StringOutput); control.ConversationWorkspace.ViewModel.Nodes.Add(ActionLuaNode); control.ConversationWorkspace.ViewModel.Connections.Add(actionLuaToPrompt); StringNode ConditionLuaNode = new StringNode(); ActionLuaNode.ValueEditor.Value = response.ConditionLua ?? "return true"; ConnectionViewModel conditionLuaToPrompt = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, dialogueResponse.ConditionLua, ConditionLuaNode.StringOutput); control.ConversationWorkspace.ViewModel.Nodes.Add(ConditionLuaNode); control.ConversationWorkspace.ViewModel.Connections.Add(conditionLuaToPrompt); ConnectionViewModel promptToDialogue = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, node.Responses, dialogueResponse.FinalPrompt); control.ConversationWorkspace.ViewModel.Nodes.Add(dialogueResponse); control.ConversationWorkspace.ViewModel.Connections.Add(promptToDialogue); ResponseNodes[response.Title] = dialogueResponse; } } foreach (DialoguePrompt prompt in dialogue.Prompts) { DialoguePromptNode pNode = PromptNodes[prompt.Title]; if (prompt.Responses.Count > 0 && pNode != null) { foreach (DialogueResponse response in prompt.Responses) { if (ResponseNodes[response.Title] != null) { ConnectionViewModel connection = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, pNode.Responses, ResponseNodes[response.Title].FinalPrompt); control.ConversationWorkspace.ViewModel.Connections.Add(connection); } } if (prompt.ChainedPrompts.Count > 0 && pNode != null) { foreach (DialoguePrompt prompt1 in prompt.ChainedPrompts) { if (PromptNodes[prompt.Title] != null) { ConnectionViewModel connection = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, pNode.ChainedPromptsInput, PromptNodes[prompt.Title].FinalPrompt); control.ConversationWorkspace.ViewModel.Connections.Add(connection); } } } } } foreach (DialogueResponse response in dialogue.Responses) { DialogueResponseNode rNode = ResponseNodes[response.Title]; if (response.Prompts.Count > 0 && rNode != null) { foreach (DialoguePrompt prompt in response.Prompts) { if (PromptNodes[prompt.Title] != null) { ConnectionViewModel connection = new ConnectionViewModel(control.ConversationWorkspace.ViewModel, rNode.PromptsInput, PromptNodes[prompt.Title].FinalPrompt); control.ConversationWorkspace.ViewModel.Connections.Add(connection); } } } } } node.Name = dialogue.Title; control.conversationWorkspace.ViewModel.Nodes.Add(node); control.CurrentDocument = dialogue; document.Content = control; }