private Response <FileResponse> ReadLine(Response <FileResponse> response, string line) { if (string.IsNullOrEmpty(line)) { return(new Response <FileResponse>(false) .AddErrorMessage("Line is empty")); } if (line.Length <= lineMinimumLength) { return(new Response <FileResponse>(false) .AddErrorMessage("Line is too short")); } var identifier = line.Substring(0, 3); switch (identifier) { case SalesPersonData.Identifier: var responseSalesPerson = new SalesPersonData().Parse(line); if (!responseSalesPerson.IsValid) { foreach (var erorr in responseSalesPerson.MessageList) { response.AddErrorMessage(erorr); } break; } response?.Model?.SalesPerson?.Add(responseSalesPerson); break; case ClientData.Identifier: var responseClient = new ClientData().Parse(line); if (!responseClient.IsValid) { foreach (var erorr in responseClient.MessageList) { response.AddErrorMessage(erorr); } break; } response?.Model?.Client?.Add(responseClient); break; case SalesData.Identifier: var responseSales = new SalesData().Parse(line); if (!responseSales.IsValid) { foreach (var erorr in responseSales.MessageList) { response.AddErrorMessage(erorr); } break; } response?.Model?.Sales?.Add(responseSales); break; default: return(new Response <FileResponse>(false) .AddErrorMessage($"The line identificaror \"{identifier}\" is invalid")); } return(response ?? new Response <FileResponse>()); }
object GetPropertyValue(SalesPersonData obj, string propName) { return(propName == "SalesPerson" ? (object)obj.SalesPerson : (object)obj.Quantity); }