예제 #1
0
        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>());
        }
예제 #2
0
 object GetPropertyValue(SalesPersonData obj, string propName)
 {
     return(propName == "SalesPerson" ? (object)obj.SalesPerson : (object)obj.Quantity);
 }