tmp
This commit is contained in:
		
							
								
								
									
										196
									
								
								ShowTrend_tmp3/ShowTrend3/Controllers/APIController.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										196
									
								
								ShowTrend_tmp3/ShowTrend3/Controllers/APIController.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,196 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
using Newtonsoft.Json.Linq;
 | 
			
		||||
using ShowTrend3.Libs;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Controllers
 | 
			
		||||
{
 | 
			
		||||
    public class APIController : Controller
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        public IActionResult DirBrowse([FromBody] JObject date)
 | 
			
		||||
        {
 | 
			
		||||
            string[] dateArr = date["date"].ToString().Split('-');
 | 
			
		||||
            DateTime dateRequest = new DateTime(Int32.Parse(dateArr[0]), Int32.Parse(dateArr[1]), Int32.Parse(dateArr[2]));
 | 
			
		||||
            string request = dateArr[0] + "/" + dateArr[1] + "/" + dateArr[2];
 | 
			
		||||
 | 
			
		||||
            NetClient netClient = new NetClient();
 | 
			
		||||
 | 
			
		||||
            Queue<string> dir1 = netClient.DirBrowse(request);
 | 
			
		||||
 | 
			
		||||
            Queue<string> dir2 = new Queue<string>();
 | 
			
		||||
            if (dateRequest.Year == DateTime.Now.Year &&
 | 
			
		||||
                dateRequest.Month == DateTime.Now.Month &&
 | 
			
		||||
                dateRequest.Day == DateTime.Now.Day)
 | 
			
		||||
                dir2 = netClient.DirBrowse("current");
 | 
			
		||||
 | 
			
		||||
            JArray result = new JArray();
 | 
			
		||||
 | 
			
		||||
            while(dir1.Count != 0)
 | 
			
		||||
            {
 | 
			
		||||
                string r = dir1.Dequeue();
 | 
			
		||||
                if (string.IsNullOrEmpty(r.Split('.')[0]))
 | 
			
		||||
                    continue;
 | 
			
		||||
                string name = r.Split('.')[0];
 | 
			
		||||
                string[] temp = name.Split('-');
 | 
			
		||||
                name = temp[1];
 | 
			
		||||
                for (int j = 2; j < temp.Length; j++)
 | 
			
		||||
                    name += "-" + temp[j];
 | 
			
		||||
                JObject val = new JObject
 | 
			
		||||
                {
 | 
			
		||||
                    ["Dir"] = request + "/" + r,
 | 
			
		||||
                    ["Name"] = name
 | 
			
		||||
                };
 | 
			
		||||
                result.Add(val);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            List<int> nameTemp = new List<int>();
 | 
			
		||||
            while(dir2.Count != 0)
 | 
			
		||||
            {
 | 
			
		||||
                string r = dir2.Dequeue();
 | 
			
		||||
                if (!string.IsNullOrEmpty(r.Split('.')[1]))
 | 
			
		||||
                    nameTemp.Add(Int32.Parse(r.Split('.')[1]));
 | 
			
		||||
            }
 | 
			
		||||
            nameTemp.Sort();
 | 
			
		||||
            for (int i = 0; i < nameTemp.Count; i++)
 | 
			
		||||
            {
 | 
			
		||||
                JObject val = new JObject
 | 
			
		||||
                {
 | 
			
		||||
                    ["Dir"] = "current/VDP." + nameTemp[i].ToString().PadLeft(2, '0'),
 | 
			
		||||
                    ["Name"] = "Печь №" + nameTemp[i]
 | 
			
		||||
                };
 | 
			
		||||
                result.Add(val);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return Content(result.ToString());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        public IActionResult Pasport([FromBody] JObject date)
 | 
			
		||||
        {
 | 
			
		||||
            NetClient netClient = new NetClient();
 | 
			
		||||
            PasportVDP pasp = netClient.PaspDownload(date["pasport"].ToString());
 | 
			
		||||
            JObject result = new JObject()
 | 
			
		||||
            {
 | 
			
		||||
                ["have_date"] = pasp.HaveDate,
 | 
			
		||||
                ["have_pasport"] = pasp.HavePasport,
 | 
			
		||||
                ["time_start"] = pasp.TimeStart.ToString(),
 | 
			
		||||
                ["time_end"] = pasp.TimeEnd.ToString()
 | 
			
		||||
            };
 | 
			
		||||
            if (!pasp.HavePasport)
 | 
			
		||||
                return Content(result.ToString());
 | 
			
		||||
            result.Add("num_plav", pasp.NPlav);
 | 
			
		||||
            result.Add("splav", pasp.Splav);
 | 
			
		||||
            result.Add("is", pasp._is);
 | 
			
		||||
            result.Add("pereplav", pasp.PrPl);
 | 
			
		||||
            result.Add("naznachenie", pasp.Nazn);
 | 
			
		||||
            result.Add("kategory", pasp.Kat);
 | 
			
		||||
            result.Add("zakaz", pasp.Zakaz);
 | 
			
		||||
            result.Add("ves_slit", pasp.VesSlit);
 | 
			
		||||
            result.Add("kompl", pasp.Kompl);
 | 
			
		||||
            result.Add("diam_krist", pasp.Dkr);
 | 
			
		||||
            result.Add("diam_electr", pasp.Diam);
 | 
			
		||||
            result.Add("num_kontract", pasp.Nkon);
 | 
			
		||||
            result.Add("ukazanie", pasp.Ukaz);
 | 
			
		||||
 | 
			
		||||
            result.Add("kod_npl", pasp.KodNPlav.ToString());
 | 
			
		||||
            result.Add("rm", pasp.RM);
 | 
			
		||||
            result.Add("notd", pasp.Notd.ToString());
 | 
			
		||||
            result.Add("tin", pasp.Tin);
 | 
			
		||||
            result.Add("dzap", pasp.Dzap);
 | 
			
		||||
            result.Add("dlog", pasp.Dlog.ToString());
 | 
			
		||||
            result.Add("last", pasp.Last.ToString());
 | 
			
		||||
            result.Add("dlper", pasp.Dlper.ToString());
 | 
			
		||||
            result.Add("izl", pasp.Izl.ToString());
 | 
			
		||||
            result.Add("robm", pasp.Robm.ToString());
 | 
			
		||||
            result.Add("rizol", pasp.Rizol.ToString());
 | 
			
		||||
            result.Add("pos", pasp.Pos);
 | 
			
		||||
            result.Add("pril", pasp.Pril);
 | 
			
		||||
            return Content(result.ToString());
 | 
			
		||||
        }
 | 
			
		||||
        public async Task<IActionResult> TechCycle([FromBody] JObject date)
 | 
			
		||||
        {
 | 
			
		||||
            NetClient netClient = new NetClient();
 | 
			
		||||
            if (!int.TryParse(date["vdp"].ToString(), out int vdp) ||
 | 
			
		||||
                !DateTime.TryParse(date["timeStart"].ToString(), out DateTime timeStart) ||
 | 
			
		||||
                !DateTime.TryParse(date["timeEnd"].ToString(), out DateTime timeEnd))
 | 
			
		||||
                return Content("[]");
 | 
			
		||||
 | 
			
		||||
            var techCycle = await netClient.TechCycle(vdp, timeStart, timeEnd);
 | 
			
		||||
            JArray result = new JArray();
 | 
			
		||||
 | 
			
		||||
            foreach (var e in techCycle)
 | 
			
		||||
            {
 | 
			
		||||
                if (e.Key < timeStart ||
 | 
			
		||||
                    e.Key > timeEnd)
 | 
			
		||||
                    continue;
 | 
			
		||||
                var x = new TechCycle();
 | 
			
		||||
                result.Add(new JObject() {
 | 
			
		||||
                    ["date"] = e.Key.ToString(),
 | 
			
		||||
                    ["value"] = x.CycleName[e.Value],
 | 
			
		||||
                    ["color"] = x.ConvertColorHexToRGB(x.CycleColorHex[e.Value])
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return Content(result.ToString());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        public async Task<IActionResult> Analog([FromBody] JObject date)
 | 
			
		||||
        {
 | 
			
		||||
            TempDir.Clear();
 | 
			
		||||
            NetClient netClient = new NetClient();
 | 
			
		||||
            if (date.Type != JTokenType.Object ||
 | 
			
		||||
                date["vdp"].Type != JTokenType.Integer ||
 | 
			
		||||
                date["timeStart"].Type != JTokenType.String ||
 | 
			
		||||
                date["timeEnd"].Type != JTokenType.String ||
 | 
			
		||||
                date["signals"].Type != JTokenType.Array)
 | 
			
		||||
                return Content("[]");
 | 
			
		||||
            if (!DateTime.TryParse(date.Value<string>("timeStart"), out DateTime timeStart) ||
 | 
			
		||||
                !DateTime.TryParse(date.Value<string>("timeEnd"), out DateTime timeEnd))
 | 
			
		||||
                return Content("[]");
 | 
			
		||||
 | 
			
		||||
            List<int> vdp = new List<int> { date.Value<int>("vdp") };
 | 
			
		||||
            if (date.Value<int>("vdp") >= 1 && date.Value<int>("vdp") <= 48)
 | 
			
		||||
            {
 | 
			
		||||
                vdp.Add(49);
 | 
			
		||||
                vdp.Add(0);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            StringBuilder res = new StringBuilder();
 | 
			
		||||
            res.Append("[]");
 | 
			
		||||
            int correct = 0;
 | 
			
		||||
            for (int i = 0; i < vdp.Count; i++)
 | 
			
		||||
            {
 | 
			
		||||
                int analogLength = new AnalogSignals(vdp[i]).analogs.Count;
 | 
			
		||||
                List<int> signals = new List<int>();
 | 
			
		||||
                foreach (var e in date["signals"])
 | 
			
		||||
                    if (e.Type == JTokenType.Integer && e.Value<int>() - correct >= 0 && e.Value<int>() - correct < analogLength)
 | 
			
		||||
                        signals.Add(e.Value<int>() - correct);
 | 
			
		||||
                var a = await netClient.Analog(vdp[i], timeStart.ToUniversalTime(), timeEnd.ToUniversalTime(), signals.ToArray());
 | 
			
		||||
                CustomConverters.CompareStringBuilder(ref res, a.ReturnResultJson());
 | 
			
		||||
                correct += analogLength;
 | 
			
		||||
            }
 | 
			
		||||
            return Content(res.ToString());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        public IActionResult ListAnalog([FromBody] JObject date)
 | 
			
		||||
        {
 | 
			
		||||
            if (date.Type != JTokenType.Object || date["vdp"].Type != JTokenType.Integer)
 | 
			
		||||
                return Content("[]");
 | 
			
		||||
            StringBuilder res = new AnalogSignals(date.Value<int>("vdp")).ReturnListJson();
 | 
			
		||||
            if (date.Value<int>("vdp") >= 1 && date.Value<int>("vdp") <= 48)
 | 
			
		||||
            {
 | 
			
		||||
                CustomConverters.CompareStringBuilder(ref res, new AnalogSignals(49).ReturnListJson());
 | 
			
		||||
                CustomConverters.CompareStringBuilder(ref res, new AnalogSignals(0).ReturnListJson());
 | 
			
		||||
            }
 | 
			
		||||
            return Content(res.ToString());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								ShowTrend_tmp3/ShowTrend3/Controllers/SauController.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								ShowTrend_tmp3/ShowTrend3/Controllers/SauController.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Controllers
 | 
			
		||||
{
 | 
			
		||||
    public class SauController : Controller
 | 
			
		||||
    {
 | 
			
		||||
        public IActionResult Index()
 | 
			
		||||
        {
 | 
			
		||||
            return View();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public IActionResult Analog()
 | 
			
		||||
        {
 | 
			
		||||
            return View();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										262
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/AnalogSignals.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										262
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/AnalogSignals.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,262 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Libs
 | 
			
		||||
{
 | 
			
		||||
    public class AnalogSignals
 | 
			
		||||
    {
 | 
			
		||||
        public int VDP = -1;
 | 
			
		||||
        public List<Analog> analogs = new List<Analog>();
 | 
			
		||||
        public int[] retAnalogs = new int[0];
 | 
			
		||||
        public AnalogSignals(int VDP)
 | 
			
		||||
        {
 | 
			
		||||
            this.VDP = VDP;
 | 
			
		||||
            if (VDP == 49)
 | 
			
		||||
            {
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 92, 93 }, v = false, n = "Энергия плавильного пролёта", sn = "Эн.пролёта, МВт", s = "МВт", m = 0.1 });
 | 
			
		||||
            }
 | 
			
		||||
            if (VDP >= 1 && VDP <= 47)
 | 
			
		||||
            {
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 0, 1 }, v = true, s = "кА", m = 0.1, n = "Ток дуги", sn = "I д" });
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 2, 3 }, v = true, s = "В", m = 0.1, n = "Напряжение дуги", sn = "U д" });
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 4, 5 }, v = false, s = "А", m = 0.1, n = "Ток рабочего двигателя", sn = "I рд"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 6, 7 }, v = false, s = "В", m = 0.1, n = "U рабочего двигателя", sn = "U рд"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 8, 9 }, v = false, s = "А", m = 0.1, n = "Ток соленоида", sn = "I сол"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 10, 1 }, v = false, s = "В", m = 0.1, n = "U соленоида", sn = "U сол"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 12, 13 }, v = false, s = "кА", m = 0.1, n = "Ток задания", sn = "I рз"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 14, 15 }, v = false, s = "гр.С", m = 1, n = "t кристаллизатора на входе", sn = "t кр.вых"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 16, 17 }, v = false, s = "гр.С", m = 1, n = "t кристаллизатора на выходе", sn = "t кр.вх"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 18, 19 }, v = false, s = "гр.С", m = 1, n = "t вакуум-камеры", sn = "t вак-кам"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 20, 21 }, v = false, s = "гр.С", m = 1, n = "t штока", sn = "t шт"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 22, 23 }, v = false, s = "В", m = 0.1, n = "U контроля", sn = "U конт"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 24, 25 }, v = true, s = "мм", m = 1, n = "Перемещение", sn = "S шт"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 26, 27 }, v = true, s = "мкм.рт.с", m = 0.1, n = "Вакуум", sn = "Вакуум"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 28, 29 }, v = false, s = "В", m = 0.1, n = "Изоляция шток-крышка", sn = "R шт-кр"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 30, 31 }, v = false, s = "В", m = 0.1, n = "Изоляция крышка-камера", sn = "R кр-кам"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 32, 33 }, v = false, s = "м^3/ч", m = 1, n = "Расход воды", sn = "Q в.кр"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 34, 35 }, v = true, s = "", m = 1, n = "Капельные замыкания", sn = "Кап.зам."});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 36, 37 }, v = false, s = "", m = 1, n = "Усреднённая ширина импульсов КЗ", sn = "Кап.зым."});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 38, 39 }, v = false, s = "м^3/ч", m = 0.1, n = "Проток воды фланца", sn = "Qв. фл."});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 40, 41 }, v = false, s = "м^3/ч", m = 0.1, n = "Проток воды штока", sn = "Qв. шт."});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 42, 43 }, v = false, s = "кгс/см^2", m = 0.01, n = "Давление воды крист.+1,5", sn = "P в.кр"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 44, 45 }, v = false, s = "м^3/ч", m = 0.1, n = "Проток воды камеры", sn = "Qв. кам."});
 | 
			
		||||
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 58, 59 }, v = false, s = "кА", m = 0.1, n = "Ток задания источника(САУ)", sn = "I з.ист САУ"});
 | 
			
		||||
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 62, 63 }, v = false, s = "В", m = 0.1, n = "ПИД-рег. основная уставка", sn = "ПИД-осн"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 64, 65 }, v = false, s = "В", m = 0.1, n = "ПИД-рег. макс. скорость", sn = "ПИД-макс"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 66, 67 }, v = false, s = "гр.С", m = 1, n = "t фланца вакуум-камеры", sn = "t фл."});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 68, 69 }, v = false, s = "гр.С", m = 1, n = "t подставки", sn = "t под."});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 70, 71 }, v = false, s = "м^3/ч", m = 1, n = "Проток воды подставки", sn = "Qв. под."});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 72, 73 }, v = false, s = "А", m = 0.1, n = "Задание соленоида", sn = "Зад. сол."});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 74, 75 }, v = false, s = "кА", m = 1, n = "Ток задания источника(преобраз.)", sn = "I з.ист. преоб."});
 | 
			
		||||
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 78, 79 }, v = false, s = "мм.рт.ст", m = 0.1,  n = "Вакуум по МЕТРАН-1200", sn = "МЕТРАН-1200"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 80, 81 }, v = false, s = "мм.рт.ст", m = 0.001,  n = "Вакуум по МЕТРАН-18,75", sn = "МЕТРАН-18,25"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 82, 83 }, v = false, s = "кгс/см^2", m = 0.1, n = "Давление газа в баллоне", sn = "P г.балл."});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 84, 85 }, v = false, s = "кгс/см^2", m = 0.1, n = "Давление воды поддона", sn = "P в.подд."});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 86, 87 }, v = false, s = "кА", m = 0.1, n = "Задание тока дуги (ЦАП)", sn = "Зад.I, ЦАП"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 88, 89 }, v = false, s = "В", m = 0.1, n = "Задкние скорости рабочего двигателя", sn = "Зад.ск.раб.дв"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 90, 91 }, v = false, s = "А", m = 0.01, n = "Ток двигателя насоса ARPW", sn = "I дв. ARPW"});
 | 
			
		||||
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 94, 95 }, v = false, s = "В", m = 1, n = "Среднее напряжение плавления", sn = "U средн, В"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 90, 91 }, v = false, s = "А", m = 1, n = "ГМП: ток катушки 1", sn = "I кат1 ГМП"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 90, 91 }, v = false, s = "А", m = 1, n = "ГМП: ток катушки 2", sn = "I кат2 ГМП"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 90, 91 }, v = false, s = "А", m = 1, n = "ГМП: ток катушки 3", sn = "I кат3 ГМП"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 90, 91 }, v = false, s = "Гц", m = 1, n = "ГМП: частота", sn = "Част. ГМП"});
 | 
			
		||||
            }
 | 
			
		||||
            if (VDP == 1)
 | 
			
		||||
            {
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 99, 100 }, v = false, s = "кг", m = 0.1, n = "Масса стружки оставшаяся", sn = "Масс. стр. ост." });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (VDP >= 91 && VDP <= 92)
 | 
			
		||||
            {
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 80, 81 }, v = false, s = "В", m = 0.1, n = "Дельта U", sn = "dU" });
 | 
			
		||||
                for (int i = 0; i < 3; i++) analogs.Add(new Analog() { id = new int[] { i * 2 + 82, i * 2 + 83 }, v = false, s = "кА", m = 0.1, n = "Ток ДБТ" + (i + 1), sn = "I ДБТ" + (i + 1) });
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 104, 105 }, v = false, s = "гр.С", m = 0.1, n = "Температура в точке №41", sn = "t41" });
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 106, 107 }, v = false, s = "кПа", m = 0.1, n = "Давление водооборота", sn = "p водооб" });
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 112, 113 }, v = false, s = "кгс/см^2", m = 0.1, n = "Давление масла над поршнем", sn = "P мнп" });
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 114, 115 }, v = false, s = "кгс/см^2", m = 0.1, n = "Давление масла под поршнем", sn = "P мпп" });
 | 
			
		||||
            }
 | 
			
		||||
            if (VDP >= 93 && VDP <= 94)
 | 
			
		||||
            {
 | 
			
		||||
                for (int i = 0; i < 2; i++) analogs.Add(new Analog() { id = new int[] { i * 2 + 76, i * 2 + 77 }, v = false, s = "кА", m = 0.1, n = "Ток нижних подводов шина " + (i + 1), sn = "I шина" + i });
 | 
			
		||||
                for (int i = 0; i < 4; i++) analogs.Add(new Analog() { id = new int[] { i * 2 + 80, i * 2 + 81 }, v = false, s = "кА", m = 0.1, n = "Ток нижних подводов шина " + (i + 3), sn = "I шина" + (i + 3) });
 | 
			
		||||
                for (int i = 0; i < 2; i++) analogs.Add(new Analog() { id = new int[] { i * 2 + 104, i * 2 + 105 }, v = false, s = "кА", m = 0.1, n = "Ток нижних подводов шина " + (i + 7), sn = "I шина" + (i + 7) });
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 112, 113 }, v = false, s = "кгс/см^2", m = 0.1, n = "Давление в верх. цилиндре прижима", sn = "P в.цил." });
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 114, 115 }, v = false, s = "кгс/см^2", m = 0.1, n = "Давление в нижн. цилиндре прижима", sn = "P в.цил." });
 | 
			
		||||
            }
 | 
			
		||||
            if (VDP >= 91 && VDP <= 94)
 | 
			
		||||
            {
 | 
			
		||||
                for (int i = 0; i < 9; i++)   analogs.Add(new Analog() { id = new int[] { i * 2, i * 2 + 1 }, v = false, s = "гр.С", m = 0.1, n = "Температура в точке №" + (i + 1), sn = "t" + (i + 1)});
 | 
			
		||||
                for (int i = 9; i < 18; i++)  analogs.Add(new Analog() { id = new int[] { i * 2, i * 2 + 1 }, v = false, s = "гр.С", m = 0.1, n = "Температура в точке №" + (i + 2), sn = "t" + (i + 2)});
 | 
			
		||||
                for (int i = 18; i < 38; i++) analogs.Add(new Analog() { id = new int[] { i * 2, i * 2 + 1 }, v = false, s = "гр.С", m = 0.1, n = "Температура в точке №" + (i + 3), sn = "t" + (i + 3)});
 | 
			
		||||
                
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 88, 89}, v = false, s = "А", m = 1, n = "Ток рабочего двигателя", sn = "I рд"});///??? mnoj
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 90, 91 }, v = false, s = "В", m = 0.1, n = "Напряжение рабоч. двигателя", sn = "U рд"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 92, 93 }, v = false, s = "В", m = 0.1, n = "Сопротивление изол. на плавке", sn = "U шт-кр"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 94, 95 }, v = false, s = "кОм", m = 0.1, n = "Сопротивление изол. шток-крышка", sn = "R изол"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 96, 97 }, v = false, s = "В", m = 0.1, n = "Уставка по напряжению дуги", sn = "U уст"});
 | 
			
		||||
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 100, 101 }, v = false, s = "мкм.рт.с", m = 0.1, n = "Вакуум по Ceravac", sn = "Ceravac"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 102, 103 }, v = false, s = "кПа", m = 0.1, n = "Вакуум по МЕТРАН-2.5", sn = "МЕТРАН 2.5"});
 | 
			
		||||
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 108, 109 }, v = false, s = "гр", m = 0.1, n = "Угол поворота тигля", sn = "П.тиг"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 110, 111 }, v = false, s = "кПа", m = 0.1, n = "Вакуум по МЕТРАН-1200", sn = "МЕТРАН 1200"});
 | 
			
		||||
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 116, 117 }, v = true, s = "мм", m = 0.1, n = "Перемещение штока", sn = "S шт"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 118, 119 }, v = false, s = "кВт*ч", m = 1, n = "Затраченная электр. энергия", sn = "Энергия"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 120, 121 }, v = true, s = "кА", m = 0.1, n = "Ток дуги", sn = "I д"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 122, 123 }, v = true, s = "В", m = 0.1, n = "Напряжение дуги", sn = "U д"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 124, 125 }, v = true, s = "мм^3/ч", m = 0.2, n = "Расход воды", sn = "Q в"}); ///???
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 126, 127 }, v = true, s = "мкм.рт.с", m = 0.1, n = "Вакуум", sn = "Вакуум"});
 | 
			
		||||
                analogs.Add(new Analog() { id = new int[] { 128, 129 }, v = false, s = "кг", m = 1, n = "Вес слитого металла", sn = "Вес"});
 | 
			
		||||
            }
 | 
			
		||||
            analogs.Sort(SortDelegate);
 | 
			
		||||
        }
 | 
			
		||||
        public void AddSignals(DateTime d, List<byte?> b)
 | 
			
		||||
        {
 | 
			
		||||
            for (int e = 0; e < analogs.Count; e++)
 | 
			
		||||
            {
 | 
			
		||||
                bool flag = false;
 | 
			
		||||
                for (int i = 0; i < retAnalogs.Length; i++)
 | 
			
		||||
                    flag |= (e == retAnalogs[i]);
 | 
			
		||||
                if (!flag)
 | 
			
		||||
                    continue;
 | 
			
		||||
                byte?[] temp = new byte?[analogs[e].id.Length];
 | 
			
		||||
                for (int i = 0; i < temp.Length; i++)
 | 
			
		||||
                    temp[i] = b[analogs[e].id[i]];
 | 
			
		||||
                analogs[e].AddSignal(d, temp);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public StringBuilder ReturnListJson()
 | 
			
		||||
        {
 | 
			
		||||
            StringBuilder a = new StringBuilder();
 | 
			
		||||
            a.Append("[");
 | 
			
		||||
            foreach (var e in analogs)
 | 
			
		||||
            {
 | 
			
		||||
                a.Append("{");
 | 
			
		||||
                a.Append("\"fn\":\"" + e.n + "\",");
 | 
			
		||||
                a.Append("\"sn\":\"" + e.sn + "\",");
 | 
			
		||||
                a.Append("\"s\":\"" + e.s + "\",");
 | 
			
		||||
                a.Append("\"v\":");
 | 
			
		||||
                if (e.v)
 | 
			
		||||
                    a.Append("true");
 | 
			
		||||
                else
 | 
			
		||||
                    a.Append("false");
 | 
			
		||||
                a.Append("},");
 | 
			
		||||
            }
 | 
			
		||||
            if(a.Length > 1)
 | 
			
		||||
                a.Remove(a.Length - 1, 1);
 | 
			
		||||
            a.Append("]");
 | 
			
		||||
            return a;
 | 
			
		||||
        }
 | 
			
		||||
        public StringBuilder ReturnResultJson()
 | 
			
		||||
        {
 | 
			
		||||
            StringBuilder a = new StringBuilder();
 | 
			
		||||
            a.Append("[");
 | 
			
		||||
            for (int e = 0; e < analogs.Count; e++)
 | 
			
		||||
            {
 | 
			
		||||
                bool flag = false;
 | 
			
		||||
                for (int i = 0; i < retAnalogs.Length; i++)
 | 
			
		||||
                    flag |= (e == retAnalogs[i]);
 | 
			
		||||
                if (!flag)
 | 
			
		||||
                    continue;
 | 
			
		||||
                a.Append("[2,\"x\",\"y\"");
 | 
			
		||||
                if (analogs[e].answer.Length > 0)
 | 
			
		||||
                    a.Append("," + analogs[e].answer);
 | 
			
		||||
                a.Append("],");
 | 
			
		||||
            }
 | 
			
		||||
            if(a.Length > 1)
 | 
			
		||||
                a.Remove(a.Length - 1, 1);
 | 
			
		||||
            a.Append("]");
 | 
			
		||||
            return a;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static int SortDelegate(Analog x, Analog y)
 | 
			
		||||
        {
 | 
			
		||||
            if (x.id  == null || x.id.Length < 1)
 | 
			
		||||
                if (y.id == null || y.id.Length < 1) return 0;
 | 
			
		||||
                else return 1;
 | 
			
		||||
            else 
 | 
			
		||||
                if (y.id == null || y.id.Length < 1) return -1;
 | 
			
		||||
                else return x.id[0].CompareTo(y.id[0]);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class Analog
 | 
			
		||||
    {
 | 
			
		||||
        public int[] id = new int[0];
 | 
			
		||||
        public string n = "";
 | 
			
		||||
        public string sn = "";
 | 
			
		||||
        public string s = "";
 | 
			
		||||
        public double m = 1;
 | 
			
		||||
        public bool v = true;
 | 
			
		||||
        public StringBuilder answer = new StringBuilder();
 | 
			
		||||
        public List<(long x, double? y)> Signals = new List<(long, double?)>();
 | 
			
		||||
        public DateTime lastDate;
 | 
			
		||||
        public void AddSignal(DateTime d, byte?[] lh)
 | 
			
		||||
        {
 | 
			
		||||
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
 | 
			
		||||
            long x = CustomConverters.JStDateConv(d);
 | 
			
		||||
            double? y = lh[0].HasValue && lh[1].HasValue ? n == "Вакуум" ?
 | 
			
		||||
                BitConverter.ToUInt16(new byte[] { (byte)lh[0], (byte)lh[1] }, 0) * m :
 | 
			
		||||
                BitConverter.ToInt16(new byte[] { (byte)lh[0], (byte)lh[1] }, 0) * m :
 | 
			
		||||
                (double?)null;
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                if (Signals.Count == 0)
 | 
			
		||||
                {
 | 
			
		||||
                    Signals.Add((x, y));
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
                if (y == null)
 | 
			
		||||
                {
 | 
			
		||||
                    Signals.Add((Signals.Last().x, y));
 | 
			
		||||
                    Signals.Add((x, y));
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if (Signals.Count < 2 || y != Signals.Last().y ||
 | 
			
		||||
                    y != Signals[Signals.Count - 2].y ||
 | 
			
		||||
                    d < lastDate)
 | 
			
		||||
                {
 | 
			
		||||
                    Signals.Add((x, y));
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
                Signals.Add((x, y));
 | 
			
		||||
                Signals.RemoveAt(Signals.Count - 2);
 | 
			
		||||
            }
 | 
			
		||||
            finally
 | 
			
		||||
            {
 | 
			
		||||
                lastDate = d;
 | 
			
		||||
                while (Signals.Count > 3)
 | 
			
		||||
                {
 | 
			
		||||
                    string yy = Signals[0].y.HasValue ? Signals[0].y.ToString() : "null";
 | 
			
		||||
                    if (answer.Length != 0)
 | 
			
		||||
                        answer.Append(",");
 | 
			
		||||
                    answer.Append(Signals[0].x + "," + yy);
 | 
			
		||||
                    Signals.RemoveAt(0);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public void Finish()
 | 
			
		||||
        {
 | 
			
		||||
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
 | 
			
		||||
            while (Signals.Count > 0)
 | 
			
		||||
            {
 | 
			
		||||
                string yy = Signals[0].y.HasValue ? Signals[0].y.ToString() : "null";
 | 
			
		||||
                if (answer.Length != 0)
 | 
			
		||||
                    answer.Append(",");
 | 
			
		||||
                answer.Append(Signals[0].x + "," + yy);
 | 
			
		||||
                Signals.RemoveAt(0);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
        
 | 
			
		||||
							
								
								
									
										67
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/Converters.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/Converters.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Diagnostics;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Runtime.InteropServices;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Libs
 | 
			
		||||
{
 | 
			
		||||
    public static class CustomConverters
 | 
			
		||||
    {
 | 
			
		||||
        private static DateTime _jan1st1970 = new DateTime(1970, 1, 1);
 | 
			
		||||
        public static long JStDateConv(DateTime from)
 | 
			
		||||
        {
 | 
			
		||||
            return System.Convert.ToInt64((from - _jan1st1970).TotalMilliseconds);
 | 
			
		||||
        }
 | 
			
		||||
        public static DateTime JStDateConv(long from)
 | 
			
		||||
        {
 | 
			
		||||
            return _jan1st1970.AddMilliseconds(from);
 | 
			
		||||
        }
 | 
			
		||||
        public static int ArchNameToNumVDP(string s)
 | 
			
		||||
        {
 | 
			
		||||
            var t = s.Split('.');
 | 
			
		||||
            if (t.Last() != "gz")
 | 
			
		||||
                return int.Parse(t.Last());
 | 
			
		||||
            t = t[0].Split('-');
 | 
			
		||||
            if (t.Length == 2)
 | 
			
		||||
                return int.Parse(t.Last());
 | 
			
		||||
            if (t.Length == 4)
 | 
			
		||||
                return int.Parse(t[2]);
 | 
			
		||||
            return -1;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static bool CompareStringBuilder(ref StringBuilder a, StringBuilder b)
 | 
			
		||||
        {
 | 
			
		||||
            if (a.Length <= 0 || b.Length <= 0)
 | 
			
		||||
                return false;
 | 
			
		||||
            if (a[0] != '[' && a[a.Length - 1] != ']')
 | 
			
		||||
                return false;
 | 
			
		||||
            if (b[0] != '[' && b[b.Length - 1] != ']')
 | 
			
		||||
                return false;
 | 
			
		||||
            if (b.Length > 2)
 | 
			
		||||
            {
 | 
			
		||||
                a.Remove(a.Length - 1, 1);
 | 
			
		||||
                if (a.Length > 1)
 | 
			
		||||
                    a.Append(',');
 | 
			
		||||
                a.Append(b, 1, b.Length - 1);
 | 
			
		||||
            }
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static string ExceptionToString(Exception e)
 | 
			
		||||
        {
 | 
			
		||||
            string res = "";
 | 
			
		||||
            char sl = RuntimeInformation.IsOSPlatform(OSPlatform.Linux) ? '/' : '\\';
 | 
			
		||||
            var st = new StackTrace(e, true).GetFrame(0);
 | 
			
		||||
            res = st.GetFileName().Split(sl).Last() + " > " +
 | 
			
		||||
                st.GetMethod().DeclaringType + " > " +
 | 
			
		||||
                st.GetMethod() + " > " +
 | 
			
		||||
                st.GetFileLineNumber() + ":" +
 | 
			
		||||
                st.GetFileColumnNumber() + " > " +
 | 
			
		||||
                e.Message;
 | 
			
		||||
            return res;
 | 
			
		||||
        }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/DiscretSignals.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/DiscretSignals.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Libs
 | 
			
		||||
{
 | 
			
		||||
    public class DiscretSignals
 | 
			
		||||
    {
 | 
			
		||||
        public int VDP = -1;
 | 
			
		||||
        public List<Discret> discret = new List<Discret>();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class Discret
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										703
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/NetClient.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										703
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/NetClient.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,703 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Net;
 | 
			
		||||
using System.Net.Sockets;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using System.Globalization;
 | 
			
		||||
using System.IO;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Libs
 | 
			
		||||
{
 | 
			
		||||
    public class NetClient
 | 
			
		||||
    {
 | 
			
		||||
        private readonly string ServerStr = "10.10.45.152";
 | 
			
		||||
        private readonly int PortStr = 1070;
 | 
			
		||||
        private readonly IPEndPoint IpPoint;
 | 
			
		||||
        private enum Cmd
 | 
			
		||||
        {
 | 
			
		||||
            pasp_download = 4,
 | 
			
		||||
            history = 20,
 | 
			
		||||
            download_nh = 21,
 | 
			
		||||
            dir_browse = 23
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public NetClient()
 | 
			
		||||
        {
 | 
			
		||||
            IpPoint = new IPEndPoint(IPAddress.Parse(ServerStr), PortStr);
 | 
			
		||||
        }
 | 
			
		||||
        public Queue<string> DirBrowse(string dir)
 | 
			
		||||
        {
 | 
			
		||||
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
 | 
			
		||||
            {
 | 
			
		||||
                ReceiveTimeout = 5000,
 | 
			
		||||
                SendTimeout = 5000
 | 
			
		||||
            };
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                //Connect
 | 
			
		||||
                socket.Connect(IpPoint);
 | 
			
		||||
                //SendRequest
 | 
			
		||||
                socket.Send(CreateCommand(Cmd.dir_browse, dir, 0).ToArray());
 | 
			
		||||
                Queue<string> result = new Queue<string>();
 | 
			
		||||
                //GetRequest
 | 
			
		||||
                byte mark;
 | 
			
		||||
                while (true)
 | 
			
		||||
                {
 | 
			
		||||
                    mark = SocketReceiveByte(ref socket);
 | 
			
		||||
                    if (mark == 0xff || mark == 0x00)
 | 
			
		||||
                        break;
 | 
			
		||||
                    if (mark == 0x01)
 | 
			
		||||
                    {
 | 
			
		||||
                        string r = SocketReceiveString(ref socket);
 | 
			
		||||
                        if (r != "" || r != "." || r != "..")
 | 
			
		||||
                            result.Enqueue(r);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                return result;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
                return new Queue<string>();
 | 
			
		||||
            }
 | 
			
		||||
            finally
 | 
			
		||||
            {
 | 
			
		||||
                socket.Disconnect(false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public PasportVDP PaspDownload(string dir)
 | 
			
		||||
        {
 | 
			
		||||
            PasportVDP result = new PasportVDP();
 | 
			
		||||
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
 | 
			
		||||
            {
 | 
			
		||||
                ReceiveTimeout = 5000,
 | 
			
		||||
                SendTimeout = 2000
 | 
			
		||||
            };
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                //Connect
 | 
			
		||||
                socket.Connect(IpPoint);
 | 
			
		||||
                //SendRequest
 | 
			
		||||
                socket.Send(CreateCommand(Cmd.pasp_download, dir).ToArray());
 | 
			
		||||
 | 
			
		||||
                //GetRequest1
 | 
			
		||||
                if (SocketReceiveByte(ref socket) != 0x01)
 | 
			
		||||
                    return result;
 | 
			
		||||
                byte[] t = SocketReceiveBytes(ref socket, 15);
 | 
			
		||||
                if (t.Length != 15)
 | 
			
		||||
                    return result;
 | 
			
		||||
                //ConvertPasport1
 | 
			
		||||
                result.NumberVDP = t[0];
 | 
			
		||||
                result.TimeStart = new DateTime(t[1] + t[2] * 256, t[3], t[4], t[5], t[6], t[7]);
 | 
			
		||||
                result.TimeEnd = new DateTime(t[8] + t[9] * 256, t[10], t[11], t[12], t[13], t[14]);
 | 
			
		||||
                result.HaveDate = true;
 | 
			
		||||
 | 
			
		||||
                //GetRequest2
 | 
			
		||||
                if (SocketReceiveByte(ref socket) != 0x01)
 | 
			
		||||
                    return result;
 | 
			
		||||
                t = SocketReceiveBytes(ref socket, 1512);
 | 
			
		||||
                if (t.Length != 1512)
 | 
			
		||||
                    return result;
 | 
			
		||||
                //ConvertPasport2
 | 
			
		||||
                int caret = 0;
 | 
			
		||||
                result.KodNPlav = BitConverter.ToInt32(t, 0);       caret += 4;
 | 
			
		||||
                result.NPlav = ConvertBytesToString(t, caret, 12);  caret += 12;
 | 
			
		||||
                result.RM = ConvertBytesToString(t, caret, 11);     caret += 11;
 | 
			
		||||
                result.Splav = ConvertBytesToString(t, caret, 101); caret += 101;
 | 
			
		||||
                result._is = ConvertBytesToString(t, caret, 51);    caret += 51;
 | 
			
		||||
                result.Notd = BitConverter.ToUInt16(t, caret);      caret += 2;
 | 
			
		||||
                result.VesSlit = BitConverter.ToUInt16(t, caret);   caret += 2;
 | 
			
		||||
                result.Diam = BitConverter.ToUInt16(t, caret);      caret += 2;
 | 
			
		||||
                result.PrPl = BitConverter.ToUInt16(t, caret);      caret += 2;
 | 
			
		||||
                result.Tin = ConvertBytesToString(t, caret, 9);     caret += 9;
 | 
			
		||||
                result.Dzap = ConvertBytesToString(t, caret, 9);    caret += 9;
 | 
			
		||||
                result.Dlog = BitConverter.ToUInt16(t, caret);      caret += 2;
 | 
			
		||||
                result.Last = BitConverter.ToUInt16(t, caret);      caret += 2;
 | 
			
		||||
                result.Dlper = BitConverter.ToUInt16(t, caret);     caret += 2;
 | 
			
		||||
                result.Nazn = ConvertBytesToString(t, caret, 51);   caret += 51;
 | 
			
		||||
                result.Kompl = BitConverter.ToUInt16(t, caret);     caret += 2;
 | 
			
		||||
                result.Izl = BitConverter.ToUInt16(t, caret);       caret += 2;
 | 
			
		||||
                result.Robm = BitConverter.ToSingle(t, caret);      caret += 4;
 | 
			
		||||
                result.Rizol = BitConverter.ToSingle(t, caret);     caret += 4;
 | 
			
		||||
                result.Dkr = BitConverter.ToUInt16(t, caret);       caret += 2;
 | 
			
		||||
                result.Nkon = ConvertBytesToString(t, caret, 51);   caret += 51;
 | 
			
		||||
                result.Pos = ConvertBytesToString(t, caret, 6);     caret += 6;
 | 
			
		||||
                result.Ukaz = ConvertBytesToString(t, caret, 51);   caret += 51;
 | 
			
		||||
                result.Zakaz = ConvertBytesToString(t, caret, 51);  caret += 51;
 | 
			
		||||
                result.Kat = ConvertBytesToString(t, caret, 51);    caret += 51;
 | 
			
		||||
                result.Pril = ConvertBytesToString(t, caret, 3);    caret += 3;
 | 
			
		||||
                result.Reserved = ConvertBytesToString(t, caret, 1023); caret += 1023;
 | 
			
		||||
                result.HavePasport = true;
 | 
			
		||||
                return result;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
                return result;
 | 
			
		||||
            }
 | 
			
		||||
            finally
 | 
			
		||||
            {
 | 
			
		||||
                socket.Disconnect(false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public async Task<SortedList<DateTime, int>> TechCycle(int VDP, DateTime TimeStart, DateTime TimeEnd)
 | 
			
		||||
        {
 | 
			
		||||
            SortedList<DateTime, int> result = new SortedList<DateTime, int>();
 | 
			
		||||
            List<Task<Queue<byte>>> tasks = new List<Task<Queue<byte>>>();
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                //Check Params
 | 
			
		||||
                if (VDP < 0 || (VDP > 50 && VDP < 90) || VDP > 94)
 | 
			
		||||
                    throw new Exception("Нет печи №" + VDP);
 | 
			
		||||
                if (TimeStart > TimeEnd)
 | 
			
		||||
                    throw new Exception("Не верно задано время.");
 | 
			
		||||
 | 
			
		||||
                //PreStart
 | 
			
		||||
                DateTime tempDateTime = TimeStart;
 | 
			
		||||
                List<string> requests = new List<string>();
 | 
			
		||||
                bool flag = false;
 | 
			
		||||
                while (!flag)
 | 
			
		||||
                {
 | 
			
		||||
                    requests.Add(
 | 
			
		||||
                        tempDateTime.Year.ToString() + tempDateTime.Month.ToString("D2") +
 | 
			
		||||
                        tempDateTime.Day.ToString("D2") + "." + VDP.ToString("D2") + "3");
 | 
			
		||||
                    flag = (tempDateTime.Year >= TimeEnd.Year &&
 | 
			
		||||
                        tempDateTime.Month >= TimeEnd.Month &&
 | 
			
		||||
                        tempDateTime.Day >= TimeEnd.Day);
 | 
			
		||||
                    tempDateTime = tempDateTime.AddDays(1);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                //LoadAllList
 | 
			
		||||
                if (TimeStart <= DateTime.Now.AddDays(-9) &&
 | 
			
		||||
                    !await UploadArchiveToServer(VDP, 3, TimeStart, TimeEnd))
 | 
			
		||||
                    throw new Exception("Не загружен архив.");
 | 
			
		||||
 | 
			
		||||
                //SendRequests
 | 
			
		||||
                foreach (var e in requests)
 | 
			
		||||
                    tasks.Add(DownloadAllPackage(CreateCommand(Cmd.download_nh, e).ToArray()));
 | 
			
		||||
 | 
			
		||||
                //ConvertResult
 | 
			
		||||
                foreach (var e in tasks)
 | 
			
		||||
                {
 | 
			
		||||
                    e.Wait();
 | 
			
		||||
                    var r = e.Result;
 | 
			
		||||
                    while (true)
 | 
			
		||||
                    {
 | 
			
		||||
                        if (r.Count == 0)
 | 
			
		||||
                            break;
 | 
			
		||||
                        string x = "";
 | 
			
		||||
                        while (r.Peek() != 0x09 && r.Peek() != 0x0a)
 | 
			
		||||
                            x += ConvertByteToChar(r.Dequeue());
 | 
			
		||||
                        int value = int.Parse(x);
 | 
			
		||||
                        r.Dequeue();
 | 
			
		||||
 | 
			
		||||
                        while (r.Peek() != 0x09 && r.Peek() != 0x0a)
 | 
			
		||||
                            r.Dequeue();
 | 
			
		||||
                        r.Dequeue();
 | 
			
		||||
 | 
			
		||||
                        x = "";
 | 
			
		||||
                        while (r.Peek() != 0x09 && r.Peek() != 0x0a)
 | 
			
		||||
                            x += ConvertByteToChar(r.Dequeue());
 | 
			
		||||
                        DateTime key = ConvertUnixTimeToDateTime(int.Parse(x));
 | 
			
		||||
                        r.Dequeue();
 | 
			
		||||
                        if (result.ContainsKey(key))
 | 
			
		||||
                            result[key] = value;
 | 
			
		||||
                        else
 | 
			
		||||
                            result.Add(key, value);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                return result;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
                return new SortedList<DateTime, int>();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public async Task<AnalogSignals> Analog(int VDP, DateTime TimeStart, DateTime TimeEnd, int[] listSignals)
 | 
			
		||||
        {
 | 
			
		||||
            Queue<Task> tasks = new Queue<Task>();
 | 
			
		||||
            List<string> requests = new List<string>();
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                //Check Params
 | 
			
		||||
                if (VDP < 0 || (VDP > 50 && VDP < 90) || VDP > 94)
 | 
			
		||||
                    throw new Exception("Нет печи №" + VDP);
 | 
			
		||||
                if (TimeStart > TimeEnd)
 | 
			
		||||
                    throw new Exception("Не верно задано время.");
 | 
			
		||||
                //PreStart
 | 
			
		||||
                DateTime tempDateTime = TimeStart;
 | 
			
		||||
                bool flag = false;
 | 
			
		||||
                while (!flag)
 | 
			
		||||
                {
 | 
			
		||||
                    requests.Add(
 | 
			
		||||
                        tempDateTime.Year.ToString() + tempDateTime.Month.ToString("D2") +
 | 
			
		||||
                        tempDateTime.Day.ToString("D2") + "." + VDP.ToString("D2") + "1");
 | 
			
		||||
                    flag = (tempDateTime.Year == TimeEnd.Year &&
 | 
			
		||||
                        tempDateTime.Month == TimeEnd.Month &&
 | 
			
		||||
                        tempDateTime.Day == TimeEnd.Day);
 | 
			
		||||
                    tempDateTime = tempDateTime.AddDays(1);
 | 
			
		||||
                    TempDir.LockRead(requests.Last());
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                //Load All List
 | 
			
		||||
                if (TimeStart <= DateTime.Now.AddDays(-9) &&
 | 
			
		||||
                    !await UploadArchiveToServer(VDP, 1, TimeStart, TimeEnd))
 | 
			
		||||
                    throw new Exception("Не загружен архив.");
 | 
			
		||||
 | 
			
		||||
                //Send Requests
 | 
			
		||||
                foreach (var e in requests)
 | 
			
		||||
                    tasks.Enqueue(DownloadAllPackage(e));
 | 
			
		||||
 | 
			
		||||
                //Result
 | 
			
		||||
                AnalogSignals result = new AnalogSignals(VDP){ retAnalogs = listSignals};
 | 
			
		||||
                double step = (VDP >= 0 && VDP <= 50) ? 0.5 : 1;
 | 
			
		||||
                for (int e = 0; e < requests.Count; e++)
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                    await tasks.Dequeue();
 | 
			
		||||
                    Console.WriteLine("read_" + (e + 1) + ": " + DateTime.Now.ToLongTimeString());
 | 
			
		||||
                    double secondsCount = 0;
 | 
			
		||||
                    List<byte?> row = new List<byte?>();
 | 
			
		||||
                    DateTime d = DateTime.ParseExact(requests[e].Substring(0, 8), "yyyyMMdd", CultureInfo.InvariantCulture).ToUniversalTime();
 | 
			
		||||
                    int tic = 60;
 | 
			
		||||
                    while (!TempDir.CanRead(requests[e]))
 | 
			
		||||
                    {
 | 
			
		||||
                        await Task.Delay(1000);
 | 
			
		||||
                        if (tic-- == 0)
 | 
			
		||||
                            throw new Exception("Занят локальный архив: " + requests[e]);
 | 
			
		||||
                    }
 | 
			
		||||
                    using (FileStream r = TempDir.StartRead(requests[e]))
 | 
			
		||||
                    {
 | 
			
		||||
                        while (r.Position < r.Length)
 | 
			
		||||
                        {
 | 
			
		||||
                            var t = r.ReadByte();
 | 
			
		||||
                            switch (t)
 | 
			
		||||
                            {
 | 
			
		||||
                                case 0xfb:
 | 
			
		||||
                                    if (row.Count != 0 &&
 | 
			
		||||
                                        d.AddSeconds((double)secondsCount) > TimeStart &&
 | 
			
		||||
                                        d.AddSeconds((double)secondsCount) < TimeEnd)
 | 
			
		||||
                                        result.AddSignals(d.AddSeconds((double)secondsCount), row);
 | 
			
		||||
                                    secondsCount = step * BitConverter.ToInt32(new byte[] { (byte)r.ReadByte(), (byte)r.ReadByte(), (byte)r.ReadByte(), (byte)r.ReadByte() }, 0);
 | 
			
		||||
                                    break;
 | 
			
		||||
                                case 0xfc:
 | 
			
		||||
                                    if (row.Count == 0)
 | 
			
		||||
                                        row.Add(null);
 | 
			
		||||
                                    if (d.AddSeconds((double)secondsCount) > TimeStart &&
 | 
			
		||||
                                        d.AddSeconds((double)secondsCount) < TimeEnd)
 | 
			
		||||
                                        result.AddSignals(d.AddSeconds((double)secondsCount), row);
 | 
			
		||||
                                    for (var j = 0; j < row.Count; j++)
 | 
			
		||||
                                        row[j] = null;
 | 
			
		||||
                                    secondsCount = step * BitConverter.ToInt32(new byte[] { (byte)r.ReadByte(), (byte)r.ReadByte(), (byte)r.ReadByte(), (byte)r.ReadByte() }, 0);
 | 
			
		||||
                                    if (d.AddSeconds((double)secondsCount) > TimeStart &&
 | 
			
		||||
                                        d.AddSeconds((double)secondsCount) < TimeEnd)
 | 
			
		||||
                                        result.AddSignals(d.AddSeconds((double)secondsCount), row);
 | 
			
		||||
                                    break;
 | 
			
		||||
                                case 0xfe:
 | 
			
		||||
                                    if (row.Count != 0 &&
 | 
			
		||||
                                        d.AddSeconds((double)secondsCount) > TimeStart &&
 | 
			
		||||
                                        d.AddSeconds((double)secondsCount) < TimeEnd)
 | 
			
		||||
                                        result.AddSignals(d.AddSeconds((double)secondsCount), row);
 | 
			
		||||
                                    secondsCount += step * BitConverter.ToInt16(new byte[] { (byte)r.ReadByte(), (byte)r.ReadByte() }, 0);
 | 
			
		||||
                                    break;
 | 
			
		||||
                                case 0xff:
 | 
			
		||||
                                    if (row.Count != 0 &&
 | 
			
		||||
                                        d.AddSeconds((double)secondsCount) > TimeStart &&
 | 
			
		||||
                                        d.AddSeconds((double)secondsCount) < TimeEnd)
 | 
			
		||||
                                        result.AddSignals(d.AddSeconds((double)secondsCount), row);
 | 
			
		||||
                                    secondsCount += step;
 | 
			
		||||
                                    break;
 | 
			
		||||
                                default:
 | 
			
		||||
                                    while (row.Count <= t)
 | 
			
		||||
                                        row.Add(null);
 | 
			
		||||
                                    row[t] = (byte)r.ReadByte();
 | 
			
		||||
                                    break;
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                return result;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
                return new AnalogSignals(VDP) { retAnalogs = listSignals };
 | 
			
		||||
            }
 | 
			
		||||
            finally
 | 
			
		||||
            {
 | 
			
		||||
                foreach(var e in requests)
 | 
			
		||||
                    TempDir.FreeRead(e);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private Queue<byte> CreateCommand(Cmd cmd, string val, int dir = 0)
 | 
			
		||||
        {
 | 
			
		||||
            Queue<byte> q = new Queue<byte>();
 | 
			
		||||
            foreach (var e in BitConverter.GetBytes((uint)cmd))
 | 
			
		||||
                q.Enqueue(e);
 | 
			
		||||
            if (cmd == Cmd.dir_browse)
 | 
			
		||||
                q.Enqueue((byte)dir);
 | 
			
		||||
            foreach (var e in BitConverter.GetBytes((uint)val.Length))
 | 
			
		||||
                q.Enqueue(e);
 | 
			
		||||
            foreach (var e in val)
 | 
			
		||||
                q.Enqueue((byte)e);
 | 
			
		||||
            q.Enqueue(0x00);
 | 
			
		||||
            return q;
 | 
			
		||||
        }
 | 
			
		||||
        private byte SocketReceiveByte(ref Socket socket)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                byte[] t = new byte[1];
 | 
			
		||||
                int countbyte = socket.Receive(t);
 | 
			
		||||
                if (countbyte != 1)
 | 
			
		||||
                    throw new Exception("Ошибка получение Байта");
 | 
			
		||||
                return t[0];
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
                return 0xff;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        private bool SocketReceiveBytes(ref Socket socket, ref Queue<byte> q, int length)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                while (length != 0)
 | 
			
		||||
                {
 | 
			
		||||
                    byte[] b = new byte[length];
 | 
			
		||||
                    int countbytes = socket.Receive(b);
 | 
			
		||||
                    for (int i = 0; i < countbytes; i++)
 | 
			
		||||
                        q.Enqueue(b[i]);
 | 
			
		||||
                    length -= countbytes;
 | 
			
		||||
                }
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        private byte[] SocketReceiveBytes(ref Socket socket, int length)
 | 
			
		||||
        {
 | 
			
		||||
            List<byte> result = new List<byte>();
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                while (result.Count != length)
 | 
			
		||||
                {
 | 
			
		||||
                    int count = length - result.Count;
 | 
			
		||||
                    byte[] t = new byte[count];
 | 
			
		||||
                    int countbytes = socket.Receive(t);
 | 
			
		||||
                    if (countbytes > 0)
 | 
			
		||||
                        result.AddRange(t.Take(countbytes));
 | 
			
		||||
                }
 | 
			
		||||
                return result.ToArray();
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
                return new byte[0];
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        private string SocketReceiveString(ref Socket socket)
 | 
			
		||||
        {
 | 
			
		||||
            Queue<byte> q = new Queue<byte>();
 | 
			
		||||
            if (SocketReceiveBytes(ref socket, ref q, (int)BitConverter.ToUInt32(SocketReceiveBytes(ref socket, 4), 0) + 1))
 | 
			
		||||
                return ConvertBytesToString(ref q);
 | 
			
		||||
            return "";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private async Task<bool> UploadArchiveToServer(int vdp, int type, DateTime tStart, DateTime tEnd)
 | 
			
		||||
        {
 | 
			
		||||
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
 | 
			
		||||
            {
 | 
			
		||||
                ReceiveTimeout = 5000,
 | 
			
		||||
                SendTimeout = 5000
 | 
			
		||||
            };
 | 
			
		||||
            socket.Connect(IpPoint);
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                int caret = 0;
 | 
			
		||||
                byte[] t = new byte[15];
 | 
			
		||||
                foreach (var e in BitConverter.GetBytes((uint)Cmd.history))
 | 
			
		||||
                    t[caret++] = e;
 | 
			
		||||
                t[caret++] = (byte)vdp;
 | 
			
		||||
                t[caret++] = (byte)type;
 | 
			
		||||
                t[caret++] = 0x01;
 | 
			
		||||
                t[caret++] = Convert.ToByte(tStart.Year % 256);
 | 
			
		||||
                t[caret++] = Convert.ToByte(tStart.Year / 256);
 | 
			
		||||
                t[caret++] = (byte)tStart.Month;
 | 
			
		||||
                t[caret++] = (byte)tStart.Day;
 | 
			
		||||
                t[caret++] = Convert.ToByte(tEnd.Year % 256);
 | 
			
		||||
                t[caret++] = Convert.ToByte(tEnd.Year / 256);
 | 
			
		||||
                t[caret++] = (byte)tEnd.Month;
 | 
			
		||||
                t[caret++] = (byte)tEnd.Day;
 | 
			
		||||
                socket.Send(t);
 | 
			
		||||
                while (true)
 | 
			
		||||
                {
 | 
			
		||||
                    byte mark = SocketReceiveByte(ref socket);
 | 
			
		||||
                    switch (mark)
 | 
			
		||||
                    {
 | 
			
		||||
                        case 0x03:
 | 
			
		||||
                            await Task.Delay(100);
 | 
			
		||||
                            continue;
 | 
			
		||||
                        case 0x01:
 | 
			
		||||
                            return true;
 | 
			
		||||
                        default:
 | 
			
		||||
                            return false;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        private async Task<Queue<byte>> DownloadAllPackage(byte[] cmd)
 | 
			
		||||
        {
 | 
			
		||||
            await Task.Delay(0);
 | 
			
		||||
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
 | 
			
		||||
            {
 | 
			
		||||
                ReceiveTimeout = 5000,
 | 
			
		||||
                SendTimeout = 5000
 | 
			
		||||
            };
 | 
			
		||||
            Queue<byte> result = new Queue<byte>();
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                int TotlalLength = 0;
 | 
			
		||||
                socket.Connect(IpPoint);
 | 
			
		||||
                socket.Send(cmd);
 | 
			
		||||
                byte mark = 0x00;
 | 
			
		||||
                do
 | 
			
		||||
                {
 | 
			
		||||
                    mark = SocketReceiveByte(ref socket);
 | 
			
		||||
                    switch (mark)
 | 
			
		||||
                    {
 | 
			
		||||
                        case 0x01:
 | 
			
		||||
                            if (!SocketReceiveBytes(ref socket, ref result,
 | 
			
		||||
                                BitConverter.ToInt32(
 | 
			
		||||
                                    SocketReceiveBytes(ref socket, 4), 0)))
 | 
			
		||||
                                throw new Exception("Ошибка получения части пакета.");
 | 
			
		||||
                            break;
 | 
			
		||||
                        case 0x02:
 | 
			
		||||
                            TotlalLength = BitConverter.ToInt32(SocketReceiveBytes(ref socket, 4), 0);
 | 
			
		||||
                            break;
 | 
			
		||||
                    }
 | 
			
		||||
                } while (mark != 0xFF);
 | 
			
		||||
                return result;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
                return new Queue<byte>();
 | 
			
		||||
            }
 | 
			
		||||
            finally
 | 
			
		||||
            {
 | 
			
		||||
                socket.Disconnect(false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        private async Task DownloadAllPackage(string name)
 | 
			
		||||
        {
 | 
			
		||||
            if (TempDir.CheckFileExist(name))
 | 
			
		||||
                return;
 | 
			
		||||
            var stream = TempDir.StartWrite(name);
 | 
			
		||||
            await Task.Delay(0);
 | 
			
		||||
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
 | 
			
		||||
            {
 | 
			
		||||
                ReceiveTimeout = 5000,
 | 
			
		||||
                SendTimeout = 5000
 | 
			
		||||
            };
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                int TotlalLength = 0;
 | 
			
		||||
                socket.Connect(IpPoint);
 | 
			
		||||
                socket.Send(CreateCommand(Cmd.download_nh, name).ToArray());
 | 
			
		||||
                byte mark = 0x00;
 | 
			
		||||
                do
 | 
			
		||||
                {
 | 
			
		||||
                    mark = SocketReceiveByte(ref socket);
 | 
			
		||||
                    switch (mark)
 | 
			
		||||
                    {
 | 
			
		||||
                        case 0x01:
 | 
			
		||||
                            int size = BitConverter.ToInt32(SocketReceiveBytes(ref socket, 4), 0);
 | 
			
		||||
                            stream.Write(SocketReceiveBytes(ref socket, size), 0, size);
 | 
			
		||||
                            break;
 | 
			
		||||
                        case 0x02:
 | 
			
		||||
                            TotlalLength = BitConverter.ToInt32(SocketReceiveBytes(ref socket, 4), 0);
 | 
			
		||||
                            break;
 | 
			
		||||
                    }
 | 
			
		||||
                } while (mark != 0xFF);
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            finally
 | 
			
		||||
            {
 | 
			
		||||
                TempDir.EndWrite(name);
 | 
			
		||||
                stream.Close();
 | 
			
		||||
                socket.Disconnect(false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private string ConvertBytesToString(ref Queue<byte> q)
 | 
			
		||||
        {
 | 
			
		||||
            StringBuilder result = new StringBuilder();
 | 
			
		||||
            while (q.Count != 0)
 | 
			
		||||
                result.Append(ConvertByteToChar(q.Dequeue()));
 | 
			
		||||
            return result.ToString().Trim();
 | 
			
		||||
        }
 | 
			
		||||
        private string ConvertBytesToString(byte[] b, int caret, int length)
 | 
			
		||||
        {
 | 
			
		||||
            StringBuilder result = new StringBuilder();
 | 
			
		||||
            for (int i = caret; i < length + caret; i++)
 | 
			
		||||
                result.Append(ConvertByteToChar(b[i]));
 | 
			
		||||
            return result.ToString().Trim();
 | 
			
		||||
        }
 | 
			
		||||
        private char ConvertByteToChar(byte b)
 | 
			
		||||
        {
 | 
			
		||||
            char temp;
 | 
			
		||||
            switch (b)
 | 
			
		||||
            {
 | 
			
		||||
                case 0x00: temp = ' '; break;
 | 
			
		||||
                case 0x80: temp = 'А'; break;
 | 
			
		||||
                case 0x81: temp = 'Б'; break;
 | 
			
		||||
                case 0x82: temp = 'В'; break;
 | 
			
		||||
                case 0x83: temp = 'Г'; break;
 | 
			
		||||
                case 0x84: temp = 'Д'; break;
 | 
			
		||||
                case 0x85: temp = 'Е'; break;
 | 
			
		||||
                case 0x86: temp = 'Ж'; break;
 | 
			
		||||
                case 0x87: temp = 'З'; break;
 | 
			
		||||
                case 0x88: temp = 'И'; break;
 | 
			
		||||
                case 0x89: temp = 'Й'; break;
 | 
			
		||||
                case 0x8a: temp = 'К'; break;
 | 
			
		||||
                case 0x8b: temp = 'Л'; break;
 | 
			
		||||
                case 0x8c: temp = 'М'; break;
 | 
			
		||||
                case 0x8d: temp = 'Н'; break;
 | 
			
		||||
                case 0x8e: temp = 'О'; break;
 | 
			
		||||
                case 0x8f: temp = 'П'; break;
 | 
			
		||||
                case 0x90: temp = 'Р'; break;
 | 
			
		||||
                case 0x91: temp = 'С'; break;
 | 
			
		||||
                case 0x92: temp = 'Т'; break;
 | 
			
		||||
                case 0x93: temp = 'У'; break;
 | 
			
		||||
                case 0x94: temp = 'Ф'; break;
 | 
			
		||||
                case 0x95: temp = 'Х'; break;
 | 
			
		||||
                case 0x96: temp = 'Ц'; break;
 | 
			
		||||
                case 0x97: temp = 'Ч'; break;
 | 
			
		||||
                case 0x98: temp = 'Ш'; break;
 | 
			
		||||
                case 0x99: temp = 'Щ'; break;
 | 
			
		||||
                case 0x9a: temp = 'Ъ'; break;
 | 
			
		||||
                case 0x9b: temp = 'Ы'; break;
 | 
			
		||||
                case 0x9c: temp = 'Ь'; break;
 | 
			
		||||
                case 0x9d: temp = 'Э'; break;
 | 
			
		||||
                case 0x9e: temp = 'Ю'; break;
 | 
			
		||||
                case 0x9f: temp = 'Я'; break;
 | 
			
		||||
                case 0xa0: temp = 'а'; break;
 | 
			
		||||
                case 0xa1: temp = 'б'; break;
 | 
			
		||||
                case 0xa2: temp = 'в'; break;
 | 
			
		||||
                case 0xa3: temp = 'г'; break;
 | 
			
		||||
                case 0xa4: temp = 'д'; break;
 | 
			
		||||
                case 0xa5: temp = 'е'; break;
 | 
			
		||||
                case 0xa6: temp = 'ж'; break;
 | 
			
		||||
                case 0xa7: temp = 'з'; break;
 | 
			
		||||
                case 0xa8: temp = 'и'; break;
 | 
			
		||||
                case 0xa9: temp = 'й'; break;
 | 
			
		||||
                case 0xaa: temp = 'к'; break;
 | 
			
		||||
                case 0xab: temp = 'л'; break;
 | 
			
		||||
                case 0xac: temp = 'м'; break;
 | 
			
		||||
                case 0xad: temp = 'н'; break;
 | 
			
		||||
                case 0xae: temp = 'о'; break;
 | 
			
		||||
                case 0xaf: temp = 'п'; break;
 | 
			
		||||
                case 0xe0: temp = 'р'; break;
 | 
			
		||||
                case 0xe1: temp = 'c'; break;
 | 
			
		||||
                case 0xe2: temp = 'т'; break;
 | 
			
		||||
                case 0xe3: temp = 'у'; break;
 | 
			
		||||
                case 0xe4: temp = 'ф'; break;
 | 
			
		||||
                case 0xe5: temp = 'х'; break;
 | 
			
		||||
                case 0xe6: temp = 'ц'; break;
 | 
			
		||||
                case 0xe7: temp = 'ч'; break;
 | 
			
		||||
                case 0xe8: temp = 'ш'; break;
 | 
			
		||||
                case 0xe9: temp = 'щ'; break;
 | 
			
		||||
                case 0xea: temp = 'ъ'; break;
 | 
			
		||||
                case 0xeb: temp = 'ы'; break;
 | 
			
		||||
                case 0xec: temp = 'ь'; break;
 | 
			
		||||
                case 0xed: temp = 'э'; break;
 | 
			
		||||
                case 0xee: temp = 'ю'; break;
 | 
			
		||||
                case 0xef: temp = 'я'; break;
 | 
			
		||||
                case 0xf0: temp = 'Ё'; break;
 | 
			
		||||
                case 0xf1: temp = 'ё'; break;
 | 
			
		||||
                default: temp = Convert.ToChar(b); break;
 | 
			
		||||
            }
 | 
			
		||||
            return temp;
 | 
			
		||||
        }
 | 
			
		||||
        private DateTime ConvertUnixTimeToDateTime(int unixTimeStamp)
 | 
			
		||||
        {
 | 
			
		||||
            DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
 | 
			
		||||
            dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).AddHours(5);
 | 
			
		||||
            return dtDateTime;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    class Old
 | 
			
		||||
    {
 | 
			
		||||
        private enum Cmd
 | 
			
		||||
        {
 | 
			
		||||
            pasp_download = 4,
 | 
			
		||||
            history = 20,
 | 
			
		||||
            download_nh = 21,
 | 
			
		||||
            dir_browse = 23
 | 
			
		||||
        }
 | 
			
		||||
        private void CreateCommand(ref Queue<Byte> q, Cmd cmd, string val, int dir = 0)
 | 
			
		||||
        {
 | 
			
		||||
            q.Clear();
 | 
			
		||||
            foreach (var e in BitConverter.GetBytes((uint)cmd))
 | 
			
		||||
                q.Enqueue(e);
 | 
			
		||||
            if (cmd == Cmd.dir_browse)
 | 
			
		||||
                q.Enqueue((byte)dir);
 | 
			
		||||
            foreach (var e in val)
 | 
			
		||||
                q.Enqueue((byte)e);
 | 
			
		||||
            q.Enqueue(0x00);
 | 
			
		||||
        }
 | 
			
		||||
        private bool SocketSendCommand(ref Socket socket, Cmd cmd, string val, int dir = 0)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                int l = 5 + val.Length;
 | 
			
		||||
                if (cmd == Cmd.dir_browse)
 | 
			
		||||
                    l++;
 | 
			
		||||
                byte[] s = new byte[l];
 | 
			
		||||
                l = 0;
 | 
			
		||||
                foreach (var e in BitConverter.GetBytes((uint)cmd))
 | 
			
		||||
                    s[l++] = e;
 | 
			
		||||
                if (cmd == Cmd.dir_browse)
 | 
			
		||||
                    s[l++] = (byte)dir;
 | 
			
		||||
                foreach (var e in val)
 | 
			
		||||
                    s[l++] = (byte)e;
 | 
			
		||||
                socket.Send(s);
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        private string ConvertBytesToString(ref Queue<byte> q, int l)
 | 
			
		||||
        {
 | 
			
		||||
            StringBuilder result = new StringBuilder();
 | 
			
		||||
            //for (int i = 0; i < l; i++)
 | 
			
		||||
            //    result.Append(ConvertByteToChar(q.Dequeue()));
 | 
			
		||||
            return result.ToString().Trim();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										130
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/TempDirectory.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/TempDirectory.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,130 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using System.Diagnostics;
 | 
			
		||||
using System.Runtime.InteropServices;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Libs
 | 
			
		||||
{
 | 
			
		||||
    public static class TempDirectory
 | 
			
		||||
    {
 | 
			
		||||
        private static readonly char sl = RuntimeInformation.IsOSPlatform(OSPlatform.Linux) ? '/' : '\\';
 | 
			
		||||
        private static readonly string td = Directory.GetCurrentDirectory() + sl + "temp";
 | 
			
		||||
        private static Dictionary<string, int> readFiles = new Dictionary<string, int>();
 | 
			
		||||
        private static List<string> writeFiles = new List<string>();
 | 
			
		||||
 | 
			
		||||
        private static long DirectorySize(DirectoryInfo d)
 | 
			
		||||
        {
 | 
			
		||||
            long Size = 0;
 | 
			
		||||
            FileInfo[] fis = d.GetFiles();
 | 
			
		||||
            foreach (FileInfo fi in fis)
 | 
			
		||||
                Size += fi.Length;
 | 
			
		||||
            DirectoryInfo[] dis = d.GetDirectories();
 | 
			
		||||
            foreach (DirectoryInfo di in dis)
 | 
			
		||||
                Size += DirectorySize(di);
 | 
			
		||||
            return (Size);
 | 
			
		||||
        }
 | 
			
		||||
        public static bool Clear(long maxSize = 1073741824)
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                if (!Directory.Exists(td)) Directory.CreateDirectory(td);
 | 
			
		||||
                var files = new DirectoryInfo(td).GetFiles();
 | 
			
		||||
                foreach (var f in files)
 | 
			
		||||
                {
 | 
			
		||||
                    var t = f.Name.Split('.');
 | 
			
		||||
                    var dateData = new DateTime(int.Parse(t[0]), int.Parse(t[1]), int.Parse(t[2]));
 | 
			
		||||
                    if (readFiles.ContainsKey(f.Name) ||
 | 
			
		||||
                        writeFiles.Contains(f.Name) ||
 | 
			
		||||
                        (f.CreationTime - dateData).TotalHours > 25 ||
 | 
			
		||||
                        (DateTime.Now - f.CreationTime).TotalMinutes <= 2)
 | 
			
		||||
                        continue;
 | 
			
		||||
                    f.Delete();
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if (DirectorySize(new DirectoryInfo(td)) < maxSize)
 | 
			
		||||
                    return true;
 | 
			
		||||
 | 
			
		||||
                files = new DirectoryInfo(td).GetFiles();
 | 
			
		||||
                foreach(var f in files)
 | 
			
		||||
                {
 | 
			
		||||
                    if (readFiles.ContainsKey(f.Name) ||
 | 
			
		||||
                        writeFiles.Contains(f.Name))
 | 
			
		||||
                        continue;
 | 
			
		||||
                    f.Delete();
 | 
			
		||||
                }
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(CustomConverters.ExceptionToString(e));
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public static async Task<bool> Delete(string name)
 | 
			
		||||
        {
 | 
			
		||||
            bool flag = false;
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                if ( !writeFiles.Contains(name) && !File.Exists(td + sl + name))
 | 
			
		||||
                    return true;
 | 
			
		||||
                while (writeFiles.Contains(name))
 | 
			
		||||
                    await Task.Delay(100);
 | 
			
		||||
                writeFiles.Add(name);
 | 
			
		||||
                flag = true;
 | 
			
		||||
                while (readFiles.ContainsKey(name))
 | 
			
		||||
                    await Task.Delay(100);
 | 
			
		||||
                File.Delete(td + sl + name);
 | 
			
		||||
                writeFiles.Remove(name);
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            catch(Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(CustomConverters.ExceptionToString(e));
 | 
			
		||||
                if(flag) writeFiles.Remove(name);
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public static bool IsFileExist(string name)
 | 
			
		||||
        {
 | 
			
		||||
            return File.Exists(td + sl + name);
 | 
			
		||||
        }
 | 
			
		||||
        public static FileStream StartWrite(string name)
 | 
			
		||||
        {
 | 
			
		||||
            writeFiles.Add(name);
 | 
			
		||||
            return new FileStream(td + sl + name, FileMode.CreateNew);
 | 
			
		||||
        }
 | 
			
		||||
        public static void EndWrite(string name)
 | 
			
		||||
        {
 | 
			
		||||
            writeFiles.Remove(name);
 | 
			
		||||
        }
 | 
			
		||||
        public static void LockRead(string name)
 | 
			
		||||
        {
 | 
			
		||||
            if (!readFiles.ContainsKey(name))
 | 
			
		||||
                readFiles.Add(name, 0);
 | 
			
		||||
            readFiles[name]++;
 | 
			
		||||
        }
 | 
			
		||||
        public static bool CanRead(string name)
 | 
			
		||||
        {
 | 
			
		||||
            if (!IsFileExist(name))
 | 
			
		||||
                return false;
 | 
			
		||||
            return !writeFiles.Contains(name);
 | 
			
		||||
        }
 | 
			
		||||
        public static FileStream StartRead(string name)
 | 
			
		||||
        {
 | 
			
		||||
            return new FileStream(td + sl + name, FileMode.Open);
 | 
			
		||||
        }
 | 
			
		||||
        public static void EndRead(string name)
 | 
			
		||||
        {
 | 
			
		||||
            if (!readFiles.ContainsKey(name))
 | 
			
		||||
                return;
 | 
			
		||||
            if (readFiles[name] > 0)
 | 
			
		||||
                readFiles[name]--;
 | 
			
		||||
            else
 | 
			
		||||
                readFiles.Remove(name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										91
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/Tempdir.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/Tempdir.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Libs
 | 
			
		||||
{
 | 
			
		||||
    public static class TempDir
 | 
			
		||||
    {
 | 
			
		||||
        //private const char Slash = '\\';
 | 
			
		||||
        private const char Slash = '/';
 | 
			
		||||
        public enum Status { free, write, read };
 | 
			
		||||
        private static Dictionary<string, int> readFile = new Dictionary<string, int>();
 | 
			
		||||
        private static List<string> writeFile = new List<string>();
 | 
			
		||||
 | 
			
		||||
        public static void Clear()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                var tempDir = Directory.GetCurrentDirectory() + Slash + "temp";
 | 
			
		||||
                if (!Directory.Exists(tempDir))
 | 
			
		||||
                    Directory.CreateDirectory(tempDir);
 | 
			
		||||
                string[] files = Directory.GetFiles(tempDir, "*");
 | 
			
		||||
                foreach (var e in files)
 | 
			
		||||
                {
 | 
			
		||||
                    if (readFile.ContainsKey(e.Split(Slash).Last()) || writeFile.Contains(e.Split(Slash).Last()))
 | 
			
		||||
                        continue;
 | 
			
		||||
 | 
			
		||||
                    DateTime createDate = File.GetCreationTime(e);
 | 
			
		||||
                    bool flag = createDate.Year == DateTime.Now.Year &&
 | 
			
		||||
                        createDate.Month == DateTime.Now.Month &&
 | 
			
		||||
                        createDate.Day == DateTime.Now.Day &&
 | 
			
		||||
                        (DateTime.Now - createDate).TotalMinutes > 2;
 | 
			
		||||
                    flag |= createDate.Day == DateTime.Now.AddDays(-1).Day &&
 | 
			
		||||
                        DateTime.Now.Hour == 0 &&
 | 
			
		||||
                        (DateTime.Now - createDate).TotalMinutes > 2;
 | 
			
		||||
                    flag |= (DateTime.Now - createDate).TotalHours > 1;
 | 
			
		||||
                    if (flag)
 | 
			
		||||
                        File.Delete(e);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Console.WriteLine(e.Message);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static bool CheckFileExist(string onlyName)
 | 
			
		||||
        {
 | 
			
		||||
            return writeFile.Contains(onlyName) ||
 | 
			
		||||
                File.Exists(Directory.GetCurrentDirectory() + Slash + "temp" + Slash + onlyName);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static FileStream StartWrite(string onlyName)
 | 
			
		||||
        {
 | 
			
		||||
            writeFile.Add(onlyName);
 | 
			
		||||
            return new FileStream(Directory.GetCurrentDirectory() + Slash + "temp" + Slash + onlyName, FileMode.CreateNew);
 | 
			
		||||
        }
 | 
			
		||||
        public static void EndWrite(string onlyName)
 | 
			
		||||
        {
 | 
			
		||||
            writeFile.Remove(onlyName);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static void LockRead(string onlyName)
 | 
			
		||||
        {
 | 
			
		||||
            if (!readFile.ContainsKey(onlyName))
 | 
			
		||||
                readFile.Add(onlyName, 0);
 | 
			
		||||
            readFile[onlyName]++;
 | 
			
		||||
        }
 | 
			
		||||
        public static bool CanRead(string onlyName)
 | 
			
		||||
        {
 | 
			
		||||
            if (!CheckFileExist(onlyName))
 | 
			
		||||
                return false;
 | 
			
		||||
            return !writeFile.Contains(onlyName);
 | 
			
		||||
        }
 | 
			
		||||
        public static FileStream StartRead(string onlyName)
 | 
			
		||||
        {
 | 
			
		||||
            return new FileStream(Directory.GetCurrentDirectory() + Slash + "temp" + Slash + onlyName, FileMode.Open);
 | 
			
		||||
        }
 | 
			
		||||
        public static void FreeRead(string onlyName)
 | 
			
		||||
        {
 | 
			
		||||
            if (!readFile.ContainsKey(onlyName))
 | 
			
		||||
                return;
 | 
			
		||||
            if (readFile[onlyName] > 0)
 | 
			
		||||
                readFile[onlyName]--;
 | 
			
		||||
            if (readFile[onlyName] == 0)
 | 
			
		||||
                readFile.Remove(onlyName);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										85
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/VDP.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								ShowTrend_tmp3/ShowTrend3/Libs/VDP.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Newtonsoft.Json.Linq;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Libs
 | 
			
		||||
{
 | 
			
		||||
    public class PasportVDP
 | 
			
		||||
    {
 | 
			
		||||
        public int NumberVDP;
 | 
			
		||||
        public bool HaveDate = false;
 | 
			
		||||
        public DateTime TimeStart;
 | 
			
		||||
        public DateTime TimeEnd;
 | 
			
		||||
        public bool HavePasport = false;
 | 
			
		||||
        public int KodNPlav;
 | 
			
		||||
        public string NPlav;
 | 
			
		||||
        public string RM;
 | 
			
		||||
        public string Splav;
 | 
			
		||||
        public string _is;
 | 
			
		||||
        public ushort Notd;
 | 
			
		||||
        public ushort VesSlit;
 | 
			
		||||
        public ushort Diam;
 | 
			
		||||
        public ushort PrPl;
 | 
			
		||||
        public string Tin;
 | 
			
		||||
        public string Dzap;
 | 
			
		||||
        public ushort Dlog;
 | 
			
		||||
        public ushort Last;
 | 
			
		||||
        public ushort Dlper;
 | 
			
		||||
        public string Nazn;
 | 
			
		||||
        public ushort Kompl;
 | 
			
		||||
        public ushort Izl;
 | 
			
		||||
        public Single Robm;
 | 
			
		||||
        public Single Rizol;
 | 
			
		||||
        public ushort Dkr;
 | 
			
		||||
        public string Nkon;
 | 
			
		||||
        public string Pos;
 | 
			
		||||
        public string Ukaz;
 | 
			
		||||
        public string Zakaz;
 | 
			
		||||
        public string Kat;
 | 
			
		||||
        public string Pril;
 | 
			
		||||
        public string Reserved;
 | 
			
		||||
 | 
			
		||||
        public JArray JsonFormat()
 | 
			
		||||
        {
 | 
			
		||||
            JArray result = new JArray();
 | 
			
		||||
 | 
			
		||||
            return result;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class TechCycle
 | 
			
		||||
    {
 | 
			
		||||
        public readonly string[] CycleName =
 | 
			
		||||
        {
 | 
			
		||||
            "Конец технологического цикла", "Выгрузка-загрузка", "Вакуумирование на приварку", "Цикл 3",
 | 
			
		||||
            "Цикл 4", "Приварка", "Охлаждение приварки", "Осмотр приварки", "Вакуумирование на плавку",
 | 
			
		||||
            "Разведение ванны", "Плавка (основной режим)", "ВУР", "Охлаждение слитка", "Выгрузка комплекта",
 | 
			
		||||
            "Вакуумирование на оплавление", "Оплавление", "Охлаждение оплавыша", "Слив металла",
 | 
			
		||||
            "Цикл 18", "Цикл 19", "Цикл 20", "Цикл 21", "Цикл 22", "Цикл 23", "Цикл 24", "Проверка защит"
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        public readonly string[] CycleColorHex =
 | 
			
		||||
        {
 | 
			
		||||
            "00ffff", "00ffff", "0000ff", "000000", "000000", "ff0000", "00ff00", "00ffff", "0000ff",
 | 
			
		||||
            "800080", "ff0000", "ff00ff", "00ff00", "00ffff", "0000ff", "ff0000", "00ff00", "ff00ff",
 | 
			
		||||
            "000000", "000000", "000000", "000000", "000000", "000000", "000000", "ffff00"
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        public string ConvertColorHexToRGB(string hex)
 | 
			
		||||
        {
 | 
			
		||||
            string result = "";
 | 
			
		||||
            for (int i = 0; i < 3; i++)
 | 
			
		||||
            {
 | 
			
		||||
                byte t = Convert.ToByte(hex.Substring(i * 2, 2), 16);
 | 
			
		||||
                result += t.ToString();
 | 
			
		||||
                if (i < 2)
 | 
			
		||||
                    result += ",";
 | 
			
		||||
            }
 | 
			
		||||
            return result;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								ShowTrend_tmp3/ShowTrend3/Models/ErrorViewModel.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								ShowTrend_tmp3/ShowTrend3/Models/ErrorViewModel.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
using System;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Models
 | 
			
		||||
{
 | 
			
		||||
    public class ErrorViewModel
 | 
			
		||||
    {
 | 
			
		||||
        public string RequestId { get; set; }
 | 
			
		||||
 | 
			
		||||
        public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								ShowTrend_tmp3/ShowTrend3/Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								ShowTrend_tmp3/ShowTrend3/Program.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Microsoft.AspNetCore;
 | 
			
		||||
using Microsoft.AspNetCore.Hosting;
 | 
			
		||||
using Microsoft.Extensions.Configuration;
 | 
			
		||||
using Microsoft.Extensions.Logging;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3
 | 
			
		||||
{
 | 
			
		||||
    public class Program
 | 
			
		||||
    {
 | 
			
		||||
        public static void Main(string[] args)
 | 
			
		||||
        {
 | 
			
		||||
           BuildWebHost(args).Run();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static IWebHost BuildWebHost(string[] args) =>
 | 
			
		||||
            WebHost.CreateDefaultBuilder(args)
 | 
			
		||||
            .UseKestrel()
 | 
			
		||||
            //.UseUrls("Http://*:90")
 | 
			
		||||
            //.UseUrls("Http://10.10.45.244:5010")
 | 
			
		||||
            .UseUrls("Http://127.0.0.1:5010")
 | 
			
		||||
            //.UseUrls("Http://10.10.2.66:90")
 | 
			
		||||
            .UseStartup<Startup>()
 | 
			
		||||
            .Build();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,22 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<!--
 | 
			
		||||
Этот файл используется процессом публикации или упаковки вашего веб-проекта. Можно настроить поведение этого процесса,
 | 
			
		||||
изменив этот файл MSBuild. Подробности см. на странице https://go.microsoft.com/fwlink/?LinkID=208121. 
 | 
			
		||||
-->
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <WebPublishMethod>FileSystem</WebPublishMethod>
 | 
			
		||||
    <PublishProvider>FileSystem</PublishProvider>
 | 
			
		||||
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
 | 
			
		||||
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
 | 
			
		||||
    <SiteUrlToLaunchAfterPublish />
 | 
			
		||||
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
 | 
			
		||||
    <ExcludeApp_Data>False</ExcludeApp_Data>
 | 
			
		||||
    <ProjectGuid>ac3f23be-4077-4cc8-ba6d-76e4b385e7b1</ProjectGuid>
 | 
			
		||||
    <publishUrl>bin\Result</publishUrl>
 | 
			
		||||
    <DeleteExistingFiles>False</DeleteExistingFiles>
 | 
			
		||||
    <TargetFramework>netcoreapp2.1</TargetFramework>
 | 
			
		||||
    <SelfContained>false</SelfContained>
 | 
			
		||||
    <_IsPortable>true</_IsPortable>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -0,0 +1,11 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<!--
 | 
			
		||||
Этот файл используется процессом публикации или упаковки вашего веб-проекта. Можно настроить поведение этого процесса,
 | 
			
		||||
изменив этот файл MSBuild. Подробности см. на странице https://go.microsoft.com/fwlink/?LinkID=208121. 
 | 
			
		||||
-->
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <TimeStampOfAssociatedLegacyPublishXmlFile />
 | 
			
		||||
    <_PublishTargetUrl>D:\Projects\ShowTrend3\bin\Result</_PublishTargetUrl>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -0,0 +1,22 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<!--
 | 
			
		||||
Этот файл используется процессом публикации или упаковки вашего веб-проекта. Можно настроить поведение этого процесса,
 | 
			
		||||
изменив этот файл MSBuild. Подробности см. на странице https://go.microsoft.com/fwlink/?LinkID=208121. 
 | 
			
		||||
-->
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <WebPublishMethod>FileSystem</WebPublishMethod>
 | 
			
		||||
    <PublishProvider>FileSystem</PublishProvider>
 | 
			
		||||
    <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
 | 
			
		||||
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
 | 
			
		||||
    <SiteUrlToLaunchAfterPublish />
 | 
			
		||||
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
 | 
			
		||||
    <ExcludeApp_Data>False</ExcludeApp_Data>
 | 
			
		||||
    <TargetFramework>netcoreapp2.1</TargetFramework>
 | 
			
		||||
    <ProjectGuid>ac3f23be-4077-4cc8-ba6d-76e4b385e7b1</ProjectGuid>
 | 
			
		||||
    <SelfContained>false</SelfContained>
 | 
			
		||||
    <_IsPortable>true</_IsPortable>
 | 
			
		||||
    <publishUrl>bin\remotedebug</publishUrl>
 | 
			
		||||
    <DeleteExistingFiles>False</DeleteExistingFiles>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -0,0 +1,11 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<!--
 | 
			
		||||
Этот файл используется процессом публикации или упаковки вашего веб-проекта. Можно настроить поведение этого процесса,
 | 
			
		||||
изменив этот файл MSBuild. Подробности см. на странице https://go.microsoft.com/fwlink/?LinkID=208121. 
 | 
			
		||||
-->
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <TimeStampOfAssociatedLegacyPublishXmlFile />
 | 
			
		||||
    <_PublishTargetUrl>D:\Projects\ShowTrend3\bin\remotedebug</_PublishTargetUrl>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										27
									
								
								ShowTrend_tmp3/ShowTrend3/Properties/launchSettings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								ShowTrend_tmp3/ShowTrend3/Properties/launchSettings.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
{
 | 
			
		||||
  "iisSettings": {
 | 
			
		||||
    "windowsAuthentication": false,
 | 
			
		||||
    "anonymousAuthentication": true,
 | 
			
		||||
    "iisExpress": {
 | 
			
		||||
      "applicationUrl": "http://localhost:53512/",
 | 
			
		||||
      "sslPort": 0
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "profiles": {
 | 
			
		||||
    "IIS Express": {
 | 
			
		||||
      "commandName": "IISExpress",
 | 
			
		||||
      "launchBrowser": true,
 | 
			
		||||
      "environmentVariables": {
 | 
			
		||||
        "ASPNETCORE_ENVIRONMENT": "Development"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "ShowTrend3": {
 | 
			
		||||
      "commandName": "Project",
 | 
			
		||||
      "launchBrowser": true,
 | 
			
		||||
      "environmentVariables": {
 | 
			
		||||
        "ASPNETCORE_ENVIRONMENT": "Development"
 | 
			
		||||
      },
 | 
			
		||||
      "applicationUrl": "http://localhost:53513/"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								ShowTrend_tmp3/ShowTrend3/ShowTrend3.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								ShowTrend_tmp3/ShowTrend3/ShowTrend3.csproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
<Project Sdk="Microsoft.NET.Sdk.Web">
 | 
			
		||||
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <TargetFramework>netcoreapp2.1</TargetFramework>
 | 
			
		||||
    <TypeScriptToolsVersion>2.8</TypeScriptToolsVersion>
 | 
			
		||||
	<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
 | 
			
		||||
	<DebugType>portable</DebugType>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <PackageReference Include="AdoNetCore.AseClient" Version="0.10.1" />
 | 
			
		||||
    <PackageReference Include="bootstrap" Version="4.1.1" />
 | 
			
		||||
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.0" />
 | 
			
		||||
    <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
 | 
			
		||||
    <PackageReference Include="System.Text.Encoding.CodePages" Version="4.5.0" />
 | 
			
		||||
    <PackageReference Include="System.ValueTuple" Version="4.5.0" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Folder Include="wwwroot\images\" />
 | 
			
		||||
    <Folder Include="wwwroot\lib\" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										11
									
								
								ShowTrend_tmp3/ShowTrend3/ShowTrend3.csproj.user
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								ShowTrend_tmp3/ShowTrend3/ShowTrend3.csproj.user
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
 | 
			
		||||
    <DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <ActiveDebugProfile>ShowTrend3</ActiveDebugProfile>
 | 
			
		||||
    <WebStackScaffolding_ViewDialogWidth>600</WebStackScaffolding_ViewDialogWidth>
 | 
			
		||||
    <NameOfLastUsedPublishProfile>FolderProfile1</NameOfLastUsedPublishProfile>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										39
									
								
								ShowTrend_tmp3/ShowTrend3/Startup.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								ShowTrend_tmp3/ShowTrend3/Startup.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Microsoft.AspNetCore.Builder;
 | 
			
		||||
using Microsoft.AspNetCore.Hosting;
 | 
			
		||||
using Microsoft.Extensions.Configuration;
 | 
			
		||||
using Microsoft.Extensions.DependencyInjection;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3
 | 
			
		||||
{
 | 
			
		||||
    public class Startup
 | 
			
		||||
    {
 | 
			
		||||
        public Startup(IConfiguration configuration)
 | 
			
		||||
        { Configuration = configuration; }
 | 
			
		||||
        public IConfiguration Configuration { get; }
 | 
			
		||||
        public void ConfigureServices(IServiceCollection services)
 | 
			
		||||
        { services.AddMvc(); }
 | 
			
		||||
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
 | 
			
		||||
        {
 | 
			
		||||
            app.UseStaticFiles();
 | 
			
		||||
            app.UseMvc(routes =>
 | 
			
		||||
            {
 | 
			
		||||
                routes.MapRoute("Index", "index",
 | 
			
		||||
                    new { controller = "Sau", action = "Index" });
 | 
			
		||||
 | 
			
		||||
                routes.MapRoute("Analog", "analog",
 | 
			
		||||
                    new { controller = "Sau", action = "Analog" });
 | 
			
		||||
 | 
			
		||||
                routes.MapRoute("Show", "show",
 | 
			
		||||
                    new { controller = "Sau", action = "Show" });
 | 
			
		||||
 | 
			
		||||
                routes.MapRoute(
 | 
			
		||||
                    name: "default",
 | 
			
		||||
                    template: "{controller=Sau}/{action=Index}/{id?}");
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										234
									
								
								ShowTrend_tmp3/ShowTrend3/Views/Sau/Index.cshtml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										234
									
								
								ShowTrend_tmp3/ShowTrend3/Views/Sau/Index.cshtml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,234 @@
 | 
			
		||||
@{
 | 
			
		||||
    ViewData["Title"] = "РМТ";
 | 
			
		||||
}
 | 
			
		||||
<header class="row align-items-center justify-content-center">
 | 
			
		||||
    <div class="col text-center pt-2">
 | 
			
		||||
        <h3>РМТ "САУ ВДП" и "КОРПУС"</h3>
 | 
			
		||||
    </div>
 | 
			
		||||
</header>
 | 
			
		||||
 | 
			
		||||
<div class="row pt-2 pb-3">
 | 
			
		||||
    <div class="col-sm-12 col-md-5 border">
 | 
			
		||||
        <div class="row">
 | 
			
		||||
            <div class="col-12">
 | 
			
		||||
                <strong>Поиск по дате:</strong>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-auto">
 | 
			
		||||
                <input class="form-control" id="Search1_date" type="date">
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col">
 | 
			
		||||
                <button class="btn btn-primary" id="Search1_button" type="button">
 | 
			
		||||
                    Поиск
 | 
			
		||||
                </button>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="w-100"></div>
 | 
			
		||||
            <div class="col-12">
 | 
			
		||||
                <strong>Список паспортов:</strong>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-auto">
 | 
			
		||||
                <select class="form-control" id="Search1_list_pasport"></select>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-auto">
 | 
			
		||||
                <button class="btn btn-primary" id="Pasport_button_LoadAll" type="button" hidden>
 | 
			
		||||
                    Загрузка
 | 
			
		||||
                </button>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-md-7 border">
 | 
			
		||||
        <div class="row">
 | 
			
		||||
            <div class="col-12">
 | 
			
		||||
                <strong>Загрузка по печи:</strong>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-auto pt-2">
 | 
			
		||||
                Печь №
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-auto">
 | 
			
		||||
                <select class="form-control" id="Search2_select_vdp"></select>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="w-100"></div>
 | 
			
		||||
 | 
			
		||||
            <div class="col-auto pt-2">
 | 
			
		||||
                Начало:
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <div class="col-auto">
 | 
			
		||||
                <input class="form-control" type="date" id="Search2_date_start">
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-auto">
 | 
			
		||||
                <input class="form-control" type="time" id="Search2_time_start" step="1">
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="w-100"></div>
 | 
			
		||||
            <div class="col-auto pt-2">
 | 
			
		||||
                Конец:
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-auto">
 | 
			
		||||
                <input class="form-control" id="Search2_date_end" type="date">
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-auto">
 | 
			
		||||
                <input class="form-control" type="time" id="Search2_time_end" step="1">
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="w-100"></div>
 | 
			
		||||
            <div class="col-auto pt-1">
 | 
			
		||||
                <button class="btn btn-primary" id="Search2_button_load" type="button">
 | 
			
		||||
                    Загрузка
 | 
			
		||||
                </button>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="row border-top" id="Pasport_Lable" hidden>
 | 
			
		||||
    <div class="col-12 text-center">
 | 
			
		||||
        <h5>Паспорт</h5>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="row" id="Pasport_Date" hidden>
 | 
			
		||||
    <div class="col-sm-12 col-md-6 col-lg-4">
 | 
			
		||||
        Время начала: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-md-6 col-lg-4">
 | 
			
		||||
        Время конца: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="row border-bottom pb-1" id="Pasport_Info" hidden>
 | 
			
		||||
    <div class="col-sm-12 col-lg-6">
 | 
			
		||||
        Сплав: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-lg-6">
 | 
			
		||||
        Переплав № <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-lg-6">
 | 
			
		||||
        Назначение: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-lg-6">
 | 
			
		||||
        Категория продукции: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-lg-6">
 | 
			
		||||
        Заказчик: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-lg-6">
 | 
			
		||||
        Вес слитка: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-lg-6">
 | 
			
		||||
        Комплект № <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-lg-6">
 | 
			
		||||
        Диаметр кристализатора: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-lg-6">
 | 
			
		||||
        Диаметр электрода: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-lg-6">
 | 
			
		||||
        Контракт № <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-lg-6">
 | 
			
		||||
        Указание: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="row p-3" id="AnalogChart_Load_Element" style="display: none;">
 | 
			
		||||
    <div class="col-12 text-center">
 | 
			
		||||
        <i class="fas fa-spinner fa-spin" style="font-size: 30px; color:#0094ff"></i>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="row border-top" id="AnalogChart_label" hidden>
 | 
			
		||||
    <div class="col-12 text-center">
 | 
			
		||||
        <h5>Аналоговые сигналы</h5>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div id="AnalogChart_Global" class="row" hidden>
 | 
			
		||||
    <div class="col-sm-12 col-md-2" style="font-size:12px">
 | 
			
		||||
        <div class="row">
 | 
			
		||||
            <div class="col-12">
 | 
			
		||||
                <input id="AnalogChart_Update" class="btn btn-primary" type="button" value="Обновить" />
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-12" style=" max-height: 570px; overflow: auto;">
 | 
			
		||||
                <div id="AnalogChart_Checkbox" class="form-check"></div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-md-10">
 | 
			
		||||
        <div id="AnalogChart" style="height: 600px;"></div>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<div class="row border-top" id="Discret_label" hidden>
 | 
			
		||||
    <div class="col-12 text-center">
 | 
			
		||||
        <h5>Дискретные сигналы</h5>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div id="Discret_Global" class="row" hidden>
 | 
			
		||||
    <div class="col-sm-12 col-md-2" style="font-size:12px">
 | 
			
		||||
        <div class="row">
 | 
			
		||||
            <div class="col-12">
 | 
			
		||||
                <input id="Discret_Update" class="btn btn-primary" type="button" value="Обновить" />
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-12" style=" max-height: 570px; overflow: auto;">
 | 
			
		||||
                <div id="Discret_Checkbox" class="form-check"></div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="col-sm-12 col-md-10" style="overflow : auto; max-height : 600px">
 | 
			
		||||
        <table class="table table-active">
 | 
			
		||||
            <thead>
 | 
			
		||||
                <tr>
 | 
			
		||||
                    <th>
 | 
			
		||||
                        <button class="btn btn-primary fas fa-sort-amount-down" id="Discret_Sort" type="button"></button>
 | 
			
		||||
                    </th>
 | 
			
		||||
                    <th>Время начала</th>
 | 
			
		||||
                    <th>Название</th>
 | 
			
		||||
                    <th>Статус</th>
 | 
			
		||||
                </tr>
 | 
			
		||||
            </thead>
 | 
			
		||||
            <tbody></tbody>
 | 
			
		||||
        </table>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<div class="row" hidden>
 | 
			
		||||
    <div class="col-auto">
 | 
			
		||||
        <button class="btn btn-primary" id="test_button" type="button">
 | 
			
		||||
            Тест
 | 
			
		||||
        </button>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class="row border-top" id="Tech_Cycle_Lable" hidden>
 | 
			
		||||
    <div class="col-12 text-center">
 | 
			
		||||
        <h5>Технологический цикл</h5>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class="row border-bottom pb-1" id="Tech_Cycle_Table" hidden>
 | 
			
		||||
    <div class="col-12" style="overflow : auto; max-height : 600px">
 | 
			
		||||
        <table class="table table-active">
 | 
			
		||||
            <thead>
 | 
			
		||||
                <tr>
 | 
			
		||||
                    <th>
 | 
			
		||||
                        <button class="btn btn-primary fas fa-sort-amount-down" id="Tech_Cycle_Sort" type="button"></button>
 | 
			
		||||
                    </th>
 | 
			
		||||
                    <th>Время начала</th>
 | 
			
		||||
                    <th>Операция</th>
 | 
			
		||||
                </tr>
 | 
			
		||||
            </thead>
 | 
			
		||||
            <tbody></tbody>
 | 
			
		||||
        </table>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@section Insert_Styles{
 | 
			
		||||
    <link rel="stylesheet" href="~/lib/Font-Awesome/css/fontawesome-all.css" />
 | 
			
		||||
    <link rel="stylesheet" href="~/css/MainSau.css">
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@section Scripts{
 | 
			
		||||
    <script src="~/lib/canvasjs.min.js"></script>
 | 
			
		||||
    <script src="~/js/Pasport.js"></script>
 | 
			
		||||
    <script src="~/js/AnalogChart.js"></script>
 | 
			
		||||
    <script src="~/js/main.js"></script>
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								ShowTrend_tmp3/ShowTrend3/Views/Sau/Index.cshtml.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								ShowTrend_tmp3/ShowTrend3/Views/Sau/Index.cshtml.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
using Microsoft.AspNetCore.Mvc.RazorPages;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Views.Sau
 | 
			
		||||
{
 | 
			
		||||
    public class IndexModel : PageModel
 | 
			
		||||
    {
 | 
			
		||||
        public void OnGet()
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								ShowTrend_tmp3/ShowTrend3/Views/Sau/analog.cshtml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								ShowTrend_tmp3/ShowTrend3/Views/Sau/analog.cshtml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
@{
 | 
			
		||||
    ViewData["Title"] = "analog";
 | 
			
		||||
}
 | 
			
		||||
<canvas id="myChart" width="400" height="400"></canvas>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@section Insert_Styles{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@section Scripts{
 | 
			
		||||
    <script src="~/lib/Chart.bundle.js"></script>
 | 
			
		||||
    <script src="~/js/AnalogChart.js"></script>
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								ShowTrend_tmp3/ShowTrend3/Views/Sau/analog.cshtml.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								ShowTrend_tmp3/ShowTrend3/Views/Sau/analog.cshtml.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
using Microsoft.AspNetCore.Mvc.RazorPages;
 | 
			
		||||
 | 
			
		||||
namespace ShowTrend3.Views.Sau
 | 
			
		||||
{
 | 
			
		||||
    public class Index1Model : PageModel
 | 
			
		||||
    {
 | 
			
		||||
        public void OnGet()
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								ShowTrend_tmp3/ShowTrend3/Views/Shared/_Layout.cshtml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								ShowTrend_tmp3/ShowTrend3/Views/Shared/_Layout.cshtml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="ru">
 | 
			
		||||
<head>
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 | 
			
		||||
    <meta charset="utf-8" />
 | 
			
		||||
    <title>@ViewData["Title"]</title>
 | 
			
		||||
    <link rel="stylesheet" href="~/lib/Bootstrap/css/bootstrap.css">
 | 
			
		||||
    @RenderSection("Insert_Styles", required: false)
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
    <div class="container">
 | 
			
		||||
        @RenderBody()
 | 
			
		||||
    </div>
 | 
			
		||||
    <script src="~/lib/JQuery/jquery-3.3.1.js"></script>
 | 
			
		||||
    <script src="~/lib/Popper/umd/popper.js"></script>
 | 
			
		||||
    <script src="~/lib/Bootstrap/js/bootstrap.bundle.js"></script>
 | 
			
		||||
    @RenderSection("Scripts", required: false)
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										3
									
								
								ShowTrend_tmp3/ShowTrend3/Views/_ViewImports.cshtml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								ShowTrend_tmp3/ShowTrend3/Views/_ViewImports.cshtml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
@using ShowTrend3
 | 
			
		||||
@using ShowTrend3.Models
 | 
			
		||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
 | 
			
		||||
							
								
								
									
										3
									
								
								ShowTrend_tmp3/ShowTrend3/Views/_ViewStart.cshtml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								ShowTrend_tmp3/ShowTrend3/Views/_ViewStart.cshtml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
@{
 | 
			
		||||
    Layout = "_Layout";
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								ShowTrend_tmp3/ShowTrend3/appsettings.Development.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								ShowTrend_tmp3/ShowTrend3/appsettings.Development.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
{
 | 
			
		||||
  "Logging": {
 | 
			
		||||
    "IncludeScopes": false,
 | 
			
		||||
    "LogLevel": {
 | 
			
		||||
      "Default": "Debug",
 | 
			
		||||
      "System": "Information",
 | 
			
		||||
      "Microsoft": "Information"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								ShowTrend_tmp3/ShowTrend3/appsettings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								ShowTrend_tmp3/ShowTrend3/appsettings.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
{
 | 
			
		||||
  "Logging": {
 | 
			
		||||
    "IncludeScopes": false,
 | 
			
		||||
    "LogLevel": {
 | 
			
		||||
      "Default": "Warning"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/bin/Debug/netcoreapp2.1/ShowTrend3.dll
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/bin/Debug/netcoreapp2.1/ShowTrend3.dll
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/bin/Debug/netcoreapp2.1/ShowTrend3.pdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/bin/Debug/netcoreapp2.1/ShowTrend3.pdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
{
 | 
			
		||||
  "runtimeOptions": {
 | 
			
		||||
    "additionalProbingPaths": [
 | 
			
		||||
      "C:\\Users\\Admin\\.dotnet\\store\\|arch|\\|tfm|",
 | 
			
		||||
      "C:\\Users\\Admin\\.nuget\\packages",
 | 
			
		||||
      "C:\\ProgramData\\Xamarin\\NuGet",
 | 
			
		||||
      "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,12 @@
 | 
			
		||||
{
 | 
			
		||||
  "runtimeOptions": {
 | 
			
		||||
    "tfm": "netcoreapp2.1",
 | 
			
		||||
    "framework": {
 | 
			
		||||
      "name": "Microsoft.AspNetCore.All",
 | 
			
		||||
      "version": "2.1.0"
 | 
			
		||||
    },
 | 
			
		||||
    "configProperties": {
 | 
			
		||||
      "System.GC.Server": true
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										24
									
								
								ShowTrend_tmp3/ShowTrend3/bundleconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								ShowTrend_tmp3/ShowTrend3/bundleconfig.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
// Configure bundling and minification for the project.
 | 
			
		||||
// More info at https://go.microsoft.com/fwlink/?LinkId=808241
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
    "outputFileName": "wwwroot/css/site.min.css",
 | 
			
		||||
    // An array of relative input file paths. Globbing patterns supported
 | 
			
		||||
    "inputFiles": [
 | 
			
		||||
      "wwwroot/css/site.css"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "outputFileName": "wwwroot/js/site.min.js",
 | 
			
		||||
    "inputFiles": [
 | 
			
		||||
      "wwwroot/js/site.js"
 | 
			
		||||
    ],
 | 
			
		||||
    // Optionally specify minification options
 | 
			
		||||
    "minify": {
 | 
			
		||||
      "enabled": true,
 | 
			
		||||
      "renameLocals": true
 | 
			
		||||
    },
 | 
			
		||||
    // Optionally generate .map file
 | 
			
		||||
    "sourceMap": false
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
@@ -0,0 +1,423 @@
 | 
			
		||||
#pragma checksum "D:\Projects\ShowTrend3.0\ShowTrend3\Views\Sau\Index.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "4e531ea8d2a043d26b985f3162791cb8abdbe8d2"
 | 
			
		||||
// <auto-generated/>
 | 
			
		||||
#pragma warning disable 1591
 | 
			
		||||
[assembly: global::Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute(typeof(AspNetCore.Views_Sau_Index), @"mvc.1.0.view", @"/Views/Sau/Index.cshtml")]
 | 
			
		||||
[assembly:global::Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute(@"/Views/Sau/Index.cshtml", typeof(AspNetCore.Views_Sau_Index))]
 | 
			
		||||
namespace AspNetCore
 | 
			
		||||
{
 | 
			
		||||
    #line hidden
 | 
			
		||||
    using System;
 | 
			
		||||
    using System.Collections.Generic;
 | 
			
		||||
    using System.Linq;
 | 
			
		||||
    using System.Threading.Tasks;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc.Rendering;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc.ViewFeatures;
 | 
			
		||||
#line 1 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewImports.cshtml"
 | 
			
		||||
using ShowTrend3;
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
#line 2 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewImports.cshtml"
 | 
			
		||||
using ShowTrend3.Models;
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
    [global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"4e531ea8d2a043d26b985f3162791cb8abdbe8d2", @"/Views/Sau/Index.cshtml")]
 | 
			
		||||
    [global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"9e69e93380106bb986359f24304dbb7f798605da", @"/Views/_ViewImports.cshtml")]
 | 
			
		||||
    public class Views_Sau_Index : global::Microsoft.AspNetCore.Mvc.Razor.RazorPage<dynamic>
 | 
			
		||||
    {
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_0 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("rel", new global::Microsoft.AspNetCore.Html.HtmlString("stylesheet"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_1 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("href", new global::Microsoft.AspNetCore.Html.HtmlString("~/lib/Font-Awesome/css/fontawesome-all.css"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_2 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("href", new global::Microsoft.AspNetCore.Html.HtmlString("~/css/MainSau.css"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_3 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("src", new global::Microsoft.AspNetCore.Html.HtmlString("~/lib/canvasjs.min.js"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_4 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("src", new global::Microsoft.AspNetCore.Html.HtmlString("~/js/Pasport.js"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_5 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("src", new global::Microsoft.AspNetCore.Html.HtmlString("~/js/AnalogChart.js"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_6 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("src", new global::Microsoft.AspNetCore.Html.HtmlString("~/js/main.js"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        #line hidden
 | 
			
		||||
        #pragma warning disable 0169
 | 
			
		||||
        private string __tagHelperStringValueBuffer;
 | 
			
		||||
        #pragma warning restore 0169
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext __tagHelperExecutionContext;
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner __tagHelperRunner = new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner();
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager __backed__tagHelperScopeManager = null;
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager __tagHelperScopeManager
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (__backed__tagHelperScopeManager == null)
 | 
			
		||||
                {
 | 
			
		||||
                    __backed__tagHelperScopeManager = new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager(StartTagHelperWritingScope, EndTagHelperWritingScope);
 | 
			
		||||
                }
 | 
			
		||||
                return __backed__tagHelperScopeManager;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        private global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper;
 | 
			
		||||
        #pragma warning disable 1998
 | 
			
		||||
        public async override global::System.Threading.Tasks.Task ExecuteAsync()
 | 
			
		||||
        {
 | 
			
		||||
#line 1 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\Sau\Index.cshtml"
 | 
			
		||||
  
 | 
			
		||||
    ViewData["Title"] = "РМТ";
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
            BeginContext(39, 7288, true);
 | 
			
		||||
            WriteLiteral(@"<header class=""row align-items-center justify-content-center"">
 | 
			
		||||
    <div class=""col text-center pt-2"">
 | 
			
		||||
        <h3>РМТ ""САУ ВДП"" и ""КОРПУС""</h3>
 | 
			
		||||
    </div>
 | 
			
		||||
</header>
 | 
			
		||||
 | 
			
		||||
<div class=""row pt-2 pb-3"">
 | 
			
		||||
    <div class=""col-sm-12 col-md-5 border"">
 | 
			
		||||
        <div class=""row"">
 | 
			
		||||
            <div class=""col-12"">
 | 
			
		||||
                <strong>Поиск по дате:</strong>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""col-auto"">
 | 
			
		||||
                <input class=""form-control"" id=""Search1_date"" type=""date"">
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""col"">
 | 
			
		||||
                <button class=""btn btn-primary"" id=""Search1_button"" type=""button"">
 | 
			
		||||
                    Поиск
 | 
			
		||||
                </button>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""w-100""></div>
 | 
			
		||||
            <div class=""col-12"">
 | 
			
		||||
                <strong>Список паспортов:</strong>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""col-auto"">
 | 
			
		||||
                <select class=""form-control"" id=""Search1_list_pasport""></select>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""col-auto"">
 | 
			
		||||
        ");
 | 
			
		||||
            WriteLiteral(@"        <button class=""btn btn-primary"" id=""Pasport_button_LoadAll"" type=""button"" hidden>
 | 
			
		||||
                    Загрузка
 | 
			
		||||
                </button>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-md-7 border"">
 | 
			
		||||
        <div class=""row"">
 | 
			
		||||
            <div class=""col-12"">
 | 
			
		||||
                <strong>Загрузка по печи:</strong>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""col-auto pt-2"">
 | 
			
		||||
                Печь №
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""col-auto"">
 | 
			
		||||
                <select class=""form-control"" id=""Search2_select_vdp""></select>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""w-100""></div>
 | 
			
		||||
 | 
			
		||||
            <div class=""col-auto pt-2"">
 | 
			
		||||
                Начало:
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <div class=""col-auto"">
 | 
			
		||||
                <input class=""form-control"" type=""date"" id=""Search2_date_start"">
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""col-auto"">
 | 
			
		||||
                <input class=""form-control"" type=""time"" id=""Search2_time_start"" step=""1"">
 | 
			
		||||
            </div>
 | 
			
		||||
            <di");
 | 
			
		||||
            WriteLiteral(@"v class=""w-100""></div>
 | 
			
		||||
            <div class=""col-auto pt-2"">
 | 
			
		||||
                Конец:
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""col-auto"">
 | 
			
		||||
                <input class=""form-control"" id=""Search2_date_end"" type=""date"">
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""col-auto"">
 | 
			
		||||
                <input class=""form-control"" type=""time"" id=""Search2_time_end"" step=""1"">
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""w-100""></div>
 | 
			
		||||
            <div class=""col-auto pt-1"">
 | 
			
		||||
                <button class=""btn btn-primary"" id=""Search2_button_load"" type=""button"">
 | 
			
		||||
                    Загрузка
 | 
			
		||||
                </button>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class=""row border-top"" id=""Pasport_Lable"" hidden>
 | 
			
		||||
    <div class=""col-12 text-center"">
 | 
			
		||||
        <h5>Паспорт</h5>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class=""row"" id=""Pasport_Date"" hidden>
 | 
			
		||||
    <div class=""col-sm-12 col-md-6 col-lg-4"">
 | 
			
		||||
        Время начала: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-md-6 col-lg-4"">
 | 
			
		||||
        Время конца: <spa");
 | 
			
		||||
            WriteLiteral(@"n></span>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class=""row border-bottom pb-1"" id=""Pasport_Info"" hidden>
 | 
			
		||||
    <div class=""col-sm-12 col-lg-6"">
 | 
			
		||||
        Сплав: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-lg-6"">
 | 
			
		||||
        Переплав № <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-lg-6"">
 | 
			
		||||
        Назначение: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-lg-6"">
 | 
			
		||||
        Категория продукции: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-lg-6"">
 | 
			
		||||
        Заказчик: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-lg-6"">
 | 
			
		||||
        Вес слитка: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-lg-6"">
 | 
			
		||||
        Комплект № <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-lg-6"">
 | 
			
		||||
        Диаметр кристализатора: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-lg-6"">
 | 
			
		||||
        Диаметр электрода: <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-lg-6"">
 | 
			
		||||
        Контракт № <span></span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-lg-6"">
 | 
			
		||||
        Указание: <span>");
 | 
			
		||||
            WriteLiteral(@"</span>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class=""row p-3"" id=""AnalogChart_Load_Element"" style=""display: none;"">
 | 
			
		||||
    <div class=""col-12 text-center"">
 | 
			
		||||
        <i class=""fas fa-spinner fa-spin"" style=""font-size: 30px; color:#0094ff""></i>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class=""row border-top"" id=""AnalogChart_label"" hidden>
 | 
			
		||||
    <div class=""col-12 text-center"">
 | 
			
		||||
        <h5>Аналоговые сигналы</h5>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div id=""AnalogChart_Global"" class=""row"" hidden>
 | 
			
		||||
    <div class=""col-sm-12 col-md-2"" style=""font-size:12px"">
 | 
			
		||||
        <div class=""row"">
 | 
			
		||||
            <div class=""col-12"">
 | 
			
		||||
                <input id=""AnalogChart_Update"" class=""btn btn-primary"" type=""button"" value=""Обновить"" />
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""col-12"" style="" max-height: 570px; overflow: auto;"">
 | 
			
		||||
                <div id=""AnalogChart_Checkbox"" class=""form-check""></div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-md-10"">
 | 
			
		||||
        <div id=""AnalogChart"" style=""height: 600px;""></div>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
");
 | 
			
		||||
            WriteLiteral(@"
 | 
			
		||||
 | 
			
		||||
<div class=""row border-top"" id=""Discret_label"" hidden>
 | 
			
		||||
    <div class=""col-12 text-center"">
 | 
			
		||||
        <h5>Дискретные сигналы</h5>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div id=""Discret_Global"" class=""row"" hidden>
 | 
			
		||||
    <div class=""col-sm-12 col-md-2"" style=""font-size:12px"">
 | 
			
		||||
        <div class=""row"">
 | 
			
		||||
            <div class=""col-12"">
 | 
			
		||||
                <input id=""Discret_Update"" class=""btn btn-primary"" type=""button"" value=""Обновить"" />
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class=""col-12"" style="" max-height: 570px; overflow: auto;"">
 | 
			
		||||
                <div id=""Discret_Checkbox"" class=""form-check""></div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class=""col-sm-12 col-md-10"" style=""overflow : auto; max-height : 600px"">
 | 
			
		||||
        <table class=""table table-active"">
 | 
			
		||||
            <thead>
 | 
			
		||||
                <tr>
 | 
			
		||||
                    <th>
 | 
			
		||||
                        <button class=""btn btn-primary fas fa-sort-amount-down"" id=""Discret_Sort"" type=""button""></button>
 | 
			
		||||
                    </th>
 | 
			
		||||
                    <th>Время начала</");
 | 
			
		||||
            WriteLiteral(@"th>
 | 
			
		||||
                    <th>Название</th>
 | 
			
		||||
                    <th>Статус</th>
 | 
			
		||||
                </tr>
 | 
			
		||||
            </thead>
 | 
			
		||||
            <tbody></tbody>
 | 
			
		||||
        </table>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<div class=""row"" hidden>
 | 
			
		||||
    <div class=""col-auto"">
 | 
			
		||||
        <button class=""btn btn-primary"" id=""test_button"" type=""button"">
 | 
			
		||||
            Тест
 | 
			
		||||
        </button>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class=""row border-top"" id=""Tech_Cycle_Lable"" hidden>
 | 
			
		||||
    <div class=""col-12 text-center"">
 | 
			
		||||
        <h5>Технологический цикл</h5>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
<div class=""row border-bottom pb-1"" id=""Tech_Cycle_Table"" hidden>
 | 
			
		||||
    <div class=""col-12"" style=""overflow : auto; max-height : 600px"">
 | 
			
		||||
        <table class=""table table-active"">
 | 
			
		||||
            <thead>
 | 
			
		||||
                <tr>
 | 
			
		||||
                    <th>
 | 
			
		||||
                        <button class=""btn btn-primary fas fa-sort-amount-down"" id=""Tech_Cycle_Sort"" type=""button""></button>
 | 
			
		||||
                    </th>
 | 
			
		||||
                    <th>Время начала</th>
 | 
			
		||||
                    <th>Операция</t");
 | 
			
		||||
            WriteLiteral("h>\r\n                </tr>\r\n            </thead>\r\n            <tbody></tbody>\r\n        </table>\r\n    </div>\r\n</div>\r\n\r\n\r\n");
 | 
			
		||||
            EndContext();
 | 
			
		||||
            DefineSection("Insert_Styles", async() => {
 | 
			
		||||
                BeginContext(7350, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7356, 75, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("link", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.SelfClosing, "89ffea7a3f13465a8d3f9e867d2df2f5", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_0);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_1);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7431, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7437, 48, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("link", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagOnly, "6c513b90ad234eeeba5e51b8727ceb78", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_0);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_2);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7485, 4, true);
 | 
			
		||||
                WriteLiteral("\r\n\r\n");
 | 
			
		||||
                EndContext();
 | 
			
		||||
            }
 | 
			
		||||
            );
 | 
			
		||||
            BeginContext(7492, 2, true);
 | 
			
		||||
            WriteLiteral("\r\n");
 | 
			
		||||
            EndContext();
 | 
			
		||||
            DefineSection("Scripts", async() => {
 | 
			
		||||
                BeginContext(7511, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7517, 45, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("script", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "727cf6c24d6f47b6a7b5decddd246c48", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_3);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7562, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7568, 39, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("script", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "d50c1239b39f46e6bd293392ba0ae59b", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_4);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7607, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7613, 43, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("script", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "3ffd113c6a3c4b36ad566da945840705", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_5);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7656, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7662, 36, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("script", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "11ea9c2c340c41e78b0b976d17e62145", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_6);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(7698, 4, true);
 | 
			
		||||
                WriteLiteral("\r\n\r\n");
 | 
			
		||||
                EndContext();
 | 
			
		||||
            }
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
        #pragma warning restore 1998
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.IViewComponentHelper Component { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<dynamic> Html { get; private set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,128 @@
 | 
			
		||||
#pragma checksum "D:\Projects\ShowTrend3.0\ShowTrend3\Views\Sau\analog.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "52a83490a3a8b9a1df5a4018534426df61dbadff"
 | 
			
		||||
// <auto-generated/>
 | 
			
		||||
#pragma warning disable 1591
 | 
			
		||||
[assembly: global::Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute(typeof(AspNetCore.Views_Sau_analog), @"mvc.1.0.view", @"/Views/Sau/analog.cshtml")]
 | 
			
		||||
[assembly:global::Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute(@"/Views/Sau/analog.cshtml", typeof(AspNetCore.Views_Sau_analog))]
 | 
			
		||||
namespace AspNetCore
 | 
			
		||||
{
 | 
			
		||||
    #line hidden
 | 
			
		||||
    using System;
 | 
			
		||||
    using System.Collections.Generic;
 | 
			
		||||
    using System.Linq;
 | 
			
		||||
    using System.Threading.Tasks;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc.Rendering;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc.ViewFeatures;
 | 
			
		||||
#line 1 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewImports.cshtml"
 | 
			
		||||
using ShowTrend3;
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
#line 2 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewImports.cshtml"
 | 
			
		||||
using ShowTrend3.Models;
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
    [global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"52a83490a3a8b9a1df5a4018534426df61dbadff", @"/Views/Sau/analog.cshtml")]
 | 
			
		||||
    [global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"9e69e93380106bb986359f24304dbb7f798605da", @"/Views/_ViewImports.cshtml")]
 | 
			
		||||
    public class Views_Sau_analog : global::Microsoft.AspNetCore.Mvc.Razor.RazorPage<dynamic>
 | 
			
		||||
    {
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_0 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("src", new global::Microsoft.AspNetCore.Html.HtmlString("~/lib/Chart.bundle.js"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_1 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("src", new global::Microsoft.AspNetCore.Html.HtmlString("~/js/AnalogChart.js"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        #line hidden
 | 
			
		||||
        #pragma warning disable 0169
 | 
			
		||||
        private string __tagHelperStringValueBuffer;
 | 
			
		||||
        #pragma warning restore 0169
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext __tagHelperExecutionContext;
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner __tagHelperRunner = new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner();
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager __backed__tagHelperScopeManager = null;
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager __tagHelperScopeManager
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (__backed__tagHelperScopeManager == null)
 | 
			
		||||
                {
 | 
			
		||||
                    __backed__tagHelperScopeManager = new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager(StartTagHelperWritingScope, EndTagHelperWritingScope);
 | 
			
		||||
                }
 | 
			
		||||
                return __backed__tagHelperScopeManager;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        private global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper;
 | 
			
		||||
        #pragma warning disable 1998
 | 
			
		||||
        public async override global::System.Threading.Tasks.Task ExecuteAsync()
 | 
			
		||||
        {
 | 
			
		||||
#line 1 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\Sau\analog.cshtml"
 | 
			
		||||
  
 | 
			
		||||
    ViewData["Title"] = "analog";
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
            BeginContext(42, 61, true);
 | 
			
		||||
            WriteLiteral("<canvas id=\"myChart\" width=\"400\" height=\"400\"></canvas>\r\n\r\n\r\n");
 | 
			
		||||
            EndContext();
 | 
			
		||||
            DefineSection("Insert_Styles", async() => {
 | 
			
		||||
                BeginContext(126, 4, true);
 | 
			
		||||
                WriteLiteral("\r\n\r\n");
 | 
			
		||||
                EndContext();
 | 
			
		||||
            }
 | 
			
		||||
            );
 | 
			
		||||
            BeginContext(133, 2, true);
 | 
			
		||||
            WriteLiteral("\r\n");
 | 
			
		||||
            EndContext();
 | 
			
		||||
            DefineSection("Scripts", async() => {
 | 
			
		||||
                BeginContext(152, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(158, 45, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("script", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "b0f931c3cd7642e9b6eefa18e6d6f435", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_0);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(203, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(209, 43, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("script", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "ac33b8f735fb4eea9bbd7aec80b226c4", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_1);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(252, 2, true);
 | 
			
		||||
                WriteLiteral("\r\n");
 | 
			
		||||
                EndContext();
 | 
			
		||||
            }
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
        #pragma warning restore 1998
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.IViewComponentHelper Component { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<dynamic> Html { get; private set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#pragma warning restore 1591
 | 
			
		||||
@@ -0,0 +1,229 @@
 | 
			
		||||
#pragma checksum "D:\Projects\ShowTrend3.0\ShowTrend3\Views\Shared\_Layout.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "1c74fa492d0750c288f18cd4a7871355940d5687"
 | 
			
		||||
// <auto-generated/>
 | 
			
		||||
#pragma warning disable 1591
 | 
			
		||||
[assembly: global::Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute(typeof(AspNetCore.Views_Shared__Layout), @"mvc.1.0.view", @"/Views/Shared/_Layout.cshtml")]
 | 
			
		||||
[assembly:global::Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute(@"/Views/Shared/_Layout.cshtml", typeof(AspNetCore.Views_Shared__Layout))]
 | 
			
		||||
namespace AspNetCore
 | 
			
		||||
{
 | 
			
		||||
    #line hidden
 | 
			
		||||
    using System;
 | 
			
		||||
    using System.Collections.Generic;
 | 
			
		||||
    using System.Linq;
 | 
			
		||||
    using System.Threading.Tasks;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc.Rendering;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc.ViewFeatures;
 | 
			
		||||
#line 1 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewImports.cshtml"
 | 
			
		||||
using ShowTrend3;
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
#line 2 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewImports.cshtml"
 | 
			
		||||
using ShowTrend3.Models;
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
    [global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"1c74fa492d0750c288f18cd4a7871355940d5687", @"/Views/Shared/_Layout.cshtml")]
 | 
			
		||||
    [global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"9e69e93380106bb986359f24304dbb7f798605da", @"/Views/_ViewImports.cshtml")]
 | 
			
		||||
    public class Views_Shared__Layout : global::Microsoft.AspNetCore.Mvc.Razor.RazorPage<dynamic>
 | 
			
		||||
    {
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_0 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("rel", new global::Microsoft.AspNetCore.Html.HtmlString("stylesheet"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_1 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("href", new global::Microsoft.AspNetCore.Html.HtmlString("~/lib/Bootstrap/css/bootstrap.css"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_2 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("src", new global::Microsoft.AspNetCore.Html.HtmlString("~/lib/JQuery/jquery-3.3.1.js"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_3 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("src", new global::Microsoft.AspNetCore.Html.HtmlString("~/lib/Popper/umd/popper.js"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_4 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("src", new global::Microsoft.AspNetCore.Html.HtmlString("~/lib/Bootstrap/js/bootstrap.bundle.js"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
 | 
			
		||||
        #line hidden
 | 
			
		||||
        #pragma warning disable 0169
 | 
			
		||||
        private string __tagHelperStringValueBuffer;
 | 
			
		||||
        #pragma warning restore 0169
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext __tagHelperExecutionContext;
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner __tagHelperRunner = new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner();
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager __backed__tagHelperScopeManager = null;
 | 
			
		||||
        private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager __tagHelperScopeManager
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (__backed__tagHelperScopeManager == null)
 | 
			
		||||
                {
 | 
			
		||||
                    __backed__tagHelperScopeManager = new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager(StartTagHelperWritingScope, EndTagHelperWritingScope);
 | 
			
		||||
                }
 | 
			
		||||
                return __backed__tagHelperScopeManager;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        private global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.HeadTagHelper __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_HeadTagHelper;
 | 
			
		||||
        private global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper;
 | 
			
		||||
        private global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.BodyTagHelper __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_BodyTagHelper;
 | 
			
		||||
        #pragma warning disable 1998
 | 
			
		||||
        public async override global::System.Threading.Tasks.Task ExecuteAsync()
 | 
			
		||||
        {
 | 
			
		||||
            BeginContext(0, 35, true);
 | 
			
		||||
            WriteLiteral("<!DOCTYPE html>\r\n<html lang=\"ru\">\r\n");
 | 
			
		||||
            EndContext();
 | 
			
		||||
            BeginContext(35, 300, false);
 | 
			
		||||
            __tagHelperExecutionContext = __tagHelperScopeManager.Begin("head", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "6600e8ee0c6b4dd8af055f54f81c9268", async() => {
 | 
			
		||||
                BeginContext(41, 135, true);
 | 
			
		||||
                WriteLiteral("\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\r\n    <meta charset=\"utf-8\" />\r\n    <title>");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(177, 17, false);
 | 
			
		||||
#line 6 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\Shared\_Layout.cshtml"
 | 
			
		||||
      Write(ViewData["Title"]);
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(194, 14, true);
 | 
			
		||||
                WriteLiteral("</title>\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(208, 64, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("link", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagOnly, "c93939972b2c4c03894e8ef27ca51613", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_0);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_1);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(272, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(279, 47, false);
 | 
			
		||||
#line 8 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\Shared\_Layout.cshtml"
 | 
			
		||||
Write(RenderSection("Insert_Styles", required: false));
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(326, 2, true);
 | 
			
		||||
                WriteLiteral("\r\n");
 | 
			
		||||
                EndContext();
 | 
			
		||||
            }
 | 
			
		||||
            );
 | 
			
		||||
            __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_HeadTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.HeadTagHelper>();
 | 
			
		||||
            __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_HeadTagHelper);
 | 
			
		||||
            await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
            if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
            {
 | 
			
		||||
                await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
            }
 | 
			
		||||
            Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
            __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
            EndContext();
 | 
			
		||||
            BeginContext(335, 2, true);
 | 
			
		||||
            WriteLiteral("\r\n");
 | 
			
		||||
            EndContext();
 | 
			
		||||
            BeginContext(337, 309, false);
 | 
			
		||||
            __tagHelperExecutionContext = __tagHelperScopeManager.Begin("body", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "8672b9ca12a64cb591b3344bcafb3d6b", async() => {
 | 
			
		||||
                BeginContext(343, 39, true);
 | 
			
		||||
                WriteLiteral("\r\n    <div class=\"container\">\r\n        ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(383, 12, false);
 | 
			
		||||
#line 12 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\Shared\_Layout.cshtml"
 | 
			
		||||
   Write(RenderBody());
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(395, 18, true);
 | 
			
		||||
                WriteLiteral("\r\n    </div>\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(413, 52, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("script", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "0b909515959d4dcb9d57d883cc770d48", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_2);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(465, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(471, 50, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("script", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "a6cc926cd9174df2b65b4b232fb36196", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_3);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(521, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(527, 62, false);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.Begin("script", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "0f50a363a488411f825d42a8d5138d50", async() => {
 | 
			
		||||
                }
 | 
			
		||||
                );
 | 
			
		||||
                __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper>();
 | 
			
		||||
                __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_UrlResolutionTagHelper);
 | 
			
		||||
                __tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_4);
 | 
			
		||||
                await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
                if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
                {
 | 
			
		||||
                    await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
                }
 | 
			
		||||
                Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
                __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(589, 6, true);
 | 
			
		||||
                WriteLiteral("\r\n    ");
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(596, 41, false);
 | 
			
		||||
#line 17 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\Shared\_Layout.cshtml"
 | 
			
		||||
Write(RenderSection("Scripts", required: false));
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
                EndContext();
 | 
			
		||||
                BeginContext(637, 2, true);
 | 
			
		||||
                WriteLiteral("\r\n");
 | 
			
		||||
                EndContext();
 | 
			
		||||
            }
 | 
			
		||||
            );
 | 
			
		||||
            __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_BodyTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.BodyTagHelper>();
 | 
			
		||||
            __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_BodyTagHelper);
 | 
			
		||||
            await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
 | 
			
		||||
            if (!__tagHelperExecutionContext.Output.IsContentModified)
 | 
			
		||||
            {
 | 
			
		||||
                await __tagHelperExecutionContext.SetOutputContentAsync();
 | 
			
		||||
            }
 | 
			
		||||
            Write(__tagHelperExecutionContext.Output);
 | 
			
		||||
            __tagHelperExecutionContext = __tagHelperScopeManager.End();
 | 
			
		||||
            EndContext();
 | 
			
		||||
            BeginContext(646, 11, true);
 | 
			
		||||
            WriteLiteral("\r\n</html>\r\n");
 | 
			
		||||
            EndContext();
 | 
			
		||||
        }
 | 
			
		||||
        #pragma warning restore 1998
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.IViewComponentHelper Component { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<dynamic> Html { get; private set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#pragma warning restore 1591
 | 
			
		||||
@@ -0,0 +1,46 @@
 | 
			
		||||
#pragma checksum "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewImports.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "9e69e93380106bb986359f24304dbb7f798605da"
 | 
			
		||||
// <auto-generated/>
 | 
			
		||||
#pragma warning disable 1591
 | 
			
		||||
[assembly: global::Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute(typeof(AspNetCore.Views__ViewImports), @"mvc.1.0.view", @"/Views/_ViewImports.cshtml")]
 | 
			
		||||
[assembly:global::Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute(@"/Views/_ViewImports.cshtml", typeof(AspNetCore.Views__ViewImports))]
 | 
			
		||||
namespace AspNetCore
 | 
			
		||||
{
 | 
			
		||||
    #line hidden
 | 
			
		||||
    using System;
 | 
			
		||||
    using System.Collections.Generic;
 | 
			
		||||
    using System.Linq;
 | 
			
		||||
    using System.Threading.Tasks;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc.Rendering;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc.ViewFeatures;
 | 
			
		||||
#line 1 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewImports.cshtml"
 | 
			
		||||
using ShowTrend3;
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
#line 2 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewImports.cshtml"
 | 
			
		||||
using ShowTrend3.Models;
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
    [global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"9e69e93380106bb986359f24304dbb7f798605da", @"/Views/_ViewImports.cshtml")]
 | 
			
		||||
    public class Views__ViewImports : global::Microsoft.AspNetCore.Mvc.Razor.RazorPage<dynamic>
 | 
			
		||||
    {
 | 
			
		||||
        #pragma warning disable 1998
 | 
			
		||||
        public async override global::System.Threading.Tasks.Task ExecuteAsync()
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
        #pragma warning restore 1998
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.IViewComponentHelper Component { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<dynamic> Html { get; private set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#pragma warning restore 1591
 | 
			
		||||
@@ -0,0 +1,53 @@
 | 
			
		||||
#pragma checksum "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewStart.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "7091c65830b0329e613be026ede8a57552863778"
 | 
			
		||||
// <auto-generated/>
 | 
			
		||||
#pragma warning disable 1591
 | 
			
		||||
[assembly: global::Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute(typeof(AspNetCore.Views__ViewStart), @"mvc.1.0.view", @"/Views/_ViewStart.cshtml")]
 | 
			
		||||
[assembly:global::Microsoft.AspNetCore.Mvc.Razor.Compilation.RazorViewAttribute(@"/Views/_ViewStart.cshtml", typeof(AspNetCore.Views__ViewStart))]
 | 
			
		||||
namespace AspNetCore
 | 
			
		||||
{
 | 
			
		||||
    #line hidden
 | 
			
		||||
    using System;
 | 
			
		||||
    using System.Collections.Generic;
 | 
			
		||||
    using System.Linq;
 | 
			
		||||
    using System.Threading.Tasks;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc.Rendering;
 | 
			
		||||
    using Microsoft.AspNetCore.Mvc.ViewFeatures;
 | 
			
		||||
#line 1 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewImports.cshtml"
 | 
			
		||||
using ShowTrend3;
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
#line 2 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewImports.cshtml"
 | 
			
		||||
using ShowTrend3.Models;
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
    [global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"7091c65830b0329e613be026ede8a57552863778", @"/Views/_ViewStart.cshtml")]
 | 
			
		||||
    [global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"9e69e93380106bb986359f24304dbb7f798605da", @"/Views/_ViewImports.cshtml")]
 | 
			
		||||
    public class Views__ViewStart : global::Microsoft.AspNetCore.Mvc.Razor.RazorPage<dynamic>
 | 
			
		||||
    {
 | 
			
		||||
        #pragma warning disable 1998
 | 
			
		||||
        public async override global::System.Threading.Tasks.Task ExecuteAsync()
 | 
			
		||||
        {
 | 
			
		||||
#line 1 "D:\Projects\ShowTrend3.0\ShowTrend3\Views\_ViewStart.cshtml"
 | 
			
		||||
  
 | 
			
		||||
    Layout = "_Layout";
 | 
			
		||||
 | 
			
		||||
#line default
 | 
			
		||||
#line hidden
 | 
			
		||||
        }
 | 
			
		||||
        #pragma warning restore 1998
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.IViewComponentHelper Component { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json { get; private set; }
 | 
			
		||||
        [global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
 | 
			
		||||
        public global::Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<dynamic> Html { get; private set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#pragma warning restore 1591
 | 
			
		||||
@@ -0,0 +1,23 @@
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
// <auto-generated>
 | 
			
		||||
//     Этот код создан программой.
 | 
			
		||||
//     Исполняемая версия:4.0.30319.42000
 | 
			
		||||
//
 | 
			
		||||
//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
 | 
			
		||||
//     повторной генерации кода.
 | 
			
		||||
// </auto-generated>
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using System;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
[assembly: System.Reflection.AssemblyCompanyAttribute("ShowTrend3")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyProductAttribute("ShowTrend3")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyTitleAttribute("ShowTrend3")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
 | 
			
		||||
 | 
			
		||||
// Создано классом WriteCodeFragment MSBuild.
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
e3337b718dcef3831082c28b4786bae14c73f924
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
85b2f9b420bce56b9ef3ba8010ab03745dd935f8
 | 
			
		||||
@@ -0,0 +1,20 @@
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
// <auto-generated>
 | 
			
		||||
//     Этот код создан программой.
 | 
			
		||||
//     Исполняемая версия:4.0.30319.42000
 | 
			
		||||
//
 | 
			
		||||
//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
 | 
			
		||||
//     повторной генерации кода.
 | 
			
		||||
// </auto-generated>
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using System;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.RelatedAssemblyAttribute("ShowTrend3.Views")]
 | 
			
		||||
[assembly: Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute("2.1")]
 | 
			
		||||
[assembly: Microsoft.AspNetCore.Razor.Hosting.RazorConfigurationNameAttribute("MVC-2.1")]
 | 
			
		||||
[assembly: Microsoft.AspNetCore.Razor.Hosting.RazorExtensionAssemblyNameAttribute("MVC-2.1", "Microsoft.AspNetCore.Mvc.Razor.Extensions")]
 | 
			
		||||
 | 
			
		||||
// Создано классом WriteCodeFragment MSBuild.
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
f5524b9973687b7347b9302b0dc99fdf2be1e56d
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
5ddf91c2881b738fd45ac9c45dd731d0703478a8
 | 
			
		||||
@@ -0,0 +1,25 @@
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
// <auto-generated>
 | 
			
		||||
//     Этот код создан программой.
 | 
			
		||||
//     Исполняемая версия:4.0.30319.42000
 | 
			
		||||
//
 | 
			
		||||
//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
 | 
			
		||||
//     повторной генерации кода.
 | 
			
		||||
// </auto-generated>
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using System;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ProvideApplicationPartFactoryAttribute("Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyApplicationPartFac" +
 | 
			
		||||
    "tory, Microsoft.AspNetCore.Mvc.Razor")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyCompanyAttribute("ShowTrend3")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyProductAttribute("ShowTrend3")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyTitleAttribute("ShowTrend3.Views")]
 | 
			
		||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
 | 
			
		||||
 | 
			
		||||
// Создано классом WriteCodeFragment MSBuild.
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
e41e88dc176b2a9623402a94395f0857994dbaf9
 | 
			
		||||
@@ -0,0 +1,33 @@
 | 
			
		||||
D:\Projects\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.csprojAssemblyReference.cache
 | 
			
		||||
D:\Projects\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.csproj.CoreCompileInputs.cache
 | 
			
		||||
D:\Projects\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.RazorAssemblyInfo.cache
 | 
			
		||||
D:\Projects\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.RazorAssemblyInfo.cs
 | 
			
		||||
D:\Projects\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.AssemblyInfoInputs.cache
 | 
			
		||||
D:\Projects\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.AssemblyInfo.cs
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.csprojAssemblyReference.cache
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.csproj.CoreCompileInputs.cache
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.RazorAssemblyInfo.cache
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.RazorAssemblyInfo.cs
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.AssemblyInfoInputs.cache
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.AssemblyInfo.cs
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\bin\Debug\netcoreapp2.1\ShowTrend3.deps.json
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\bin\Debug\netcoreapp2.1\ShowTrend3.runtimeconfig.json
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\bin\Debug\netcoreapp2.1\ShowTrend3.runtimeconfig.dev.json
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\bin\Debug\netcoreapp2.1\ShowTrend3.dll
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\bin\Debug\netcoreapp2.1\ShowTrend3.pdb
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\bin\Debug\netcoreapp2.1\ShowTrend3.Views.dll
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\bin\Debug\netcoreapp2.1\ShowTrend3.Views.pdb
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.TagHelpers.input.cache
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.TagHelpers.output.cache
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.RazorCoreGenerate.cache
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\Razor\Views\Sau\analog.g.cshtml.cs
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\Razor\Views\Sau\Index.g.cshtml.cs
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\Razor\Views\Shared\_Layout.g.cshtml.cs
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\Razor\Views\_ViewImports.g.cshtml.cs
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\Razor\Views\_ViewStart.g.cshtml.cs
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.RazorTargetAssemblyInfo.cache
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.RazorTargetAssemblyInfo.cs
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.Views.pdb
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.dll
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.pdb
 | 
			
		||||
D:\Projects\ShowTrend3.0\ShowTrend3\obj\Debug\netcoreapp2.1\ShowTrend3.csproj.CopyComplete
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/obj/Debug/netcoreapp2.1/ShowTrend3.dll
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/obj/Debug/netcoreapp2.1/ShowTrend3.dll
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/obj/Debug/netcoreapp2.1/ShowTrend3.pdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/obj/Debug/netcoreapp2.1/ShowTrend3.pdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
  "version": 1,
 | 
			
		||||
  "dgSpecHash": "X5MGwY57SB3Grf7+BDhigX8nm6/tQbjv1JPi2cmjxnQmjUihSQXNe4g7AaK5so1bQAT09GEZRe7zmv4YrhQmYA==",
 | 
			
		||||
  "success": true
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,29 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
 | 
			
		||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
 | 
			
		||||
    <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
 | 
			
		||||
    <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
 | 
			
		||||
    <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">D:\Projects\ShowTrend3.0\ShowTrend3\obj\project.assets.json</ProjectAssetsFile>
 | 
			
		||||
    <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
 | 
			
		||||
    <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Admin\.nuget\packages\;C:\ProgramData\Xamarin\NuGet\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder</NuGetPackageFolders>
 | 
			
		||||
    <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
 | 
			
		||||
    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">4.9.3</NuGetToolVersion>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
 | 
			
		||||
    <Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.1.0\build\netcoreapp2.1\Microsoft.NETCore.App.props" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.1.0\build\netcoreapp2.1\Microsoft.NETCore.App.props')" />
 | 
			
		||||
    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.embedded\2.1.0\build\netstandard2.0\Microsoft.Extensions.FileProviders.Embedded.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.embedded\2.1.0\build\netstandard2.0\Microsoft.Extensions.FileProviders.Embedded.props')" />
 | 
			
		||||
    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\2.1.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\2.1.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.props')" />
 | 
			
		||||
    <Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore.design\2.1.0\build\netcoreapp2.0\Microsoft.EntityFrameworkCore.Design.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore.design\2.1.0\build\netcoreapp2.0\Microsoft.EntityFrameworkCore.Design.props')" />
 | 
			
		||||
    <Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.mvc.razor.extensions\2.1.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.Extensions.props" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.mvc.razor.extensions\2.1.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.Extensions.props')" />
 | 
			
		||||
    <Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.razor.design\2.1.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.props" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.razor.design\2.1.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.props')" />
 | 
			
		||||
    <Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.all\2.1.0\build\netcoreapp2.1\Microsoft.AspNetCore.All.props" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.all\2.1.0\build\netcoreapp2.1\Microsoft.AspNetCore.All.props')" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
 | 
			
		||||
    <PkgMicrosoft_EntityFrameworkCore_Tools Condition=" '$(PkgMicrosoft_EntityFrameworkCore_Tools)' == '' ">C:\Users\Admin\.nuget\packages\microsoft.entityframeworkcore.tools\2.1.0</PkgMicrosoft_EntityFrameworkCore_Tools>
 | 
			
		||||
    <PkgMicrosoft_AspNetCore_Razor_Design Condition=" '$(PkgMicrosoft_AspNetCore_Razor_Design)' == '' ">C:\Users\Admin\.nuget\packages\microsoft.aspnetcore.razor.design\2.1.0</PkgMicrosoft_AspNetCore_Razor_Design>
 | 
			
		||||
    <PkgjQuery Condition=" '$(PkgjQuery)' == '' ">C:\Users\Admin\.nuget\packages\jquery\3.0.0</PkgjQuery>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -0,0 +1,15 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
 | 
			
		||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
 | 
			
		||||
    <Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
 | 
			
		||||
    <Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.1.0\build\netcoreapp2.1\Microsoft.NETCore.App.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.1.0\build\netcoreapp2.1\Microsoft.NETCore.App.targets')" />
 | 
			
		||||
    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.embedded\2.1.0\build\netstandard2.0\Microsoft.Extensions.FileProviders.Embedded.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.embedded\2.1.0\build\netstandard2.0\Microsoft.Extensions.FileProviders.Embedded.targets')" />
 | 
			
		||||
    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\2.1.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\2.1.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.targets')" />
 | 
			
		||||
    <Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.mvc.razor.extensions\2.1.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.Extensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.mvc.razor.extensions\2.1.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.Extensions.targets')" />
 | 
			
		||||
    <Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.mvc.razor.viewcompilation\2.1.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.mvc.razor.viewcompilation\2.1.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets')" />
 | 
			
		||||
    <Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.all\2.1.0\build\netcoreapp2.1\Microsoft.AspNetCore.All.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.all\2.1.0\build\netcoreapp2.1\Microsoft.AspNetCore.All.targets')" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										14061
									
								
								ShowTrend_tmp3/ShowTrend3/obj/project.assets.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14061
									
								
								ShowTrend_tmp3/ShowTrend3/obj/project.assets.json
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190603.001
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190603.001
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190603.011
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190603.011
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190603.491
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190603.491
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190604.001
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190604.001
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190604.011
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190604.011
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190604.491
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/temp/20190604.491
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										11
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/css/MainSau.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/css/MainSau.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
body {
 | 
			
		||||
    background-color: #808080;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.container {
 | 
			
		||||
    background-color: #ffffff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
header {
 | 
			
		||||
    background-color: #dfdfdf;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/favicon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/favicon.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 36 KiB  | 
							
								
								
									
										313
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/js/AnalogChart.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										313
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/js/AnalogChart.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,313 @@
 | 
			
		||||
class AnalogChart {
 | 
			
		||||
    constructor(vdp, tstart, tend) {
 | 
			
		||||
        function ValueDateFormatter(e) {
 | 
			
		||||
            var hours = 1000 * 60 * 60;
 | 
			
		||||
            if (e.trigger === "reset") {
 | 
			
		||||
                e.chart.options.axisX.valueFormatString = "MM.DD HH";
 | 
			
		||||
            }
 | 
			
		||||
            else if (e.trigger === "zoom") {
 | 
			
		||||
                //Hour (Comparing Hours)
 | 
			
		||||
                if ((((e.axisX[0].viewportMaximum - e.axisX[0].viewportMinimum) / (hours)) < 24)) {
 | 
			
		||||
                    e.chart.options.axisX.valueFormatString = "HH:mm:ss";
 | 
			
		||||
                }
 | 
			
		||||
                //Day (Comparing Days)
 | 
			
		||||
                else if (((e.axisX.viewportMaximum - e.axisX.viewportMinimum) / (hours)) < 48) {
 | 
			
		||||
                    e.chart.options.axisX.valueFormatString = "HH:mm";
 | 
			
		||||
                }
 | 
			
		||||
                //Year (Comparing Years)
 | 
			
		||||
                else if (((e.axisX[0].viewportMaximum - e.axisX[0].viewportMinimum) / (hours * 24)) < 2) {
 | 
			
		||||
                    e.chart.options.axisX.valueFormatString = "MM.DD HH";
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                    e.chart.options.axisX.valueFormatString = "MM.DD";
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        this._vdp = vdp;
 | 
			
		||||
        this._tstart = tstart;
 | 
			
		||||
        this._tend = tend;
 | 
			
		||||
        this._chart_global = $("#AnalogChart_Global");
 | 
			
		||||
        this._chart_checkbox = $("#AnalogChart_Checkbox");
 | 
			
		||||
        this._chart_label = $("#AnalogChart_label");
 | 
			
		||||
        this._chart_buttonUpdate = $("#AnalogChart_Update");
 | 
			
		||||
        var self = this;
 | 
			
		||||
        this._chart_buttonUpdate.unbind("click");
 | 
			
		||||
        this._chart_buttonUpdate.click(function () {
 | 
			
		||||
            self.Update();
 | 
			
		||||
        });
 | 
			
		||||
        this._chart_conteiner = $("#AnalogChart");
 | 
			
		||||
        this._data = [];
 | 
			
		||||
        this._axisYList = [
 | 
			
		||||
            {
 | 
			
		||||
                labelFontSize: 12, labelAngle: -90,
 | 
			
		||||
                margin: 1, tickLength: 3, tickThickness: 1, lineThickness: 1, gridThickness: 0.1,
 | 
			
		||||
                suffix: "кА", logarithmic: false
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                labelFontSize: 12, labelAngle: -90,
 | 
			
		||||
                margin: 1, tickLength: 3, tickThickness: 1, lineThickness: 1, gridThickness: 0.1,
 | 
			
		||||
                suffix: "кПа", logarithmic: false
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                labelFontSize: 12, labelAngle: -90,
 | 
			
		||||
                margin: 1, tickLength: 3, tickThickness: 1, lineThickness: 1, gridThickness: 0.1,
 | 
			
		||||
                suffix: "А", logarithmic: false
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                labelFontSize: 12, labelAngle: -90,
 | 
			
		||||
                margin: 1, tickLength: 3, tickThickness: 1, lineThickness: 1, gridThickness: 0.1,
 | 
			
		||||
                suffix: "В", logarithmic: false
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                labelFontSize: 12, labelAngle: -90,
 | 
			
		||||
                margin: 1, tickLength: 3, tickThickness: 1, lineThickness: 1, gridThickness: 0.1,
 | 
			
		||||
                suffix: "гр.С", logarithmic: false
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                labelFontSize: 12, labelAngle: -90,
 | 
			
		||||
                margin: 1, tickLength: 3, tickThickness: 1, lineThickness: 1, gridThickness: 0.1,
 | 
			
		||||
                suffix: "гр", logarithmic: false
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                labelFontSize: 12, labelAngle: -90,
 | 
			
		||||
                margin: 1, tickLength: 3, tickThickness: 1, lineThickness: 1, gridThickness: 0.1,
 | 
			
		||||
                suffix: "мм", logarithmic: false
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                labelFontSize: 12, labelAngle: -90,
 | 
			
		||||
                margin: 1, tickLength: 3, tickThickness: 1, lineThickness: 1, gridThickness: 0.1,
 | 
			
		||||
                suffix: "мкм.рт.с", logarithmic: true
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                labelFontSize: 12, labelAngle: -90,
 | 
			
		||||
                margin: 1, tickLength: 3, tickThickness: 1, lineThickness: 1, gridThickness: 0.1,
 | 
			
		||||
                suffix: "м^3/ч", logarithmic: false
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                labelFontSize: 12, labelAngle: -80,
 | 
			
		||||
                margin: 1, tickLength: 3, tickThickness: 1, lineThickness: 1, gridThickness: 0.1,
 | 
			
		||||
                suffix: "кгс/см^2", logarithmic: false
 | 
			
		||||
            }
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        this._chart = new CanvasJS.Chart("AnalogChart", {
 | 
			
		||||
            toolTip: {
 | 
			
		||||
                fontSize: 12,
 | 
			
		||||
                shared: true,
 | 
			
		||||
                contentFormatter: function (e) {
 | 
			
		||||
                    var str = "";
 | 
			
		||||
                    if (e.entries.length < 1)
 | 
			
		||||
                        return str;
 | 
			
		||||
                    var lastdate = e.entries[0].dataPoint.x;
 | 
			
		||||
                    var data = e.chart._dataInRenderedOrder;
 | 
			
		||||
                    for (var i = 0; i < data.length; i++) {
 | 
			
		||||
                        var y = null;
 | 
			
		||||
 | 
			
		||||
                        for (var j = 0; j < data[i].dataPoints.length; j++) {
 | 
			
		||||
                            var t = data[i].dataPoints[j].x - lastdate;
 | 
			
		||||
                            if (t <= 0)
 | 
			
		||||
                                y = data[i].dataPoints[j].y;
 | 
			
		||||
                            else
 | 
			
		||||
                                break;
 | 
			
		||||
                            t = data[i].dataPoints[(data[i].dataPoints.length - 1) - j].x - lastdate;
 | 
			
		||||
                            if (t <= 0) {
 | 
			
		||||
                                y = data[i].dataPoints[(data[i].dataPoints.length - 1) - j].y;
 | 
			
		||||
                                break;
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        var temp =
 | 
			
		||||
                            data[i].name + ': <strong style="color:' +
 | 
			
		||||
                            data[i].color + ';">' +
 | 
			
		||||
                            y + ' </strong>' + data[i].axisY.suffix + "<br/>";
 | 
			
		||||
                        str = str.concat(temp);
 | 
			
		||||
                    }
 | 
			
		||||
                    return (str);
 | 
			
		||||
                }
 | 
			
		||||
            },
 | 
			
		||||
            animationEnabled: true,
 | 
			
		||||
            animationDuration: 1000,
 | 
			
		||||
            exportFileName: "Analog Signals",
 | 
			
		||||
            exportEnabled: true,
 | 
			
		||||
            zoomEnabled: true,
 | 
			
		||||
            theme: "light1",
 | 
			
		||||
            backgroundColor: "#FFFFFF",
 | 
			
		||||
            colorSet: "colorSet1",
 | 
			
		||||
            culture: "ru",
 | 
			
		||||
            title: {},
 | 
			
		||||
            legend: {},
 | 
			
		||||
 | 
			
		||||
            rangeChanging: ValueDateFormatter,
 | 
			
		||||
            axisX: {
 | 
			
		||||
                labelFontSize: 12,
 | 
			
		||||
                margin: 1,
 | 
			
		||||
                tickLength: 3,
 | 
			
		||||
                tickThickness: 1,
 | 
			
		||||
                lineThickness: 1,
 | 
			
		||||
                gridThickness: 0.3,
 | 
			
		||||
                valueFormatString: "MM.DD HH"
 | 
			
		||||
            },
 | 
			
		||||
            axisY: [
 | 
			
		||||
                {
 | 
			
		||||
                    labelFontSize: 12, labelAngle: -90,
 | 
			
		||||
                    margin: 1, tickLength: 3, tickThickness: 1, lineThickness: 1, gridThickness: 0.1,
 | 
			
		||||
                    suffix: "", logarithmic: false
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            data: []
 | 
			
		||||
        });
 | 
			
		||||
        var self = this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    LoadData() {
 | 
			
		||||
        this.Clear();
 | 
			
		||||
        $("#AnalogChart_Load_Element").show();
 | 
			
		||||
        var self = this;
 | 
			
		||||
 | 
			
		||||
        $.ajax({
 | 
			
		||||
            type: "POST",
 | 
			
		||||
            url: 'http://' + document.URL.split("/")[2] + '/api/listanalog',
 | 
			
		||||
            contentType: "application/json; charset=utf-8",
 | 
			
		||||
            dataType: "json",
 | 
			
		||||
            data: JSON.stringify({
 | 
			
		||||
                "vdp": self._vdp
 | 
			
		||||
            }),
 | 
			
		||||
            success: function (date) {
 | 
			
		||||
                self.AddList(date);
 | 
			
		||||
                self.Update();
 | 
			
		||||
                self.Show();
 | 
			
		||||
            },
 | 
			
		||||
            complete: function () {
 | 
			
		||||
                $("#AnalogChart_Load_Element").hide();
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    AddList(d) {
 | 
			
		||||
        if (d == undefined || d.length <= 0)
 | 
			
		||||
            return;
 | 
			
		||||
        for (var i = 0; i < d.length; i++) {
 | 
			
		||||
            var data = {
 | 
			
		||||
                type: "line",
 | 
			
		||||
                markerType: "none",
 | 
			
		||||
                name: d[i].sn == undefined ? "" : d[i].sn,
 | 
			
		||||
                suffix: d[i].s,
 | 
			
		||||
                axisYIndex: 0,
 | 
			
		||||
            }
 | 
			
		||||
            this._data.push(data);
 | 
			
		||||
 | 
			
		||||
            var vischk = d[i].v ? 'checked' : '';
 | 
			
		||||
            this._chart_checkbox.append('<label class="form-check-label">' +
 | 
			
		||||
                '<input type = "checkbox" class= "form-check-input"' + vischk + '>' +
 | 
			
		||||
                d[i].fn + '</label><br />');
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Update() {
 | 
			
		||||
        this._chart_buttonUpdate.attr('disabled', true);
 | 
			
		||||
        while (this._chart.options.axisY.length > 1)
 | 
			
		||||
            this._chart.options.axisY.pop();
 | 
			
		||||
        while (this._chart.options.data.length > 0)
 | 
			
		||||
            this._chart.options.data.pop();
 | 
			
		||||
        var chkList = this._chart_checkbox.find('input');
 | 
			
		||||
        var sendmass = [];
 | 
			
		||||
        for (var i = 0; i < chkList.length; i++) {
 | 
			
		||||
            if (chkList[i].checked)
 | 
			
		||||
                sendmass.push(i);
 | 
			
		||||
        }
 | 
			
		||||
        var self = this;
 | 
			
		||||
        $.ajax({
 | 
			
		||||
            type: "POST",
 | 
			
		||||
            url: 'http://' + document.URL.split("/")[2] + '/api/analog',
 | 
			
		||||
            contentType: "application/json; charset=utf-8",
 | 
			
		||||
            dataType: "json",
 | 
			
		||||
            data: JSON.stringify({
 | 
			
		||||
                "vdp": self._vdp,
 | 
			
		||||
                "timeStart": self._tstart,
 | 
			
		||||
                "timeEnd": self._tend,
 | 
			
		||||
                "signals": sendmass
 | 
			
		||||
            }),
 | 
			
		||||
            success: function (date) {
 | 
			
		||||
                for (var i = 0; i < date.length; i++) {
 | 
			
		||||
                    date[i] = self.Hunpack(date[i]);
 | 
			
		||||
                }
 | 
			
		||||
                var caret = 0;
 | 
			
		||||
                var chkList = self._chart_checkbox.find('input');
 | 
			
		||||
                for (var i = 0; i < chkList.length; i++) {
 | 
			
		||||
                    if (!chkList[i].checked)
 | 
			
		||||
                        continue;
 | 
			
		||||
 | 
			
		||||
                    var d = self._data[i];
 | 
			
		||||
                    d.dataPoints = [];
 | 
			
		||||
                    for (var j = 0; j < date[caret].length; j++)
 | 
			
		||||
                        d.dataPoints.push({
 | 
			
		||||
                            x: new Date(date[caret][j].x),
 | 
			
		||||
                            y: date[caret][j].y
 | 
			
		||||
                        });
 | 
			
		||||
                    caret++;
 | 
			
		||||
 | 
			
		||||
                    var idx = -1;
 | 
			
		||||
                    for (var j = 0; j < self._chart.options.axisY.length; j++)
 | 
			
		||||
                        if (self._chart.options.axisY[j].suffix == d.suffix)
 | 
			
		||||
                            idx = j;
 | 
			
		||||
                    if (idx != -1) {
 | 
			
		||||
                        d.axisYIndex = idx;
 | 
			
		||||
                        self._chart.options.data.push(d);
 | 
			
		||||
                        continue;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    for (var j = 0; j < self._axisYList.length; j++) {
 | 
			
		||||
                        if (self._axisYList[j].suffix == d.suffix)
 | 
			
		||||
                            idx = j;
 | 
			
		||||
                    }
 | 
			
		||||
                    if (idx != -1) {
 | 
			
		||||
                        self._chart.options.axisY.push(self._axisYList[idx]);
 | 
			
		||||
                        d.axisYIndex = self._chart.options.axisY.length - 1;
 | 
			
		||||
                        self._chart.options.data.push(d);
 | 
			
		||||
                        continue;
 | 
			
		||||
                    }
 | 
			
		||||
                    d.axisYIndex = 0;
 | 
			
		||||
                    self._chart.options.data.push(d);
 | 
			
		||||
                }
 | 
			
		||||
                self._chart.render();
 | 
			
		||||
            },
 | 
			
		||||
            complete: function () {
 | 
			
		||||
                self._chart_buttonUpdate.removeAttr('disabled');
 | 
			
		||||
                //$("#AnalogChart_Load_Element").hide();
 | 
			
		||||
            }
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Show() {
 | 
			
		||||
        //this.Update();
 | 
			
		||||
        this._chart_global.removeAttr('hidden');
 | 
			
		||||
        this._chart_label.removeAttr('hidden');
 | 
			
		||||
        this._chart.render();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Clear() {
 | 
			
		||||
        this._data = [];
 | 
			
		||||
        this._chart_global.attr('hidden', true);
 | 
			
		||||
        this._chart_label.attr('hidden', true);
 | 
			
		||||
        this._chart_checkbox.empty();
 | 
			
		||||
        this._chart.options.data = [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Hunpack(hlist) {
 | 
			
		||||
        for (var
 | 
			
		||||
            length = hlist.length,
 | 
			
		||||
            klength = hlist[0],
 | 
			
		||||
            result = Array(((length - klength - 1) / klength) || 0),
 | 
			
		||||
            i = 1 + klength,
 | 
			
		||||
            j = 0,
 | 
			
		||||
            ki, o;
 | 
			
		||||
            i < length;
 | 
			
		||||
        ) {
 | 
			
		||||
            for (
 | 
			
		||||
                result[j++] = (o = {}), ki = 0;
 | 
			
		||||
                ki < klength;
 | 
			
		||||
                o[hlist[++ki]] = hlist[i++]
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										272
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/js/Pasport.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										272
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/js/Pasport.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,272 @@
 | 
			
		||||
class Pasport {
 | 
			
		||||
    constructor() {
 | 
			
		||||
        //html Elements
 | 
			
		||||
        this._ajax;
 | 
			
		||||
        this._pasp_lable = $('#Pasport_Lable');
 | 
			
		||||
        this._pasp_date = $('#Pasport_Date');
 | 
			
		||||
        this._pasp_info = $('#Pasport_Info');
 | 
			
		||||
        this._pasp_button = $('#Pasport_button_LoadAll');
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //private Elements
 | 
			
		||||
        this._server_dir = "";
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
        //public Elements
 | 
			
		||||
        this.have_date = false;
 | 
			
		||||
        this.have_pasport = false;
 | 
			
		||||
        this.time_start = "";
 | 
			
		||||
        this.time_end = "";
 | 
			
		||||
        this.num_vdp = -1;
 | 
			
		||||
        this.num_plav = "";
 | 
			
		||||
        this.splav = "";
 | 
			
		||||
        this.is = "";
 | 
			
		||||
        this.pereplav = -1;
 | 
			
		||||
        this.naznachenie = "";
 | 
			
		||||
        this.kategory = "";
 | 
			
		||||
        this.zakaz = "";
 | 
			
		||||
        this.ves_slit = -1;
 | 
			
		||||
        this.kompl =  -1;
 | 
			
		||||
        this.diam_krist = -1;
 | 
			
		||||
        this.diam_electr = -1;
 | 
			
		||||
        this.num_kontract = "";
 | 
			
		||||
        this.ukazanie = "";
 | 
			
		||||
        this.kod_npl = "";
 | 
			
		||||
        this.rm = "";
 | 
			
		||||
        this.notd = -1;
 | 
			
		||||
        this.tin = "";
 | 
			
		||||
        this.dzap = "";
 | 
			
		||||
        this.dlog = -1;
 | 
			
		||||
        this.last = -1;
 | 
			
		||||
        this.dlper = -1;
 | 
			
		||||
        this.izl = -1;
 | 
			
		||||
        this.robm = -1;
 | 
			
		||||
        this.rizol = 6;
 | 
			
		||||
        this.pos = -1;
 | 
			
		||||
        this.pril = 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Download(dir) {
 | 
			
		||||
        if (dir == this._server_dir)
 | 
			
		||||
            return;
 | 
			
		||||
        var self = this;
 | 
			
		||||
        this._server_dir = dir;
 | 
			
		||||
        this.num_vdp = this._ParseDirToNumVDP(dir);
 | 
			
		||||
 | 
			
		||||
        $.ajax({
 | 
			
		||||
            type: "POST",
 | 
			
		||||
            url: 'http://' + document.URL.split("/")[2] + '/api/pasport',
 | 
			
		||||
            contentType: "application/json; charset=utf-8",
 | 
			
		||||
            dataType: "json",
 | 
			
		||||
 | 
			
		||||
            data: JSON.stringify({ "pasport": this._server_dir }),
 | 
			
		||||
 | 
			
		||||
            beforeSend: function (jqXHR, settings) {
 | 
			
		||||
                self._pasp_button.attr('hidden', true);
 | 
			
		||||
            },
 | 
			
		||||
            success: function (date) {
 | 
			
		||||
                self.have_date = date.have_date;
 | 
			
		||||
                self.have_pasport = date.have_pasport;
 | 
			
		||||
                self.time_start = date.time_start;
 | 
			
		||||
                self.time_end = date.time_end;
 | 
			
		||||
                if (!self.have_pasport)
 | 
			
		||||
                    return;
 | 
			
		||||
                self.num_plav = date.num_plav;
 | 
			
		||||
                self.splav = date.splav;
 | 
			
		||||
                self.is = date.is;
 | 
			
		||||
                self.pereplav = date.pereplav;
 | 
			
		||||
                self.naznachenie = date.naznachenie;
 | 
			
		||||
                self.kategory = date.kategory;
 | 
			
		||||
                self.zakaz = date.zakaz;
 | 
			
		||||
                self.ves_slit = date.ves_slit;
 | 
			
		||||
                self.kompl = date.kompl;
 | 
			
		||||
                self.diam_krist = date.diam_krist;
 | 
			
		||||
                self.diam_electr = date.diam_electr;
 | 
			
		||||
                self.num_kontract = date.num_kontract;
 | 
			
		||||
                self.ukazanie = date.ukazanie;
 | 
			
		||||
                self.kod_npl = date.kod_npl;
 | 
			
		||||
                self.rm = date.rm;
 | 
			
		||||
                self.notd = date.notd;
 | 
			
		||||
                self.tin = date.tin;
 | 
			
		||||
                self.dzap = date.dzap;
 | 
			
		||||
                self.dlog = date.dlog;
 | 
			
		||||
                self.last = date.last;
 | 
			
		||||
                self.dlper = date.dlper;
 | 
			
		||||
                self.izl = date.izl;
 | 
			
		||||
                self.robm = date.robm;
 | 
			
		||||
                self.rizol = date.rizol;
 | 
			
		||||
                self.pos = date.pos;
 | 
			
		||||
                self.pril = date.pril;
 | 
			
		||||
                self.Show();
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _ParseDirToNumVDP(dir) {
 | 
			
		||||
        var t = dir.split('.');
 | 
			
		||||
        if (t[t.length - 1] != "gz")
 | 
			
		||||
            return parseInt(t[t.length - 1]);
 | 
			
		||||
        t = t[0].split('-');
 | 
			
		||||
        if (t.length == 2)
 | 
			
		||||
            return parseInt(t[t.length - 1]);
 | 
			
		||||
        if (t.length == 4)
 | 
			
		||||
            return parseInt(t[2]);
 | 
			
		||||
        return -1;
 | 
			
		||||
    }
 | 
			
		||||
      
 | 
			
		||||
    Show() {
 | 
			
		||||
        this._pasp_lable.removeAttr('hidden');
 | 
			
		||||
        if (this.have_date == undefined || !this.have_date) {
 | 
			
		||||
            this._pasp_lable.find('h5').html('Ошибка получения паспорта');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        if (this.have_pasport == undefined || !this.have_pasport)
 | 
			
		||||
            this._pasp_lable.find('h5').html('Паспорта нет');
 | 
			
		||||
        else
 | 
			
		||||
            this._pasp_lable.find('h5').html('Плавка №' + this.num_plav);
 | 
			
		||||
 | 
			
		||||
        this._pasp_date.removeAttr('hidden');
 | 
			
		||||
        this._pasp_date.find('span').eq(0).html(this.time_start);
 | 
			
		||||
        this._pasp_date.find('span').eq(1).html(this.time_end);
 | 
			
		||||
 | 
			
		||||
        this._pasp_button.removeAttr('hidden');
 | 
			
		||||
        if (this.have_pasport == undefined || !this.have_pasport)
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        this._pasp_info.removeAttr('hidden');
 | 
			
		||||
        var temp = this._pasp_info.find('span');
 | 
			
		||||
        temp.empty();
 | 
			
		||||
        if (this.is != '-')
 | 
			
		||||
            temp.eq(0).html(this.splav + ' ' + this.is);
 | 
			
		||||
        else
 | 
			
		||||
            temp.eq(0).html(this.splav);
 | 
			
		||||
        temp.eq(1).html(this.pereplav);
 | 
			
		||||
        temp.eq(2).html(this.naznachenie);
 | 
			
		||||
        temp.eq(3).html(this.kategory);
 | 
			
		||||
        temp.eq(4).html(this.zakaz);
 | 
			
		||||
        temp.eq(5).html(this.ves_slit);
 | 
			
		||||
        temp.eq(6).html(this.kompl);
 | 
			
		||||
        temp.eq(7).html(this.diam_krist);
 | 
			
		||||
        temp.eq(8).html(this.diam_electr);
 | 
			
		||||
        temp.eq(9).html(this.num_kontract);
 | 
			
		||||
        temp.eq(10).html(this.ukazanie);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Clear() {
 | 
			
		||||
        this._pasp_lable.find('h5').empty();
 | 
			
		||||
        this._pasp_lable.attr('hidden', true);
 | 
			
		||||
 | 
			
		||||
        this._pasp_date.find('span').empty();
 | 
			
		||||
        this._pasp_date.attr('hidden', true);
 | 
			
		||||
 | 
			
		||||
        this._pasp_info.find('span').empty();
 | 
			
		||||
        this._pasp_info.attr('hidden', true);
 | 
			
		||||
 | 
			
		||||
        this._pasp_button.attr('hidden', true);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class TechCycle {
 | 
			
		||||
    constructor() {
 | 
			
		||||
        this._sort = false;
 | 
			
		||||
        this._modal_load = $('#Modal_load');
 | 
			
		||||
        this._tech_lable = $('#Tech_Cycle_Lable');
 | 
			
		||||
        this._tech_table = $('#Tech_Cycle_Table');
 | 
			
		||||
        this._tech_sort = $('#Tech_Cycle_Sort');
 | 
			
		||||
        this._info_arr = [];
 | 
			
		||||
 | 
			
		||||
        var self = this;
 | 
			
		||||
        this._tech_sort.click(function () {
 | 
			
		||||
            if (self._sort == undefined)
 | 
			
		||||
                self._sort == true;
 | 
			
		||||
            self._sort = !self._sort;
 | 
			
		||||
            self._tech_table.find('tbody').empty();
 | 
			
		||||
            self.Show();
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
    Download(pasp) {
 | 
			
		||||
        var self = this;
 | 
			
		||||
        this._info_arr = [];
 | 
			
		||||
        this.Clear();
 | 
			
		||||
        $.ajax({
 | 
			
		||||
            type: "POST",
 | 
			
		||||
            url: 'http://' + document.URL.split("/")[2] + '/api/techcycle',
 | 
			
		||||
            contentType: "application/json; charset=utf-8",
 | 
			
		||||
            dataType: "json",
 | 
			
		||||
 | 
			
		||||
            data: JSON.stringify({
 | 
			
		||||
                "vdp": pasp.num_vdp,
 | 
			
		||||
                "timeStart": pasp.time_start,
 | 
			
		||||
                "timeEnd": pasp.time_end
 | 
			
		||||
            }),
 | 
			
		||||
            success: function (date) {
 | 
			
		||||
                if (date == undefined || date.length == 0)
 | 
			
		||||
                    return;
 | 
			
		||||
                self._info_arr = date;
 | 
			
		||||
                self.Show();
 | 
			
		||||
            }
 | 
			
		||||
            //complete: function () { }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    DownloadFormTime(vdp, tStart, tEnd) {
 | 
			
		||||
        var self = this;
 | 
			
		||||
        this._modal_load.modal('show');
 | 
			
		||||
        this._info_arr = [];
 | 
			
		||||
        this.Clear();
 | 
			
		||||
        $.ajax({
 | 
			
		||||
            type: "POST",
 | 
			
		||||
            url: 'http://' + document.URL.split("/")[2] + '/api/techcycle',
 | 
			
		||||
            contentType: "application/json; charset=utf-8",
 | 
			
		||||
            dataType: "json",
 | 
			
		||||
 | 
			
		||||
            data: JSON.stringify({
 | 
			
		||||
                "vdp": vdp,
 | 
			
		||||
                "timeStart": tStart,
 | 
			
		||||
                "timeEnd": tEnd
 | 
			
		||||
            }),
 | 
			
		||||
            success: function (date) {
 | 
			
		||||
                if (date == undefined || date.length == 0)
 | 
			
		||||
                    return;
 | 
			
		||||
                self._info_arr = date;
 | 
			
		||||
                self.Show();
 | 
			
		||||
            }
 | 
			
		||||
            //complete: function () { }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Show() {
 | 
			
		||||
        if (this._info_arr == undefined || this._info_arr.length == 0)
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        this._tech_sort.removeClass('fa-sort-amount-down fa-sort-amount-up');
 | 
			
		||||
        this._tech_sort.addClass(this._sort ? 'fa-sort-amount-up' : 'fa-sort-amount-down');
 | 
			
		||||
 | 
			
		||||
        for (var i = 0; i < this._info_arr.length; i++) {
 | 
			
		||||
            var j = this._sort ? this._info_arr.length - 1 - i : i;
 | 
			
		||||
            this._tech_table.find('tbody').append(
 | 
			
		||||
                '<tr style="background-color : rgba(' + this._info_arr[j].color + ', 0.15);">' +
 | 
			
		||||
                '<td>' + (j + 1) +
 | 
			
		||||
                '</td>' +
 | 
			
		||||
                '<td>' + this._info_arr[j].date +
 | 
			
		||||
                '</td>' +
 | 
			
		||||
                '<td>' + this._info_arr[j].value +
 | 
			
		||||
                '</td>' +
 | 
			
		||||
                '</tr>');
 | 
			
		||||
        }
 | 
			
		||||
        this._tech_table.find('td').addClass('p-1');
 | 
			
		||||
        this._tech_lable.removeAttr('hidden');
 | 
			
		||||
        this._tech_table.removeAttr('hidden');
 | 
			
		||||
    }
 | 
			
		||||
    Clear() {
 | 
			
		||||
        this._tech_lable.attr('hidden', true);
 | 
			
		||||
 | 
			
		||||
        this._tech_table.find('tbody').empty();
 | 
			
		||||
        this._tech_table.attr('hidden', true);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										154
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/js/main.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/js/main.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,154 @@
 | 
			
		||||
var pasport_vdp = new Pasport();
 | 
			
		||||
var tech_cycle = new TechCycle();
 | 
			
		||||
 | 
			
		||||
var search1_date = $('#Search1_date');
 | 
			
		||||
var search1_list_pasport = $('#Search1_list_pasport');
 | 
			
		||||
var search1_button = $('#Search1_button');
 | 
			
		||||
var button_load_all = $('#Pasport_button_LoadAll');
 | 
			
		||||
 | 
			
		||||
var search2_select_vdp = $('#Search2_select_vdp');
 | 
			
		||||
var search2_date_start = $('#Search2_date_start');
 | 
			
		||||
var search2_date_end = $('#Search2_date_end');
 | 
			
		||||
var search2_time_start = $('#Search2_time_start');
 | 
			
		||||
var search2_time_end = $('#Search2_time_end');
 | 
			
		||||
var search2_button_load = $('#Search2_button_load');
 | 
			
		||||
 | 
			
		||||
var analog_Chart = new AnalogChart();
 | 
			
		||||
$(document).ready(function () {
 | 
			
		||||
    var d = new Date();
 | 
			
		||||
    var t = d.getFullYear() + "-" +
 | 
			
		||||
        ("0" + (d.getMonth() + 1)).slice(-2) + "-" +
 | 
			
		||||
        ("0" + d.getDate()).slice(-2);
 | 
			
		||||
    search1_date.val(t);
 | 
			
		||||
    search2_date_end.val(t);
 | 
			
		||||
 | 
			
		||||
    t = ("0" + d.getHours()).slice(-2) + ":" +
 | 
			
		||||
        ("0" + d.getMinutes()).slice(-2) + ":" +
 | 
			
		||||
        ("0" + d.getSeconds()).slice(-2);
 | 
			
		||||
    search2_time_end.val(t);
 | 
			
		||||
    search2_time_start.val(t);
 | 
			
		||||
 | 
			
		||||
    d.setDate(d.getDate() - 3);
 | 
			
		||||
    t = d.getFullYear() + "-" +
 | 
			
		||||
        ("0" + (d.getMonth() + 1)).slice(-2) + "-" +
 | 
			
		||||
        ("0" + d.getDate()).slice(-2);
 | 
			
		||||
    search2_date_start.val(t);
 | 
			
		||||
 | 
			
		||||
    for (var i = 1; i < 51; i++)
 | 
			
		||||
        search2_select_vdp.append('<option>' + i + '</option>');
 | 
			
		||||
    for (var i = 91; i < 95; i++)
 | 
			
		||||
        search2_select_vdp.append('<option>' + i + '</option>');
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
search1_date.change(function () {
 | 
			
		||||
    search1_list_pasport.empty();
 | 
			
		||||
    pasport_vdp.Clear();
 | 
			
		||||
    tech_cycle.Clear();
 | 
			
		||||
    analog_Chart.Clear();
 | 
			
		||||
    var value = search1_date.val();
 | 
			
		||||
    value = value.split('-');
 | 
			
		||||
    value = new Date(value[0], value[1] - 1, value[2]);
 | 
			
		||||
    if (value < new Date(2001, 01, 21))
 | 
			
		||||
        search1_date.val("2001-02-21");
 | 
			
		||||
 | 
			
		||||
    if (value > new Date()) {
 | 
			
		||||
        var date = new Date();
 | 
			
		||||
        date =
 | 
			
		||||
            date.getFullYear() + "-" +
 | 
			
		||||
            ("0" + (date.getMonth() + 1)).slice(-2) + "-" +
 | 
			
		||||
            ("0" + date.getDate()).slice(-2);
 | 
			
		||||
        search1_date.val(date);
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
search1_button.click(function () {
 | 
			
		||||
    if (!search1_date.val())
 | 
			
		||||
        return;
 | 
			
		||||
    $.ajax({
 | 
			
		||||
        type: "POST",
 | 
			
		||||
        url: 'http://' + document.URL.split("/")[2] + '/api/dirbrowse',
 | 
			
		||||
        contentType: "application/json; charset=utf-8",
 | 
			
		||||
        dataType: "json",
 | 
			
		||||
        data: JSON.stringify({ "date": search1_date.val() }),
 | 
			
		||||
        failure: function (errMsg) {
 | 
			
		||||
            alert(errMsg);
 | 
			
		||||
        },
 | 
			
		||||
        beforeSend: function (jqXHR, settings) {
 | 
			
		||||
            pasport_vdp.Clear();
 | 
			
		||||
            search1_list_pasport.empty();
 | 
			
		||||
        },
 | 
			
		||||
        success: function (date) {
 | 
			
		||||
            if (date.length == 0)
 | 
			
		||||
                search1_list_pasport.append('<option>Плавок нет</option>');
 | 
			
		||||
            for (var i = 0; i < date.length; i++)
 | 
			
		||||
                search1_list_pasport.append('<option value="' + date[i].Dir + '">' + date[i].Name + '</option>');
 | 
			
		||||
            search1_list_pasport.change();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
search1_list_pasport.change(function () {
 | 
			
		||||
    var chk = search1_list_pasport.find(":selected").val();
 | 
			
		||||
    if (chk == undefined || chk == "" || chk == "Плавок нет")
 | 
			
		||||
        return;
 | 
			
		||||
    if (chk != pasport_vdp._server_dir) {
 | 
			
		||||
        pasport_vdp.Download(chk);
 | 
			
		||||
    }
 | 
			
		||||
    tech_cycle.Clear();
 | 
			
		||||
    analog_Chart.Clear();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
button_load_all.click(function () {
 | 
			
		||||
    tech_cycle.Download(pasport_vdp);
 | 
			
		||||
    analog_Chart = new AnalogChart(pasport_vdp.num_vdp, pasport_vdp.time_start, pasport_vdp.time_end);
 | 
			
		||||
    analog_Chart.LoadData();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
search2_button_load.click(function () {
 | 
			
		||||
    if (search2_date_start.val() == undefined ||
 | 
			
		||||
        search2_date_end.val() == undefined ||
 | 
			
		||||
        search2_time_start.val() == undefined ||
 | 
			
		||||
        search2_time_end.val() == undefined) {
 | 
			
		||||
        alert("Не верно указаны даты.");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    pasport_vdp.Clear();
 | 
			
		||||
    tech_cycle.Clear();
 | 
			
		||||
    analog_Chart.Clear();
 | 
			
		||||
    var d = search2_date_start.val().split('-');
 | 
			
		||||
    var t = search2_time_start.val().split(':');
 | 
			
		||||
    var r_start = new Date(d[0], d[1], d[2], t[0], t[1], t[2]);
 | 
			
		||||
 | 
			
		||||
    d = search2_date_end.val().split('-');
 | 
			
		||||
    t = search2_time_end.val().split(':');
 | 
			
		||||
    var r_end = new Date(d[0], d[1], d[2], t[0], t[1], t[2]);
 | 
			
		||||
    var delta = r_end - r_start;
 | 
			
		||||
    delta = Math.round(delta / 1000 / 60 / 60 / 24);
 | 
			
		||||
    if (delta < 0) {
 | 
			
		||||
        alert("Не верно указаны даты.");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    if (delta > 3) {
 | 
			
		||||
        alert("Временной интервал больше 4 дней.");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    var ds = search2_date_start.val().split('-');
 | 
			
		||||
    var ts = search2_time_start.val().split(':');
 | 
			
		||||
    var de = search2_date_end.val().split('-');
 | 
			
		||||
    var te = search2_time_end.val().split(':');
 | 
			
		||||
    tech_cycle.DownloadFormTime(
 | 
			
		||||
        search2_select_vdp.find(":selected").val(),
 | 
			
		||||
        ds[2] + '.' + ds[1] + '.' + ds[0] + ' ' + ts[0] + ':' + ts[1] + ':' + ts[2],
 | 
			
		||||
        de[2] + '.' + de[1] + '.' + de[0] + ' ' + te[0] + ':' + te[1] + ':' + te[2]);
 | 
			
		||||
    analog_Chart = new AnalogChart(search2_select_vdp.find(":selected").val(),
 | 
			
		||||
        ds[2] + '.' + ds[1] + '.' + ds[0] + ' ' + ts[0] + ':' + ts[1] + ':' + ts[2],
 | 
			
		||||
        de[2] + '.' + de[1] + '.' + de[0] + ' ' + te[0] + ':' + te[1] + ':' + te[2]);
 | 
			
		||||
    analog_Chart.LoadData();
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
$("#test_button").click(function () {
 | 
			
		||||
    analog_Chart.LoadData();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1912
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap-grid.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1912
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap-grid.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										7
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap-grid.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap-grid.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										330
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap-reboot.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										330
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap-reboot.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,330 @@
 | 
			
		||||
/*!
 | 
			
		||||
 * Bootstrap Reboot v4.1.1 (https://getbootstrap.com/)
 | 
			
		||||
 * Copyright 2011-2018 The Bootstrap Authors
 | 
			
		||||
 * Copyright 2011-2018 Twitter, Inc.
 | 
			
		||||
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 | 
			
		||||
 * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
 | 
			
		||||
 */
 | 
			
		||||
*,
 | 
			
		||||
*::before,
 | 
			
		||||
*::after {
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
html {
 | 
			
		||||
  font-family: sans-serif;
 | 
			
		||||
  line-height: 1.15;
 | 
			
		||||
  -webkit-text-size-adjust: 100%;
 | 
			
		||||
  -ms-text-size-adjust: 100%;
 | 
			
		||||
  -ms-overflow-style: scrollbar;
 | 
			
		||||
  -webkit-tap-highlight-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@-ms-viewport {
 | 
			
		||||
  width: device-width;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
 | 
			
		||||
  display: block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
 | 
			
		||||
  font-size: 1rem;
 | 
			
		||||
  font-weight: 400;
 | 
			
		||||
  line-height: 1.5;
 | 
			
		||||
  color: #212529;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[tabindex="-1"]:focus {
 | 
			
		||||
  outline: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
hr {
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  height: 0;
 | 
			
		||||
  overflow: visible;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h1, h2, h3, h4, h5, h6 {
 | 
			
		||||
  margin-top: 0;
 | 
			
		||||
  margin-bottom: 0.5rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
p {
 | 
			
		||||
  margin-top: 0;
 | 
			
		||||
  margin-bottom: 1rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
abbr[title],
 | 
			
		||||
abbr[data-original-title] {
 | 
			
		||||
  text-decoration: underline;
 | 
			
		||||
  -webkit-text-decoration: underline dotted;
 | 
			
		||||
  text-decoration: underline dotted;
 | 
			
		||||
  cursor: help;
 | 
			
		||||
  border-bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
address {
 | 
			
		||||
  margin-bottom: 1rem;
 | 
			
		||||
  font-style: normal;
 | 
			
		||||
  line-height: inherit;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ol,
 | 
			
		||||
ul,
 | 
			
		||||
dl {
 | 
			
		||||
  margin-top: 0;
 | 
			
		||||
  margin-bottom: 1rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ol ol,
 | 
			
		||||
ul ul,
 | 
			
		||||
ol ul,
 | 
			
		||||
ul ol {
 | 
			
		||||
  margin-bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dt {
 | 
			
		||||
  font-weight: 700;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dd {
 | 
			
		||||
  margin-bottom: .5rem;
 | 
			
		||||
  margin-left: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
blockquote {
 | 
			
		||||
  margin: 0 0 1rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dfn {
 | 
			
		||||
  font-style: italic;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
b,
 | 
			
		||||
strong {
 | 
			
		||||
  font-weight: bolder;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
small {
 | 
			
		||||
  font-size: 80%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub,
 | 
			
		||||
sup {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  font-size: 75%;
 | 
			
		||||
  line-height: 0;
 | 
			
		||||
  vertical-align: baseline;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub {
 | 
			
		||||
  bottom: -.25em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sup {
 | 
			
		||||
  top: -.5em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a {
 | 
			
		||||
  color: #007bff;
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
  -webkit-text-decoration-skip: objects;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a:hover {
 | 
			
		||||
  color: #0056b3;
 | 
			
		||||
  text-decoration: underline;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a:not([href]):not([tabindex]) {
 | 
			
		||||
  color: inherit;
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
 | 
			
		||||
  color: inherit;
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a:not([href]):not([tabindex]):focus {
 | 
			
		||||
  outline: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pre,
 | 
			
		||||
code,
 | 
			
		||||
kbd,
 | 
			
		||||
samp {
 | 
			
		||||
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
 | 
			
		||||
  font-size: 1em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pre {
 | 
			
		||||
  margin-top: 0;
 | 
			
		||||
  margin-bottom: 1rem;
 | 
			
		||||
  overflow: auto;
 | 
			
		||||
  -ms-overflow-style: scrollbar;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
figure {
 | 
			
		||||
  margin: 0 0 1rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
img {
 | 
			
		||||
  vertical-align: middle;
 | 
			
		||||
  border-style: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
svg:not(:root) {
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table {
 | 
			
		||||
  border-collapse: collapse;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
caption {
 | 
			
		||||
  padding-top: 0.75rem;
 | 
			
		||||
  padding-bottom: 0.75rem;
 | 
			
		||||
  color: #6c757d;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  caption-side: bottom;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
th {
 | 
			
		||||
  text-align: inherit;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
label {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  margin-bottom: 0.5rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
button {
 | 
			
		||||
  border-radius: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
button:focus {
 | 
			
		||||
  outline: 1px dotted;
 | 
			
		||||
  outline: 5px auto -webkit-focus-ring-color;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
input,
 | 
			
		||||
button,
 | 
			
		||||
select,
 | 
			
		||||
optgroup,
 | 
			
		||||
textarea {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  font-family: inherit;
 | 
			
		||||
  font-size: inherit;
 | 
			
		||||
  line-height: inherit;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
button,
 | 
			
		||||
input {
 | 
			
		||||
  overflow: visible;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
button,
 | 
			
		||||
select {
 | 
			
		||||
  text-transform: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
button,
 | 
			
		||||
html [type="button"],
 | 
			
		||||
[type="reset"],
 | 
			
		||||
[type="submit"] {
 | 
			
		||||
  -webkit-appearance: button;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
button::-moz-focus-inner,
 | 
			
		||||
[type="button"]::-moz-focus-inner,
 | 
			
		||||
[type="reset"]::-moz-focus-inner,
 | 
			
		||||
[type="submit"]::-moz-focus-inner {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  border-style: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
input[type="radio"],
 | 
			
		||||
input[type="checkbox"] {
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
input[type="date"],
 | 
			
		||||
input[type="time"],
 | 
			
		||||
input[type="datetime-local"],
 | 
			
		||||
input[type="month"] {
 | 
			
		||||
  -webkit-appearance: listbox;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
textarea {
 | 
			
		||||
  overflow: auto;
 | 
			
		||||
  resize: vertical;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fieldset {
 | 
			
		||||
  min-width: 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  border: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
legend {
 | 
			
		||||
  display: block;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  max-width: 100%;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  margin-bottom: .5rem;
 | 
			
		||||
  font-size: 1.5rem;
 | 
			
		||||
  line-height: inherit;
 | 
			
		||||
  color: inherit;
 | 
			
		||||
  white-space: normal;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
progress {
 | 
			
		||||
  vertical-align: baseline;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[type="number"]::-webkit-inner-spin-button,
 | 
			
		||||
[type="number"]::-webkit-outer-spin-button {
 | 
			
		||||
  height: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[type="search"] {
 | 
			
		||||
  outline-offset: -2px;
 | 
			
		||||
  -webkit-appearance: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[type="search"]::-webkit-search-cancel-button,
 | 
			
		||||
[type="search"]::-webkit-search-decoration {
 | 
			
		||||
  -webkit-appearance: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
::-webkit-file-upload-button {
 | 
			
		||||
  font: inherit;
 | 
			
		||||
  -webkit-appearance: button;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
output {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
summary {
 | 
			
		||||
  display: list-item;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[hidden] {
 | 
			
		||||
  display: none !important;
 | 
			
		||||
}
 | 
			
		||||
/*# sourceMappingURL=bootstrap-reboot.css.map */
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										8
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap-reboot.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap-reboot.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
/*!
 | 
			
		||||
 * Bootstrap Reboot v4.1.1 (https://getbootstrap.com/)
 | 
			
		||||
 * Copyright 2011-2018 The Bootstrap Authors
 | 
			
		||||
 * Copyright 2011-2018 Twitter, Inc.
 | 
			
		||||
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 | 
			
		||||
 * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
 | 
			
		||||
 */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
 | 
			
		||||
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										8981
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8981
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										7
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/css/bootstrap.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										6444
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/js/bootstrap.bundle.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6444
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/js/bootstrap.bundle.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										7
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/js/bootstrap.bundle.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/js/bootstrap.bundle.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										3927
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/js/bootstrap.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3927
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/js/bootstrap.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										7
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/js/bootstrap.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Bootstrap/js/bootstrap.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
/*!
 | 
			
		||||
 * Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
 | 
			
		||||
 * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 | 
			
		||||
 */
 | 
			
		||||
@font-face {
 | 
			
		||||
  font-family: 'Font Awesome 5 Brands';
 | 
			
		||||
  font-style: normal;
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
  src: url("../webfonts/fa-brands-400.eot");
 | 
			
		||||
  src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
 | 
			
		||||
 | 
			
		||||
.fab {
 | 
			
		||||
  font-family: 'Font Awesome 5 Brands'; }
 | 
			
		||||
							
								
								
									
										5
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Font-Awesome/css/fa-brands.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								ShowTrend_tmp3/ShowTrend3/wwwroot/lib/Font-Awesome/css/fa-brands.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
/*!
 | 
			
		||||
 * Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
 | 
			
		||||
 * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 | 
			
		||||
 */
 | 
			
		||||
@font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user