/// <summary> /// Start processing person object from reading, parsing, validating, sorting, and writing to output file /// </summary> /// <param name="reader">person data provider</param> /// <param name="parser">person data parser</param> /// <param name="writer">person data writer</param> /// <param name="validator">person data validator</param> /// <param name="sorter">person data sorter</param> /// <returns>List of persons</returns> public IList <PersonDTO> Process() { Messages = new List <String>(); var providedData = _reader.Read(); var parsedData = _parser.Parse(providedData); var validatedData = _validator.Validate(parsedData); var sortedData = _sorter.Sort(validatedData); _writer.Write(sortedData); Messages = Messages.Concat(_validator.Messages); return(sortedData); }
public CommandResult Execute(Command command, CommandMeta meta, ICommandSyntax syntax) { try { var person = personParser.Parse(command.Args[0], meta.PhotoId); PersonRepository.Write(person); return(CommandResult.AsSucceed("Карточка добавлена")); } catch { try { var poster = posterParser.Parse(command.Args[0], meta.PhotoId); PosterRepository.Write(poster); return(CommandResult.AsSucceed("Плакат добавлен")); } catch { return(CommandResult.AsFailed( "Ожидаемый формат карточки:\n\n[Фото]\nФИО\nДело\nАдрес\n[День рождения]\n[Информация]\n[Тип]\n[Статус]\n\nОжидаемый формат плаката:\n\nФото\nФИО|Дело")); } } }