Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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
            }
        }