Пример #1
0
        /// <summary>
        /// Asks for position.
        /// </summary>
        private void AskForPosition()
        {
            var landingAreaName = ConsoleHelpers.ReadConsole("Enter the landing area name");
            var platformName    = ConsoleHelpers.ReadConsole("Enter the platform name");
            var positionX       = Convert.ToDouble(ConsoleHelpers.ReadConsole("Enter the position X"));
            var positionY       = Convert.ToDouble(ConsoleHelpers.ReadConsole("Enter the position Y"));

            var answer = _rocketService.AskForPosition(landingAreaName, platformName, positionX, positionY);

            ConsoleHelpers.WriteLine($"The answer from control center was \"{answer}\"", "warning");

            if (answer.Equals(Constants.OkForLanding))
            {
                var confirm = ConsoleHelpers.ConfirmationPrompt("Request this position ? ");

                if (confirm)
                {
                    var platform = _landingAreaService.GetPlatformsList(landingAreaName)
                                   .FirstOrDefault(x => x.Description == platformName);

                    var position = _positionService.MarkPlatformPosition(platform, positionX, positionY);
                    if (!position.IsAvailable)
                    {
                        ConsoleHelpers.WriteLine($"Position requested successful", "ok");
                    }
                    else
                    {
                        ConsoleHelpers.WriteLine($"Error requesting the position ", "alert");
                    }
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Asks for position.
        /// </summary>
        /// <param name="landingAreaName">Name of the landing area.</param>
        /// <param name="platforName">Name of the platfor.</param>
        /// <param name="areaX">The area x.</param>
        /// <param name="areaY">The area y.</param>
        /// <returns></returns>
        public string AskForPosition(string landingAreaName, string platformName, double areaX, double areaY)
        {
            var landingArea = _landingAreaService.GetLandingAreasList()
                              .FirstOrDefault(x => x.Description == landingAreaName);

            if (landingArea == null)
            {
                return(Constants.LandingAreaNotFound);
            }

            var platform = _landingAreaService.GetPlatformsList(landingAreaName)
                           .FirstOrDefault(x => x.Description == platformName);

            if (platform == null)
            {
                return(Constants.PlatformNotFound);
            }

            var platformPositions = _positionService.GetAvailablePlatformPosition(platform);
            var positionAvailable = platformPositions.FirstOrDefault(x => x.PositionX == areaX && x.PositionY == areaY);

            if (positionAvailable == null)
            {
                return(Constants.OutOfPlatform);
            }

            if (positionAvailable.IsAvailable)
            {
                return(Constants.OkForLanding);
            }

            return(Constants.Clash);
        }