Эх сурвалжийг харах

Создан проект импорта

Вадим Королёв 6 сар өмнө
parent
commit
24133dbac3

+ 10 - 0
src/DontHarmImport/DontHarmImport.csproj

@@ -0,0 +1,10 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+</Project>

+ 76 - 0
src/DontHarmImport/Program.cs

@@ -0,0 +1,76 @@
+// Программа генерации кода SQL для импорта данных
+// Вызывается через консоль, например DontHarmImport.exe <путь к файлу услуг> <путь к файлу пользователей>
+
+using System.Text;
+
+namespace DontHarmImport
+{
+    internal class Program
+    {
+        static void Main(string[] args)
+        {
+            var scrServices = ImportServices(args[0]);
+            var scrUsers = ImportUsers(args[1]);
+        }
+
+        static string ImportServices(string path)
+        {
+            StringBuilder script = new StringBuilder();
+
+            var fileLines = File.ReadAllLines(path);
+            bool isFirstLine = true;
+            foreach (var line in fileLines)
+            {
+                if (isFirstLine)
+                {
+                    isFirstLine = false;
+                    continue;
+                }
+
+                var parts = line.Split(";");
+                script.AppendLine(
+                    string.Format(
+                        "INSERT INTO services (name, price, code) VALUES ('{0}', {1}, {2});",
+                        parts[1],
+                        parts[2],
+                        parts[0]
+                    )
+                );
+            }
+
+            return script.ToString();
+        }
+
+        static string ImportUsers(string path)
+        {
+            StringBuilder script = new StringBuilder("DECLARE @inserted_row_id INT;\n");
+
+            var fileLines = File.ReadAllLines(path);
+            bool isFirstLine = true;
+            foreach (var line in fileLines)
+            {
+                if (isFirstLine)
+                {
+                    isFirstLine = false;
+                    continue;
+                }
+
+                var parts = line.Split(";");
+                var nameParts = parts[1].Split(",");
+                var login = parts[2];
+                var password = parts[3];
+
+                script.AppendLine(
+                    string.Format(
+                        "INSERT INTO services (name, price, code) VALUES ('{0}', {1}, {2});",
+                        parts[1],
+                        parts[2],
+                        parts[0]
+                    )
+                );
+            }
+
+            return script.ToString();
+        }
+    }
+}