예제 #1
0
        public static CommonEnvelope AskInputNewEnvelope(string envelopeName = "")
        {
            float          width;
            float          height;
            string         s;
            CommonEnvelope envelope = null;

            do
            {
                Console.WriteLine("\r\nPlease, set {0} Envelope`s", envelopeName);
                Console.Write("width: ");
                s     = Console.ReadLine();
                width = Parser.TryGetFloat(s, out ErrorCode errorCode);
                if (errorCode != ErrorCode.Void)
                {
                    Console.WriteLine(errorCode.GetMessage());
                    continue;
                }

                Console.Write("height: ");
                s      = Console.ReadLine();
                height = Parser.TryGetFloat(s, out errorCode);
                if (errorCode != ErrorCode.Void)
                {
                    Console.WriteLine(errorCode.GetMessage());
                    continue;
                }

                envelope = new EnvelopeAnalyzer.Implementation.Rectangular(width, height);
            } while (envelope == null);

            return(envelope);
        }
예제 #2
0
        public static void Start(string[] args)
        {
            #region Initialize logger

            var logRepository = LogManager.GetRepository(System.Reflection.Assembly.GetEntryAssembly());
            XmlConfigurator.Configure(logRepository, new System.IO.FileInfo("Log4Net.config"));
            log.Info("Application [FileParser] Start");

            #endregion

            try
            {
                CommonEnvelope firstEnvelope = GetEnvelopeFromArgs(args);
                do
                {
                    if (firstEnvelope == null)
                    {
                        firstEnvelope = AskInputNewEnvelope("first");
                    }

                    CommonEnvelope secondEnvelope = AskInputNewEnvelope("second");
                    if (firstEnvelope.IsEnoughSpaceFor(secondEnvelope))
                    {
                        firstEnvelope.InnerItem = secondEnvelope;
                        Console.WriteLine("\r\nThe second envelope fits into the first envelope\r\n");
                    }
                    else if (secondEnvelope.IsEnoughSpaceFor(firstEnvelope))
                    {
                        secondEnvelope.InnerItem = firstEnvelope;
                        Console.WriteLine("\r\nThe first envelope fits into the second envelope\r\n");
                    }
                    else
                    {
                        Console.WriteLine("\r\nThe envelopes do not fit each other!\r\n");
                    }

                    firstEnvelope = null;
                } while (AskInputContinue());
            }
            catch (Exception e)
            {
                log.Error(e);
                Console.WriteLine(e.Message);
            }
        }
예제 #3
0
 public override bool IsEnoughSpaceFor(CommonEnvelope innerEnvelope)
 {
     return(innerEnvelope.MaxSide() <= MaxSide() &&
            innerEnvelope.MinSide() <= MinSide());
 }