Exemplo n.º 1
0
        public void HandleFiles()
        {
            Console.WriteLine("Server file task runs...");

            var resultFilePath  = ConfigurationManager.AppSettings["ResultFilePath"];
            var wrongFolderPath = ConfigurationManager.AppSettings["WrongFolderPath"];
            var resultDirectory = fileHelper.GetDirectoryWithValidation(resultFilePath);
            var wrongDirectory  = fileHelper.GetDirectoryWithValidation(wrongFolderPath);

            if (resultDirectory == null)
            {
                Console.WriteLine("ERROR :: Result directory is not availanle");
                return;
            }

            if (wrongFolderPath == null)
            {
                Console.WriteLine("ERROR :: Wrong directory is not availanle");
                return;
            }

            var queue = messagingHelper.GetQueue(ConfigurationManager.AppSettings["QueueName"]);

            if (queue == null)
            {
                Console.WriteLine("ERROR :: Queue for files doesn't exist");
                return;
            }

            List <SequanceMessage> messages = messagingHelper.ReceiveMessagesUsingEnumerator(queue);

            if (messages.Any())
            {
                Console.WriteLine("I am handling file messages");
            }

            foreach (var list in messages.OrderBy(m => m.Position).GroupBy(m => m.SequanceId))
            {
                byte[] fileBytes = fileHelper.CombineGroupOfBytes(list);
                string path      = resultFilePath + list.Select(m => m.Label).First();
                fileHelper.AppendAllBytes(path, fileBytes);
            }

            if (resultDirectory.GetFiles("*.jpg").Any())
            {
                fileHelper.Archivation(resultDirectory, wrongDirectory);
                Console.WriteLine("New archive was created");
            }

            Guid clientGuid = messages.Select(m => m.ClientId).First();

            if (clientGuid != Guid.Empty)
            {
                SendNewSettings(clientGuid);
                Console.WriteLine($"New settings was sent to client {clientGuid}");
            }
            else
            {
                Console.WriteLine("ERROR :: Client id is not specified");
            }
        }