Exemplo n.º 1
0
        public async Task <int> StartAsync()
        {
            try
            {
                var requestOptionsList = (await _options.GetOptionsAsync()).ToList();
                Console.WriteLine($"request options are successfully read from file!");
                var invalidRequestOptionsList = requestOptionsList.Where(op => !(op.Item1.IsValid && op.Item2.IsValid));
                foreach (var item in invalidRequestOptionsList)
                {
                    Console.WriteLine($"Request {item.Item1.Name ?? "no name"} is invalid and will not be performed!");
                    _logger.Log($"Request {item.Item1.Name ?? "no name"} is invalid and will not be performed!");
                }
                requestOptionsList = requestOptionsList.Where(op => op.Item1.IsValid && op.Item2.IsValid).ToList();

                var tasks = requestOptionsList.
                            Select(options => _performer.PerformRequestAsync(options.Item1, options.Item2)).ToArray();

                var t = await Task.WhenAll(tasks);

                Console.WriteLine($"Requests: " +
                                  $"{string.Join(", ",requestOptionsList.Select(op => op.Item1.Name))}" +
                                  " were successfully performed!");
            }
            catch (PerformException e)
            {
                Console.WriteLine("Unknown exception occured while performing requests!");
                _logger.Log(e, "PerformException was handled in main menu!");
                return(-1);
            }
            return(0);
        }
Exemplo n.º 2
0
 public async Task <int> StartAsync()
 {
     try
     {
         logger.Log("Download options");
         MainMenu.ConsoleWrite("Download options");
         var optionsValue = (await options.GetOptionsAsync()).Where(option => option.Item1.IsValid == true);
         logger.Log("Run tasks");
         MainMenu.ConsoleWrite("Run tasks");
         var tasks = optionsValue
                     .Select(opt => performer.PerformRequestAsync(opt.Item1, opt.Item2)).ToArray();
         logger.Log("Wait tasks");
         MainMenu.ConsoleWrite("Wait tasks");
         Task.WaitAll(tasks);
         tasks.ToList().ForEach(t =>
         {
             logger.Log("Id task:" + t.Id + ",Status:" + t.Status.ToString() + ",Result:" + t.Result);
             MainMenu.ConsoleWrite("Id task:" + t.Id + ",Status:" + t.Status.ToString() + ",Result:" + t.Result);
         });
         return(0);
     }
     catch (PerformException perform)
     {
         return(-1);
     }
 }
Exemplo n.º 3
0
        public async Task <int> StartAsync()
        {
            Console.WriteLine("Program is started.");
            Console.WriteLine("Reading from file...");
            _logger.Log("Start reading file.");

            // get options from file
            var requestOptions = await _options.GetOptionsAsync();

            _logger.Log("File was read.");
            Console.WriteLine("Data from file was read!");

            try
            {
                _logger.Log("Start sending messages.");
                Console.WriteLine("Sending requests to servers...");

                //sending requests to servers
                var tasks = requestOptions.Where(x => x.Item1.IsValid || x.Item2.IsValid)
                            .Select(x => _performer.PerformRequestAsync(x.Item1, x.Item2)).ToArray();

                // waiting all tasks
                await Task.WhenAll(tasks);

                _logger.Log("End sending messages.");
                Console.WriteLine("Requests was send and files was created!");
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine("Data from file is missing or empty!");
                _logger.Log(e, e.Message);
                return(-1);
            }
            catch (ArgumentOutOfRangeException e)
            {
                Console.WriteLine("Invalid parameters in file!");
                _logger.Log(e, e.Message);
                return(-1);
            }
            catch (PerformException e)
            {
                Console.WriteLine("Something going wrong!");
                _logger.Log(e, e.Message);
                return(-1);
            }

            Console.WriteLine("Program is ended!");
            Console.WriteLine("Goodbye!");

            return(0);
        }
Exemplo n.º 4
0
        public async Task <int> StartAsync()
        {
            Console.WriteLine("HTTP request processor\nby Andrey Basystyi\nReading from json...");

            var options         = (await _optionsSource.GetOptionsAsync());
            var validOptions    = options.Where(opt => opt.Item1.IsValid && opt.Item2.IsValid).Count();
            var notValidOptions = options.Where(opt => !opt.Item1.IsValid || !opt.Item2.IsValid).Count();

            #region Print valid/not valid options
            Console.WriteLine($"Was read {options.Count()} elements\nWhere:");
            Console.WriteLine($"{validOptions} are valid");
            _logger.Log($"Read {options.Count()} elements");
            _logger.Log($"Valid options: {validOptions}");
            if (notValidOptions != 0)
            {
                Console.WriteLine($"{notValidOptions} are invalid");
                _logger.Log($"Invalid options: {notValidOptions}");
            }
            #endregion
            if (options.Count() == 0)
            {
                Console.WriteLine("Empty options list");
                _logger.Log("Empty options");
            }

            try
            {
                var tasks = options.Select(opt => _performer.PerformRequestAsync(opt.Item1, opt.Item2)).ToArray();
                Console.WriteLine($"Start {tasks.Length} http-requests...");
                var result = await Task.WhenAll(tasks);

                PrintResult(result);
                return(result.Any(r => r == false) ? -1 : 0);
            }
            catch (PerformException ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
                _logger.Log(ex, "Handled PerformException");
                return(-1);
            }
        }
