Ejemplo n.º 1
0
 public ImportService(IStorageAccess storageAccess, IQueueService queueService, ITransformationFileService transformationFileService, IOptions <TransformationSettings> transformationSettings)
 {
     _storageAccess             = storageAccess;
     _queueService              = queueService;
     _transformationFileService = transformationFileService;
     _transformationSettings    = transformationSettings.Value;
 }
Ejemplo n.º 2
0
        public List <Coordinate> TransformCoordinates(List <Coordinate> coordinates, TransformationSettings transformation)
        {
            List <Coordinate> transformedCoordinates;

            if (transformation.RotateFirst)
            {
                var tempCoordinates = RotateCoordinates(coordinates, transformation.Rotation);
                transformedCoordinates = ReflectCoordinates(tempCoordinates, transformation.Reflection);
            }
            else
            {
                var tempCoordinates = ReflectCoordinates(coordinates, transformation.Reflection);
                transformedCoordinates = RotateCoordinates(tempCoordinates, transformation.Rotation);
            }

            return(TranslateCoordinates(transformedCoordinates, transformation.HorizontalOffset, transformation.VerticalOfsset));
        }
        public async Task <string> TransformFile(string fileName, TransformationSettings settings)
        {
            var lines = File.ReadAllLines(fileName);

            string[] headers;

            return(await Task.Run(() =>
            {
                headers = settings.HeaderOnFirstRow ? lines[0].Split(settings.Separator).Select(x => x.Trim('\"').Trim('\'')).ToArray() : lines[0].Split(settings.Separator).Select((s, i) => $"Column{i}").ToArray();

                var list = new XElement(Path.GetFileNameWithoutExtension(fileName));

                for (var index = 0; index < lines.Length; index++)
                {
                    if (settings.HeaderOnFirstRow && index == 0)
                    {
                        continue;
                    }

                    var xElement = new XElement(Path.GetFileNameWithoutExtension(fileName));

                    var data = lines[index].Split(settings.Separator);

                    for (var x = 0; x < data.Length; x++)
                    {
                        if (string.IsNullOrEmpty(headers[x]))
                        {
                            continue;
                        }
                        var item = data[x];
                        xElement.Add(new XElement(headers[x].Replace(" ", ""), item.Trim('\"').Trim('\'')));
                    }

                    list.Add(xElement);
                }

                return list.ToString();
            }));
        }