private static Ticket TryParsePath(string path) { Ticket usersTicket; AlgorithmsCases algorithmCase = new AlgorithmsCases(); ILuckyTicketsCounter method; string algorithmsName = " "; try { StreamReader fileMethod = new StreamReader(path); if (fileMethod != null) { string line; int lineCount = 0; while ((line = fileMethod.ReadLine()) != null && lineCount != MAX_FILE_LINES_COUNT) { algorithmsName = line; lineCount++; } fileMethod.Close(); } else { Console.WriteLine(TextMessages.PathError); return(null); }// Parsing string from file } catch { Console.WriteLine("Can not find your file, try again:"); Console.WriteLine(TextMessages.Info); return(null); } if (algorithmsName == "Piter") { Console.WriteLine("Piter algorithm"); algorithmCase = AlgorithmsCases.Piter; method = new PiterLuckyNumber(); } else if (algorithmsName == "Moscow") { Console.WriteLine("Moscow algorithm"); algorithmCase = AlgorithmsCases.Moscow; method = new MoskowLuckyTicket(); } else { Console.WriteLine(TextMessages.InvalidMethodsName); return(null); } Console.WriteLine(TextMessages.InputTicket); string usersInput = Console.ReadLine(); if (usersInput != null) { usersTicket = new Ticket(usersInput, algorithmCase, method); if (usersTicket.ticketNumber == null) { Console.WriteLine(TextMessages.InvalidTicket); return(null); } Console.WriteLine(TextMessages.CkeckIsLucky); if (usersTicket.countMethod != null && usersTicket.countMethod.IsLucky(usersTicket)) { Console.WriteLine(TextMessages.LuckyTicket); Console.WriteLine(TextMessages.BlankLine); Console.WriteLine(TextMessages.Info); Console.WriteLine(TextMessages.BlankLine); return(usersTicket); } else { Console.WriteLine(TextMessages.UnluckyTicket); Console.WriteLine(TextMessages.BlankLine); Console.WriteLine(TextMessages.Info); Console.WriteLine(TextMessages.BlankLine); return(null); } } else { return(null); } }
public Ticket(string usersInput, AlgorithmsCases algorithm, ILuckyTicketsCounter countMethod) { ticketNumber = TryParseString(usersInput); algorithmName = algorithm; this.countMethod = countMethod; }