예제 #1
0
        /// <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ФИО|Дело"));
         }
     }
 }