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