public override IEnumerable<IResult> ExtractData(object model, IDataToImport dataToImport, IDataSourceLocation currentLocation) { var results = new List<IResult>(); try { var parsingResult = _parser.Parse(dataToImport, currentLocation, _propertyType) as IParsingResult; _valueAssigner.AssignValue(model, _propertyPath, parsingResult.Value, _propertyType); results.Add(new BaseResult(ResultLevel.DEBUG, string.Format("Extract data from csv file and assign to model {0}", currentLocation.ToString()))); return results; } catch(Exception ex) { results.Add(new BaseResult(ResultLevel.ERROR, string.Format("Extract data from csv file and assign to model fail. {0}", currentLocation.ToString()))); } return results; }
public IResult Validate(IDataToImport dataToImport) { try { var valueParser = _parserFactory.GetElementParser(_elementValueType); var parsedValue = valueParser.Parse(dataToImport, _location, _elementValueType) as IParsingResult; var isCriteriaMet = _criteria.Meet(parsedValue.Value); if (isCriteriaMet) { return(new BaseResult(ResultLevel.INFO, "Criteria matches")); } else { return(new BaseResult(ResultLevel.ERROR, "Criteria not matches")); } } catch (Exception) { return(new BaseResult(ResultLevel.ERROR, "System not able to compare to the criteria since parsing value from data fail. Failing at " + _location.ToString())); } }
public IEnumerable <IResult> ExtractData(object model, IDataToImport dataToImport, IDataSourceLocation locationToParse) { var results = new List <IResult>(); try { var parsingResult = _parser.Parse(dataToImport, locationToParse, _propertyType) as IParsingResult; _valueAssigner.AssignValue(model, _propertyPath, parsingResult.Value, _propertyType); results.Add(new BaseResult(ResultLevel.DEBUG, string.Format("Extract data from xml file and assign to model {0}", locationToParse.ToString()))); return(results); } catch (Exception ex) { results.Add(new BaseResult(ResultLevel.ERROR, string.Format("Extract data from xml file and assign to model fail. {0}", locationToParse.ToString()))); } return(results); }