Exemplo n.º 5
0
        public async Task <int> StartAsync()
        {
            Console.WriteLine("Request Processor, made by Denys Sakadel");
            try
            {
                Console.WriteLine("Getting options...");
                logger.Log("Getting options...");
                var list = await options.GetOptionsAsync();

                logger.Log("Got options");
                Console.WriteLine("Got options");

                Console.WriteLine("Performing request...");
                logger.Log("Performing request...");
                var tasks = list.Select(opt => performer.PerformRequestAsync(opt.Item1, opt.Item2)).ToArray();

                var isRequestSuccess = Task.WhenAll(tasks);

                if (isRequestSuccess.Result[0])
                {
                    Console.WriteLine("Request was successfully performed");
                    logger.Log("Request was successfully performed");
                    return(0);
                }
                else
                {
                    Console.WriteLine("Request failed");
                    logger.Log("Request failed");
                    return(-1);
                }
            } catch (Exception e)
            {
                Console.WriteLine(e + " something went wrong with performing request");
                logger.Log(e, " something went wrong with performing request");
                return(-1);
            }
        }
Exemplo n.º 6
0
        private async Task JoinRoomWithBot()
        {
            logger.Trace("JoinRoomWithBot method");
            Console.WriteLine("Trying to connect to training room with bot");
            var options = new RequestOptions
            {
                Address = baseAddress + $"room/create/training/{_sessionId}",
                IsValid = true,
                Body    = _sessionId,
                Method  = Services.RequestModels.RequestMethod.Get,
                Name    = "Creating training Room"
            };
            var reachedResponse = await _performer.PerformRequestAsync(options);

            if (reachedResponse.Content != null)
            {
                logger.Trace($"Catched response from Join Room with Bot method. Code: {reachedResponse.Code}");
                _room = JsonConvert.DeserializeObject <Room>(reachedResponse.Content);
                Console.WriteLine("Room with bot created!");
                logger.Info("Room with bot created!");
                await ChangePlayerStatus();
                await StartRoomMenu();
            }
        }
Exemplo n.º 7
0
        public async Task <int> StartAsync()
        {
            Console.WriteLine("\nMade by Mulish Vadym");
            Console.WriteLine("Task 1. HTTP request processor\n");
            List <(IRequestOptions, IResponseOptions)> options;

            try
            {
                IEnumerable <(IRequestOptions, IResponseOptions)> result = await _options.GetOptionsAsync();

                if (result == null)
                {
                    _logger.Log("Options list is empty");
                    Console.WriteLine("Options list is empty");

                    return(0);
                }
                options = result.ToList();
            }
            catch (OptionsAccessException exception)
            {
                _logger.Log(exception, "Error occured when trying to read options from file.");
                Console.WriteLine("Error occured when trying to read options from file.\n" +
                                  $"{exception.Message}");

                return(-1);
            }

            if (!options.Any())
            {
                _logger.Log("Options list is empty");
                Console.WriteLine("Options list is empty");

                return(0);
            }

            var validOptions            = options.Where(o => o.Item1.IsValid && o.Item2.IsValid).ToList();
            int numberOfRemovedRequests = options.Count - validOptions.Count;

            if (numberOfRemovedRequests > 0)
            {
                _logger.Log($"Amount of invalid options: {numberOfRemovedRequests}");
                Console.WriteLine($"Amount of invalid options: {numberOfRemovedRequests}");
            }

            try
            {
                _logger.Log($"Amount of requests to be processed: {validOptions.Count}\n");
                Console.WriteLine($"Amount of requests to be processed: {validOptions.Count}\n");

                _logger.Log("Processing begins...");
                Console.WriteLine("Processing begins...\n");

                Task <bool>[] tasks = validOptions.Select(opt => _performer.PerformRequestAsync(opt.Item1, opt.Item2))
                                      .ToArray();
                Task.WaitAll(tasks);

                _logger.Log($"Amount of successfully processed requests: {tasks.Count(t => t.Result)}");
                Console.WriteLine($"Amount of successfully processed requests: {tasks.Count(t => t.Result)}");

                _logger.Log($"Amount of unprocessed requests: {tasks.Count(t => t.Result == false)}");
                Console.WriteLine($"Amount of unprocessed requests: {tasks.Count(t => t.Result == false)}");

                _logger.Log("Program has ended");
                Console.WriteLine("\nProgram has ended");

                return(0);
            }
            catch (Exception exception)
            {
                if (exception is PerformException ||
                    exception is ArgumentOutOfRangeException ||
                    exception is ArgumentNullException)
                {
                    _logger.Log(exception, "Error occured.");
                    Console.WriteLine($"Error occured.\n{exception.Message}");

                    return(-1);
                }

                throw;
            }
        }