public static void Run(string[] args) { string algorithmFilePath = string.Empty; TicketCountAlgorithms currentAlgorhytm = TicketCountAlgorithms.None; if (args.Length == 0) { algorithmFilePath = UI.RequestFilePath(); } else { algorithmFilePath = args[0]; } AlgorithmGetter algorithmGet = new AlgorithmGetter(new AlgorithmFileReader()); currentAlgorhytm = algorithmGet.GetAlgorhytm(algorithmFilePath); if (currentAlgorhytm != TicketCountAlgorithms.None) { ulong ticketCount = 0; LuckyTicketsCounter counter; try { switch (currentAlgorhytm) { case TicketCountAlgorithms.Moscow: counter = new LuckyTicketsCounterMoscow(DEFAULT_DIGITS_NUMBER); ticketCount = counter.GetLuckyTicketsQuantity(); break; case TicketCountAlgorithms.Piter: counter = new LuckyTicketsCounterPiter(DEFAULT_DIGITS_NUMBER); ticketCount = counter.GetLuckyTicketsQuantity(); break; default: break; } } catch (InvalidTicketDigitsCountException ex) { UI.PrintExceptionMessage(ex); } catch (RecursionDepthTooBigException ex) { UI.PrintExceptionMessage(ex); } UI.PrintTicketsCount(ticketCount); } else { UI.PrintHelp(Path.GetFullPath(algorithmFilePath)); } }
public static void Run(string[] args) { string algorithmFilePath = string.Empty; if (args.Length == 0) { algorithmFilePath = UI.RequestFilePath(); } else { algorithmFilePath = args[0]; } algorithmFilePath = Path.GetFullPath(algorithmFilePath); if (!TryValidateFilePath(ref algorithmFilePath)) { UI.PrintHelp(algorithmFilePath); return; } TicketCountAlgorithms currentAlgorhytm; if (TryGetAlgorhytm(algorithmFilePath, out currentAlgorhytm)) { ulong ticketCount = 0; try { if (currentAlgorhytm == TicketCountAlgorithms.Moscow) { ticketCount = new LuckyTicketsCounterMoscow(DEFAULT_DIGITS_NUMBER).GetLuckyTicketsQuantity(); } if (currentAlgorhytm == TicketCountAlgorithms.Piter) { ticketCount = new LuckyTicketsCounterPiter(DEFAULT_DIGITS_NUMBER).GetLuckyTicketsQuantity(); } } catch (InvalidTicketDigitsCountException ex) { UI.PrintExceptionMessage(ex); } catch (RecursionDepthTooBigException ex) { UI.PrintExceptionMessage(ex); } UI.PrintTicketsCount(ticketCount); } else { UI.PrintHelp(algorithmFilePath); } }