예제 #1
0
        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);
        }
예제 #2
0
 private static void PathSendCompleteHandler(ControllerTaskResultMessage result)
 {
     if (result.result == DoneMessage)
     {
         Initialized = true;
     }
 }
예제 #3
0
        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));
        }
예제 #5
0
        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);
        }