private ParsedResult ParseBookingContent(string[] content, int lineCounter)
        {
            var result = new ParsedResult();

            var inputDate = string.Concat(content[0], " ", content[1]);

            if (!DateTime.TryParse(inputDate, out var date))
            {
                var parseError = new InvalidDate(string.Format(ErrorMessages.InvalidDate, inputDate, lineCounter));
                _errorResolver.Resolve(parseError);
                result.Result = parseError;
                return(result);
            }

            string dateString = content[0] + " " + content[1];

            result = TryParseMeetingRecord(dateString, content[2], lineCounter);

            if (result.Result.Code == ExitCode.InvalidDate)
            {
                result = TryParseEmployeeRecord(dateString, content[2], lineCounter);
                if (result.Result.Code != ExitCode.Success)
                {
                    _errorResolver.Resolve(result.Result);
                }
            }

            return(result);
        }
Beispiel #2
0
        public void ParseContentInvalidDate()
        {
            _workTimeService.ParseInput($"{_path}\\Files\\InvalidDate");

            var error = new InvalidDate(string.Format(ErrorMessages.InvalidDate, "2011-03-k 09:00", 3));

            _errorResolver.Received().Resolve(Arg.Is <InvalidDate>(x => x.Code == ExitCode.InvalidDate && x.Message == error.Message));
        }
        private ParsedResult TryParseEmployeeRecord(string dateString, string employeeAcr, int lineCounter)
        {
            string formatEmployee = "yyyy-MM-dd HH:mm:ss";
            var    result         = new ParsedResult();

            if (!DateTime.TryParseExact(dateString, formatEmployee, CultureInfo.InvariantCulture, DateTimeStyles.None, out var theDate))
            {
                var invalidEmployeeDateError = new InvalidDate(string.Format(ErrorMessages.InvalidDate, dateString, lineCounter));
                result.Result = invalidEmployeeDateError;
            }
            else
            {
                result.BookedRecords.Add(new Employee(theDate, employeeAcr, lineCounter));
            }
            return(result);
        }
Beispiel #4
0
 protected virtual void OnInvalidDate(EventArgs e) => InvalidDate?.Invoke(this, e);