private static async void FindSimilarFinishedHandler(ControllerTaskResultMessage result) { if (result.result != BackendConctroller.DoneMessage) { return; } if (!FolderPickTasks.Any(i => i.Value.Contains(result.taskid))) { return; } int folderPick = -1; foreach (var item in FolderPickTasks) { if (item.Value.Remove(result.taskid)) { folderPick = item.Key; break; } } foreach (var group in result.images) { await FolderPickFolder[folderPick].GroupImagesAsync(group); } await CheckAllTasksInFolderPickDone(folderPick); }
private static void PathSendCompleteHandler(ControllerTaskResultMessage result) { if (result.result == DoneMessage) { Initialized = true; } }
private static void MessageReceiver(object sender, MessageReceivedEventArgs e) { if (e.QueueName != IncomingQueueName) { return; } if (!ControllerTaskResultMessage.IsJsonValidMessage(e.Message)) { return; } var message = ControllerTaskResultMessage.FromJson(e.Message); if (!Tasks.ContainsKey(message.taskid)) { return; } if (!TaskResultMessages.Contains(message.result)) { return; } //throw new FormatException($"Message is of bad format. Contains invalid result message. Message: {e.Message}"); Action <ControllerTaskResultMessage> action = TaskCompleteActions[message.taskid]; TaskCompleteActions.Remove(message.taskid); Tasks.Remove(message.taskid); action(message); }
public void FromJsonTest() { string msg = "{\"taskid\":1,\"result\":\"RESULT\",\"error_message\":\"ERROR\",\"images\":[[\"image1\",\"image2\"],[\"image3\",\"image4\"]]}"; var expected = new ControllerTaskResultMessage() { taskid = 1, result = "RESULT", error_message = "ERROR", images = { new List <int>() { 1, 2 }, new List <int>() { 3, 4 } } }; var result = ControllerTaskResultMessage.FromJson(msg); Assert.AreEqual(expected.taskid, result.taskid); Assert.AreEqual(expected.result, result.result); Assert.AreEqual(expected.error_message, result.error_message); Assert.IsTrue(expected.images.SequenceEqual(result.images)); }
private static async void CheckQualityFinishedHandler(ControllerTaskResultMessage result) { if (result.result != BackendConctroller.DoneMessage) { return; } if (!FolderPickTasks.Any(i => i.Value.Contains(result.taskid))) { return; } int folderPick = -1; foreach (var item in FolderPickTasks) { if (item.Value.Remove(result.taskid)) { folderPick = item.Key; break; } } foreach (var item in result.images) { foreach (var image in FolderPickImages[folderPick]) { if (item[0] == image.DatabaseId) { image.Quality = item[1]; break; } } } await CheckAllTasksInFolderPickDone(folderPick); }