Beispiel #1
0
        static void Main(string[] args)
        {
            IValidation validation  = new Validation();
            ComputeDays daysElapsed = new ComputeDays();
            DateTime    StartDate   = DateTime.MinValue;
            DateTime    EndDate     = DateTime.MaxValue;
            string      yesNo;

            do
            {
                bool validStartDate = false;
                bool validEndDate   = false;

                //Validating the start date and making user enter until he enters in correct format
                while (!validStartDate)
                {
                    Console.Write("Please enter start date in format DD/MM/YYYY: ");
                    string startDateInput = Regex.Replace(Console.ReadLine(), @"\s", "");
                    validStartDate = validation.ValidateStartDate(startDateInput, ref StartDate);
                    if (!validStartDate)
                    {
                        Console.WriteLine("Invalid Start Date.");
                    }
                }

                //Validating the end date and making user enter until he enters in correct format
                while (!validEndDate)
                {
                    Console.Write("Please enter end date in format DD/MM/YYYY: ");
                    string endDateInput = Regex.Replace(Console.ReadLine(), @"\s", "");
                    validEndDate = validation.ValidateEndDate(endDateInput, ref EndDate);
                    if (!validEndDate)
                    {
                        Console.WriteLine("Invalid End Date.");
                    }
                }

                if (validStartDate && validStartDate)
                {
                    Console.WriteLine("Dates Validated!");
                    int numberOfDays = daysElapsed.CalculateDaysElapse(StartDate, EndDate);
                    Console.WriteLine(numberOfDays);
                }

                Console.WriteLine("Press 'e' to exit or 'y' to calculate days for another event");
                yesNo = Console.ReadLine().ToLower();
                while (!yesNo.Equals("y") && !yesNo.Equals("e"))
                {
                    Console.WriteLine("Invalid Input!");

                    Console.WriteLine("Press 'e' to exit or 'y' to perform another conversion");

                    yesNo = Console.ReadLine().ToLower();
                }
            }while (yesNo.Equals("y"));
        }
 public void TestCleanup()
 {
     computeDays = null;
     validation  = null;
 }
        static void Main(string[] args)
        {
            IValidation validation  = new Validation();
            ComputeDays daysElapsed = new ComputeDays();
            DateTime    StartDate   = DateTime.MinValue;
            DateTime    EndDate     = DateTime.MaxValue;
            LoadDataXML dataXML     = new LoadDataXML();

            string _filePath = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\..\CalculateDays.ExternalData\Resources"));

            dataXML.Loaddata(_filePath);

            // verifies if the output result file already exists and delete it to allow the system
            // to create a new one for the next input file

            if (File.Exists(_filePath + @"\DaysElapsed.txt"))
            {
                File.Delete(_filePath + @"\DaysElapsed.txt");
            }

            foreach (EventDetails u in LoadDataXML.events)
            {
                bool validStartDate = false;
                bool validEndDate   = false;

                // validates the start date of an event
                // if not logs the error in output file and move to the next iteration
                validStartDate = validation.ValidateStartDate(u.EventStartDate, ref StartDate);
                if (!validStartDate)
                {
                    StringBuilder sb = new StringBuilder();
                    sb.Append("Event Id: " + u.EventId + " - " + "Invalid Start Date");
                    using (StreamWriter swriter = new StreamWriter(_filePath + @"\DaysElapsed.txt", true))
                    {
                        swriter.WriteLine(sb.ToString());
                    }
                    continue;
                }

                // validates the end date of an event
                // if not logs the error in output file and move to the next iteration
                validEndDate = validation.ValidateEndDate(u.EventEndDate, ref EndDate);
                if (!validEndDate)
                {
                    StringBuilder sb = new StringBuilder();
                    sb.Append("Event Id: " + u.EventId + " - " + "Invalid End Date");
                    using (StreamWriter swriter = new StreamWriter(_filePath + @"\DaysElapsed.txt", true))
                    {
                        swriter.WriteLine(sb.ToString());
                    }
                    continue;
                }

                // if the start and end date are valid compute the number of days beween the event
                // and log the result in the output file
                if (validStartDate && validStartDate)
                {
                    int           numberOfDays = daysElapsed.CalculateDaysElapse(StartDate, EndDate);
                    StringBuilder sb           = new StringBuilder();
                    sb.Append("Event Id: " + u.EventId + " - " + "Number of Days Elapsed: " + numberOfDays);
                    using (StreamWriter swriter = new StreamWriter(_filePath + @"\DaysElapsed.txt", true))
                    {
                        swriter.WriteLine(sb.ToString());
                    }
                }
            }
        }
 public void TestInit()
 {
     computeDays = new ComputeDays();
     validation  = new Validation();
 }