/// <summary>
 /// Initializes a new instance of the <see cref="SelectCommandHandler"/> class.
 /// DeleteCommandHandler constructor.
 /// </summary>
 /// <param name="cabinetService">fileCabinetService.</param>
 /// <param name="printer">The printer.</param>
 /// <param name="expressionExtensions">expressionExtensions.</param>
 /// <param name="modelWriter">console writer.</param>
 public SelectCommandHandler(IFileCabinetService cabinetService, IExpressionExtensions expressionExtensions, ITablePrinter printer, ModelWriters modelWriter)
     : base(cabinetService)
 {
     this.printer = printer;
     this.expressionExtensions = expressionExtensions;
     this.modelWriter          = modelWriter;
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ImportCommandHandler"/> class.
 /// </summary>
 /// <param name="cabinetService">The cabinet service.</param>
 /// <param name="xmlValidator">The XSD validator.</param>
 /// <param name="xsdValidatorFile">The XSD validator file.</param>
 /// <param name="modelWriter">console writer.</param>
 public ImportCommandHandler(IFileCabinetService cabinetService, IXmlValidator xmlValidator, string xsdValidatorFile, ModelWriters modelWriter)
     : base(cabinetService)
 {
     this.xsdValidatorFile = xsdValidatorFile;
     this.xmlValidator     = xmlValidator;
     this.modelWriter      = modelWriter;
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FileCabinetRecordCsvReader"/> class.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="validator">The validator.</param>
 /// <param name="converter">The converter.</param>
 /// <param name="modelWriter">console writer.</param>
 public FileCabinetRecordCsvReader(StreamReader reader, IRecordValidator validator, Converter converter, ModelWriters modelWriter)
 {
     this.reader      = reader;
     this.validator   = validator;
     this.converter   = converter;
     this.modelWriter = modelWriter;
 }
Ejemplo n.º 4
0
        /// <summary>
        /// PrintInputFields.
        /// </summary>
        /// <param name="modelWriter">Console Writer.</param>
        /// <returns>FileCabinetRecord.</returns>
        public FileCabinetRecord PrintInputFields(ModelWriters modelWriter)
        {
            if (modelWriter is null)
            {
                throw new ArgumentNullException(nameof(modelWriter), $"{nameof(modelWriter)} is null");
            }

            modelWriter.Writer.Invoke("First name: ");
            string firstName = ReadInput(this.converter.StringConverter, FirstNameValidator, modelWriter);

            modelWriter.Writer.Invoke("Last name: ");
            string lastName = ReadInput(this.converter.StringConverter, LastNameValidator, modelWriter);

            modelWriter.Writer.Invoke("Gender(M/F): ");
            char gender = ReadInput(this.converter.CharConverter, GenderValidator, modelWriter);

            modelWriter.Writer.Invoke("Date of birth(mm/dd/yyyy): ");
            DateTime dateOfBirth = ReadInput(this.converter.DateTimeConverter, DateOfBirthValidator, modelWriter);

            modelWriter.Writer.Invoke("Credit sum(bel rub): ");
            decimal credit = ReadInput(this.converter.DecimalConverter, CreditSumValidator, modelWriter);

            modelWriter.Writer.Invoke("Credit duration(month): ");
            short duration = ReadInput(this.converter.ShortConverter, DurationValidator, modelWriter);

            return(new FileCabinetRecord(firstName, lastName, gender, dateOfBirth, credit, duration));
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MissedCommandHandler"/> class.
 /// </summary>
 /// <param name="commands">The commands.</param>
 /// <param name="modelWriter">console writer.</param>
 public MissedCommandHandler(string[] commands, ModelWriters modelWriter)
 {
     MissedCommandHandler.commands    = commands;
     MissedCommandHandler.modelWriter = modelWriter;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="FileCabinetRecordXmlReader"/> class.
 /// </summary>
 /// <param name="streamReader">The reader.</param>
 /// <param name="validator">The validator.</param>
 /// <param name="modelWriter">console writer.</param>
 public FileCabinetRecordXmlReader(StreamReader streamReader, IRecordValidator validator, ModelWriters modelWriter)
 {
     this.streamReader = streamReader;
     this.validator    = validator;
     this.modelWriter  = modelWriter;
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="InsertCommandHandler"/> class.
 /// </summary>
 /// <param name="cabinetService">The file cabinet service.</param>
 /// <param name="modelWriter">console writer.</param>
 public InsertCommandHandler(IFileCabinetService cabinetService, ModelWriters modelWriter)
     : base(cabinetService)
 {
     this.modelWriter = modelWriter;
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ServiceMeter"/> class.
 /// </summary>
 /// <param name="service">The service.</param>
 /// <param name="modelWriter">console writer.</param>
 public ServiceMeter(IFileCabinetService service, ModelWriters modelWriter)
 {
     this.service     = service;
     this.modelWriter = modelWriter;
     this.Create();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="HelpCommandHandler"/> class.
 /// </summary>
 /// <param name="help">The help.</param>
 /// <param name="modelWriter">console writer.</param>
 public HelpCommandHandler(string[][] help, ModelWriters modelWriter)
 {
     helpMessages = help;
     HelpCommandHandler.modelWriter = modelWriter;
 }
Ejemplo n.º 10
0
        private static T ReadInput <T>(Func <string, Tuple <bool, string, T> > converter, Func <T, Tuple <bool, string> > validator, ModelWriters modelWriter)
        {
            do
            {
                T value;

                var input            = modelWriter.Reader.Invoke();
                var conversionResult = converter(input);

                if (!conversionResult.Item1)
                {
                    modelWriter.LineWriter.Invoke($"Conversion failed: {conversionResult.Item2}. Please, correct your input.");
                    continue;
                }

                value = conversionResult.Item3;

                var validationResult = validator(value);
                if (!validationResult.Item1)
                {
                    modelWriter.LineWriter.Invoke($"Validation failed: {validationResult.Item2}. Please, correct your input.");
                    continue;
                }

                return(value);
            }while (true);
        }
Ejemplo n.º 11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdateCommandHandler"/> class.
 /// DeleteCommandHandler constructor.
 /// </summary>
 /// <param name="cabinetService">fileCabinetService.</param>
 /// <param name="expressionExtensions">expressionExtensions.</param>
 /// <param name="modelWriter">console writer.</param>
 public UpdateCommandHandler(IFileCabinetService cabinetService, IExpressionExtensions expressionExtensions, ModelWriters modelWriter)
     : base(cabinetService)
 {
     this.expressionExtensions = expressionExtensions;
     this.modelWriter          = modelWriter;
 }
        /// <summary>
        /// Loads from CSV.
        /// </summary>
        /// <param name="reader">The reader.</param>
        /// <param name="validator">The validator.</param>
        /// <param name="converter">The converter.</param>
        /// <param name="modelWriter">console writer.</param>
        public void LoadFromCsv(StreamReader reader, IRecordValidator validator, Converter converter, ModelWriters modelWriter)
        {
            FileCabinetRecordCsvReader csvReader = new FileCabinetRecordCsvReader(reader, validator, converter, modelWriter);

            this.ReadRecords = csvReader.ReadAll();
        }
        /// <summary>
        /// Loads from XML.
        /// </summary>
        /// <param name="reader">The reader.</param>
        /// <param name="validator">The validator.</param>
        /// <param name="modelWriter">console writer.</param>
        public void LoadFromXml(StreamReader reader, IRecordValidator validator, ModelWriters modelWriter)
        {
            FileCabinetRecordXmlReader xmlReader = new FileCabinetRecordXmlReader(reader, validator, modelWriter);

            this.ReadRecords = xmlReader.ReadAll();
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="CreateCommandHandler"/> class.
 /// </summary>
 /// <param name="cabinetService">The file cabinet service.</param>
 /// <param name="modelWriters">console writer.</param>
 public CreateCommandHandler(IFileCabinetService cabinetService, ModelWriters modelWriters)
     : base(cabinetService)
 {
     this.modelWriters = modelWriters;
 }
Ejemplo n.º 15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ExitCommandHandler"/> class.
 /// </summary>
 /// <param name="isRunning">The is running.</param>
 /// <param name="dispose">Dispose.</param>
 /// <param name="modelWriter">console writer.</param>
 public ExitCommandHandler(IDisposable dispose, Action <bool> isRunning, ModelWriters modelWriter)
 {
     this.dispose     = dispose;
     this.isRunning   = isRunning;
     this.modelWriter = modelWriter;
 }