public static void Create(string start, string end, string path) { ValuesContext dbV = new ValuesContext(); DateTime sTime, eTime; sTime = Convert.ToDateTime(start); eTime = Convert.ToDateTime(end); Value valuestart = dbV.Values.Where(v => v.Time >= sTime).FirstOrDefault(); // Начальное значение Value valueend = dbV.Values.Where(v => v.Time >= eTime).FirstOrDefault(); // Конечное значение if (valueend == null) { int id = dbV.Values.Max(v => v.Id); valueend = dbV.Values.Find(id); } Dot[] dots = new Dot[valueend.Id - valuestart.Id + 1]; // Массив объектов из БД int i = 0; for (int id = valuestart.Id; id <= valueend.Id; id++) { var value = dbV.Values.Find(id); // Нахождение строчки в БД по значению if (value == null) { break; } Dot dot = new Dot(value.Id, value.LabVal, value.SensVal, value.Time); // Создаёт объект с параметрами из БД dots[i] = dot; i++; } using (FileStream fstream = new FileStream(path, FileMode.OpenOrCreate)) { for (i = 0; i < dots.Length; i++) { // преобразуем строку в байты byte[] array = Encoding.Default.GetBytes ($@"L_{dots[i].LabVal} S_{dots[i].SensVal} T_{dots[i].Time}.{dots[i].Time.Millisecond} L-S:{dots[i].LabVal - dots[i].SensVal}" + "\n\n"); // запись массива байтов в файл fstream.Write(array, 0, array.Length); } } }
public static string Creator(string start, string end) { ValuesContext dbV = new ValuesContext(); DateTime sTime, eTime; sTime = Convert.ToDateTime(start); eTime = Convert.ToDateTime(end); Value valuestart = dbV.Values.Where(v => v.Time >= sTime).FirstOrDefault(); // Начальное значение Value valueend = dbV.Values.Where(v => v.Time >= eTime).FirstOrDefault(); // Конечное значение if (valueend == null) { int id = dbV.Values.Max(v => v.Id); valueend = dbV.Values.Find(id); } if (valuestart == null) { valuestart = valueend; } Dot[] dots = new Dot[0]; if (valueend.Id - valuestart.Id > 0) { int i = 0; dots = new Dot[valueend.Id - valuestart.Id + 1]; // Массив объектов из БД for (int id = valuestart.Id; id <= valueend.Id; id++) { var value = dbV.Values.Find(id); // Нахождение строчки в БД по значению Dot dot = new Dot(value.Id, value.LabVal, value.SensVal, value.Time); // Создаёт объект с параметрами из БД dots[i] = dot; i++; } } return(JsonConvert.SerializeObject(dots)); }
public static void FillLabVals(string path) { DirectoryInfo dirInfo = new DirectoryInfo(path); // Переменная класса для работы с файлами string[] lines = new string[3]; // Массив для записи строк из файла byte[] readArray; if (dirInfo.Exists) { using (FileStream read = File.OpenRead(path + $@"\{DateTime.Now.Day}.txt")) { readArray = new byte[read.Length]; // Преобразуем строку в байты read.Read(readArray, 0, readArray.Length); // Считываем данные string textFromFile = System.Text.Encoding.Default.GetString(readArray); // Декодируем байты в строку #region File strings of laboratory numbers into array of strings for (int i = 0; i < 3; i++) { int indexofnewline = textFromFile.IndexOf('\n'); lines[i] = textFromFile.Substring(0, indexofnewline - 1); textFromFile = textFromFile.Remove(0, indexofnewline + 1); } #endregion #region Write this array of strings into Data Base using (ValuesContext dbV = new ValuesContext()) // Создание контекста данных { int lastindexofnewnum; int startindexofnewnum; string[] texttodb = new string[3]; for (int i = 0; i < 3; i++) { for (int j = 0; j < texttodb.Length; j++) { startindexofnewnum = lines[i].IndexOf('_'); lastindexofnewnum = lines[i].IndexOf(' '); if (j == texttodb.Length - 1) { lastindexofnewnum = lines[i].LastIndexOf(' '); } texttodb[j] = lines[i].Substring(startindexofnewnum + 1, lastindexofnewnum - 1); lines[i] = lines[i].Remove(0, lastindexofnewnum + 1); } Value value = new Value(Convert.ToDouble(texttodb[0]), Convert.ToDouble(texttodb[1]), Convert.ToDateTime(texttodb[2])); dbV.Values.Add(value); dbV.SaveChanges(); } } #endregion } #region Adding a new line in .txt file after writing data in data base using (FileStream writing = new FileStream(path + $@"\{DateTime.Now.Day}.txt", FileMode.OpenOrCreate)) { for (int i = readArray.Length - 1; i >= 1; i--) { readArray[i] = readArray[i - 1]; } readArray[0] = 10; writing.Write(readArray, 0, readArray.Length); } #endregion } }