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); }
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); }
protected virtual void OnInvalidDate(EventArgs e) => InvalidDate?.Invoke(this, e);