public static string GetEnumDescription(ConsoleDisplayType consoleDisplayType) { var fileInfo = consoleDisplayType.GetType().GetField(consoleDisplayType.ToString()); var attributes = (DescriptionAttribute[])fileInfo.GetCustomAttributes(typeof(DescriptionAttribute), false); return(attributes != null && attributes.Length > 0 ? attributes[0].Description : consoleDisplayType.ToString()); }
private static void PrintConsoleLog(string logText, ConsoleDisplayType consoleDisplayType) { Console.ForegroundColor = ConsoleDisplayHelper.ReturnConsoleTextColor(consoleDisplayType); var logDescription = ConsoleDisplayHelper.GetEnumDescription(consoleDisplayType); var logFormattedText = $"> {DateTime.Now} {logDescription} {logText}"; Console.WriteLine(logFormattedText); Console.ForegroundColor = ConsoleColor.Gray; }
public static ConsoleColor ReturnConsoleTextColor(ConsoleDisplayType consoleDisplayType) { switch (consoleDisplayType) { case ConsoleDisplayType.Success: return(ConsoleColor.Green); case ConsoleDisplayType.Exit: return(ConsoleColor.DarkGray); case ConsoleDisplayType.Information: return(ConsoleColor.Gray); case ConsoleDisplayType.Initialization: return(ConsoleColor.Gray); case ConsoleDisplayType.Instruction: return(ConsoleColor.White); case ConsoleDisplayType.InternalError: return(ConsoleColor.Red); case ConsoleDisplayType.Missing: return(ConsoleColor.Magenta); case ConsoleDisplayType.Option: return(ConsoleColor.White); case ConsoleDisplayType.Preparing: return(ConsoleColor.Gray); case ConsoleDisplayType.ValidationError: return(ConsoleColor.Red); case ConsoleDisplayType.Notification: return(ConsoleColor.DarkYellow); default: return(ConsoleColor.Gray); } }
private static void PrepareMessageRequest(out string returnMessage, out ConsoleDisplayType consoleDisplayType) { PrintConsoleLog("Następuje przygotowanie serwisu", ConsoleDisplayType.Initialization); var messageService = _container.Resolve <IMessageService>(); PrintConsoleLog("Wiadomość będzie teraz opracowywana", ConsoleDisplayType.Preparing); var messageRequest = new MessageRequest(); string legalForm; bool isInvalid = true; var legalFormEnumCount = Enum.GetNames(typeof(LegalForm)).Length; do { PrintConsoleLog("Wprowadź rodzaj kontaktu", ConsoleDisplayType.Instruction); PrintConsoleLog("Dostępne rodzaje to:\r\n\t\t\t\t1 - osoba\r\n\t\t\t\t2 - firma", ConsoleDisplayType.Option); legalForm = AskForInput(); isInvalid = !int.TryParse(legalForm, out int legalFormVerified) || Convert.ToInt32(legalForm) > legalFormEnumCount || Convert.ToInt32(legalForm) < 1; if (isInvalid) { PrintConsoleLog("Niepoprawna wartość!", ConsoleDisplayType.Missing); } } while (isInvalid); var legalFormNumber = Convert.ToInt32(legalForm); var legalFormEnum = (LegalForm)Enum.ToObject(typeof(LegalForm), legalFormNumber); messageRequest.LegalForm = legalFormEnum; string firstName; if (legalFormEnum == LegalForm.Person) { PrintConsoleLog("Wprowadź imię kontaktu", ConsoleDisplayType.Instruction); firstName = AskForInput(); messageRequest.FirstName = firstName; } string lastName; PrintConsoleLog(legalFormEnum == LegalForm.Person ? "Wprowadź nazwisko kontaktu:" : "Wprowadź nazwę firmy", ConsoleDisplayType.Instruction); lastName = AskForInput(); messageRequest.LastName = lastName; AskForContacts(messageRequest); PrintConsoleLog("Następuje próba wysłania wiadomości", ConsoleDisplayType.Information); var message = messageService.Send(messageRequest); PrintConsoleLog("Oczekiwanie na odpowiedź serwisu", ConsoleDisplayType.Information); returnMessage = string.Empty; switch (message.ReturnCode) { case ReturnCode.InternalError: returnMessage = message.ErrorMessage; consoleDisplayType = ConsoleDisplayType.InternalError; break; case ReturnCode.ValidationError: returnMessage = message.ErrorMessage; consoleDisplayType = ConsoleDisplayType.ValidationError; break; case ReturnCode.Success: returnMessage = null; consoleDisplayType = ConsoleDisplayType.Success; break; default: returnMessage = "Nieznany błąd"; consoleDisplayType = ConsoleDisplayType.InternalError; break; } }
private static void DisplayResponseWithFooter(string returnMessage, ConsoleDisplayType consoleDisplayType) { PrintConsoleLog(returnMessage, consoleDisplayType); PrintConsoleLog("Kończenie pracy serwisu", ConsoleDisplayType.Exit); PrintConsoleLog($"Wciśnij dowolny przycisk inny od ESC,\r\n\t\t\tby wznowić działanie aplikacji...", ConsoleDisplayType.Option); }