private IEnumerable <IResponse> GenerateResponse(string line) { if (!requestQueue.Any()) { throw new InvalidOperationException(); } var peekResponse = requestQueue.Peek(); var messageList = line?.Split('|'); if (peekResponse.AnswerType == null) { if (string.IsNullOrWhiteSpace(line)) { return(Enumerable.Empty <ResponseDictionary>()); } return(messageList.Select(msg => new ResponseDictionary(ParseKeyValueLineDict(msg, false)))); } else { if (string.IsNullOrWhiteSpace(line)) { return(Enumerable.Empty <IResponse>()); } return(messageList.Select(msg => { var response = Generator.ActivateResponse(peekResponse.AnswerType); FillQueryMessage(peekResponse.AnswerType, response, ParseKeyValueLine(msg, false)); return response; })); } }
private void OnBobConnect(object sender, ClientEnterView e) { if (!awaitingConnect) { return; } Log.Write(Log.Level.Debug, "BC user entered with GrId {0}", e.ServerGroups); if (e.ServerGroups.ToIntArray().Contains(bobControllerData.bobGroupId)) { Log.Write(Log.Level.Debug, "BC user with correct UID found"); bobClient = Generator.ActivateResponse <ClientData>(); { bobClient.ChannelId = e.TargetChannelId; bobClient.DatabaseId = e.DatabaseId; bobClient.ClientId = e.ClientId; bobClient.NickName = e.NickName; bobClient.ClientType = e.ClientType; } isRunning = true; awaitingConnect = false; Log.Write(Log.Level.Debug, "BC bob is now officially running"); SendQueue(); } }
public ClientData GetSelf() { var cd = Generator.ActivateResponse <ClientData>(); var data = tsClient.WhoAmI(); cd.ChannelId = data.ChannelId; cd.DatabaseId = data.DatabaseId; cd.ClientId = data.ClientId; cd.NickName = data.NickName; cd.ClientType = ClientType.Query; return(cd); }
public void HistoryFileIntergrityTest() { string testFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "history.test"); if (File.Exists(testFile)) { File.Delete(testFile); } var inv1 = Generator.ActivateResponse <ClientData>(); { inv1.ClientId = 10; inv1.DatabaseId = 101; inv1.NickName = "Invoker1"; } var inv2 = Generator.ActivateResponse <ClientData>(); { inv2.ClientId = 20; inv2.DatabaseId = 102; inv2.NickName = "Invoker2"; } var ar1 = new SoundcloudResource("asdf", "sc_ar1", "https://soundcloud.de/sc_ar1"); var ar2 = new MediaResource("./File.mp3", "me_ar2", "https://splamy.de/sc_ar2", RResultCode.Success); var data1 = new PlayData(null, inv1, "", false) { Resource = ar1, }; var data2 = new PlayData(null, inv2, "", false) { Resource = ar2, }; HistoryFile hf = new HistoryFile(); hf.OpenFile(testFile); hf.Store(data1); var lastXEntries = hf.GetLastXEntrys(1); Assert.True(lastXEntries.Any()); var lastEntry = lastXEntries.First(); Assert.AreEqual(ar1, lastEntry); hf.CloseFile(); hf.OpenFile(testFile); lastXEntries = hf.GetLastXEntrys(1); Assert.True(lastXEntries.Any()); lastEntry = lastXEntries.First(); Assert.AreEqual(ar1, lastEntry); hf.Store(data1); hf.Store(data2); lastXEntries = hf.GetLastXEntrys(1); Assert.True(lastXEntries.Any()); lastEntry = lastXEntries.First(); Assert.AreEqual(ar2, lastEntry); hf.CloseFile(); // store and order check hf.OpenFile(testFile); var lastXEntriesArray = hf.GetLastXEntrys(2).ToArray(); Assert.AreEqual(2, lastXEntriesArray.Length); Assert.AreEqual(ar1, lastXEntriesArray[0]); Assert.AreEqual(ar2, lastXEntriesArray[1]); var ale1 = hf.GetEntryById(hf.Contains(ar1).Value); hf.LogEntryRename(ale1, "sc_ar1X", false); hf.LogEntryPlay(ale1); hf.CloseFile(); // check entry renaming hf.OpenFile(testFile); lastXEntriesArray = hf.GetLastXEntrys(2).ToArray(); Assert.AreEqual(2, lastXEntriesArray.Length); Assert.AreEqual(ar2, lastXEntriesArray[0]); Assert.AreEqual(ar1, lastXEntriesArray[1]); var ale2 = hf.GetEntryById(hf.Contains(ar2).Value); hf.LogEntryRename(ale2, "me_ar2_loong1"); hf.LogEntryPlay(ale2); ale1 = hf.GetEntryById(hf.Contains(ar1).Value); hf.LogEntryRename(ale1, "sc_ar1X_loong1"); hf.LogEntryPlay(ale1); hf.LogEntryRename(ale2, "me_ar2_exxxxxtra_loong1"); hf.LogEntryPlay(ale2); hf.CloseFile(); // reckeck order hf.OpenFile(testFile); lastXEntriesArray = hf.GetLastXEntrys(2).ToArray(); Assert.AreEqual(2, lastXEntriesArray.Length); Assert.AreEqual(ar1, lastXEntriesArray[0]); Assert.AreEqual(ar2, lastXEntriesArray[1]); hf.CloseFile(); // delete entry 2 hf.OpenFile(testFile); hf.LogEntryRemove(hf.GetEntryById(hf.Contains(ar2).Value)); lastXEntriesArray = hf.GetLastXEntrys(2).ToArray(); Assert.AreEqual(1, lastXEntriesArray.Length); Assert.AreEqual(ar1, lastXEntriesArray[0]); hf.CloseFile(); // delete entry 1 hf.OpenFile(testFile); hf.LogEntryRemove(hf.GetEntryById(hf.Contains(ar1).Value)); lastXEntriesArray = hf.GetLastXEntrys(2).ToArray(); Assert.AreEqual(0, lastXEntriesArray.Length); hf.CloseFile(); File.Delete(testFile); }