Save last
This commit is contained in:
		
							
								
								
									
										324
									
								
								ApiServer/Controllers/DateController.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										324
									
								
								ApiServer/Controllers/DateController.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,324 @@
 | 
			
		||||
using Microsoft.AspNetCore.Http;
 | 
			
		||||
using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
using Newtonsoft.Json.Linq;
 | 
			
		||||
using Newtonsoft;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Newtonsoft.Json;
 | 
			
		||||
using NLog;
 | 
			
		||||
using DataClient.Struct;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using ApiServer.ApiStruct;
 | 
			
		||||
 | 
			
		||||
namespace ApiServer.Controllers
 | 
			
		||||
{
 | 
			
		||||
	[ApiController, Route("[controller]")]
 | 
			
		||||
	public class DateController : ControllerBase
 | 
			
		||||
	{
 | 
			
		||||
		private Logger log = LogManager.GetCurrentClassLogger();
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getanalog")]
 | 
			
		||||
		public DateGetAnalogClient GetAnalog([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<DateGetAnalogApi>(
 | 
			
		||||
					value.ToString());
 | 
			
		||||
				log.Info("Ask analog: vdp-" +
 | 
			
		||||
					getResult.Vdp.ToString() + " index-" +
 | 
			
		||||
					getResult.Index.ToString() + " " +
 | 
			
		||||
					getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
 | 
			
		||||
					getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
 | 
			
		||||
 | 
			
		||||
				var list_analogs = new Dictionary<int, List<Structures.Analog>>();
 | 
			
		||||
				var flagDate = new DateTime(
 | 
			
		||||
					getResult.Start.Year,
 | 
			
		||||
					getResult.Start.Month,
 | 
			
		||||
					getResult.Start.Day,
 | 
			
		||||
					0, 0, 0
 | 
			
		||||
					);
 | 
			
		||||
				var sub_res = new List<Structures.Analog>();
 | 
			
		||||
				while (flagDate <= getResult.End)
 | 
			
		||||
				{
 | 
			
		||||
					var analogs = WorkWithFiles.GetAnalogs(flagDate, getResult.Vdp);
 | 
			
		||||
					foreach (var analog_arr in analogs)
 | 
			
		||||
					{
 | 
			
		||||
						if (analog_arr.Index != getResult.Index)
 | 
			
		||||
							continue;
 | 
			
		||||
						Structures.Analog first_analog = null;
 | 
			
		||||
						for (var i = 0; i < analog_arr.Analogs.Length; i++)
 | 
			
		||||
						{
 | 
			
		||||
							if (analog_arr.Analogs[i].start < getResult.Start)
 | 
			
		||||
							{
 | 
			
		||||
								first_analog = analog_arr.Analogs[i];
 | 
			
		||||
								first_analog.start = getResult.Start;
 | 
			
		||||
								continue;
 | 
			
		||||
							}
 | 
			
		||||
							if (analog_arr.Analogs[i].start > getResult.End)
 | 
			
		||||
								continue;
 | 
			
		||||
							if (sub_res.Count == 0 && first_analog != null)
 | 
			
		||||
								sub_res.Add(first_analog);
 | 
			
		||||
							sub_res.Add(analog_arr.Analogs[i]);
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					flagDate = flagDate.AddDays(1);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				return new DateGetAnalogClient()
 | 
			
		||||
				{
 | 
			
		||||
					Analog = sub_res.ToArray()
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				throw;
 | 
			
		||||
				//return new DateGetAnalogClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getanalogs")]
 | 
			
		||||
		public DateGetAnalogsClient GetAnalogs([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<DateGetAnalogsApi>(
 | 
			
		||||
					value.ToString());
 | 
			
		||||
				log.Info("Ask analog: vdp-" +
 | 
			
		||||
					getResult.Vdp.ToString() + " index-" +
 | 
			
		||||
					getResult.Index.ToString() + " " +
 | 
			
		||||
					getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
 | 
			
		||||
					getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
 | 
			
		||||
 | 
			
		||||
				var list_analogs = new Dictionary<int, List<Structures.Analog>>();
 | 
			
		||||
				var flagDate = new DateTime(
 | 
			
		||||
					getResult.Start.Year,
 | 
			
		||||
					getResult.Start.Month,
 | 
			
		||||
					getResult.Start.Day,
 | 
			
		||||
					0, 0, 0
 | 
			
		||||
					);
 | 
			
		||||
				var sub_res = new Dictionary<int, List<Structures.Analog>>();
 | 
			
		||||
				while (flagDate <= getResult.End)
 | 
			
		||||
				{
 | 
			
		||||
					var analogs = WorkWithFiles.GetAnalogs(flagDate, getResult.Vdp);
 | 
			
		||||
					foreach (var analog_arr in analogs)
 | 
			
		||||
					{
 | 
			
		||||
						if (!getResult.Index.Contains(analog_arr.Index))
 | 
			
		||||
							continue;
 | 
			
		||||
						if (!sub_res.ContainsKey(analog_arr.Index))
 | 
			
		||||
							sub_res.Add(analog_arr.Index, new List<Structures.Analog>());
 | 
			
		||||
						Structures.Analog first_analog = null;
 | 
			
		||||
						for (var i = 0; i < analog_arr.Analogs.Length; i++)
 | 
			
		||||
						{
 | 
			
		||||
							if (analog_arr.Analogs[i].start < getResult.Start)
 | 
			
		||||
							{
 | 
			
		||||
								first_analog = analog_arr.Analogs[i];
 | 
			
		||||
								first_analog.start = getResult.Start;
 | 
			
		||||
								continue;
 | 
			
		||||
							}
 | 
			
		||||
							if (analog_arr.Analogs[i].start > getResult.End)
 | 
			
		||||
								continue;
 | 
			
		||||
							if (sub_res[analog_arr.Index].Count == 0 && first_analog != null)
 | 
			
		||||
								sub_res[analog_arr.Index].Add(first_analog);
 | 
			
		||||
							sub_res[analog_arr.Index].Add(analog_arr.Analogs[i]);
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					flagDate = flagDate.AddDays(1);
 | 
			
		||||
				}
 | 
			
		||||
				var result = new List<Structures.AnalogArr>();
 | 
			
		||||
				foreach (var d in sub_res)
 | 
			
		||||
					result.Add(new Structures.AnalogArr() { 
 | 
			
		||||
						Index = d.Key,
 | 
			
		||||
						Analogs = d.Value.ToArray()
 | 
			
		||||
					});
 | 
			
		||||
				return new DateGetAnalogsClient()
 | 
			
		||||
				{
 | 
			
		||||
					Analogs = result.ToArray()
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				return new DateGetAnalogsClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("gettechcycle")]
 | 
			
		||||
		public DateGetTechCycleClient GetTechCycle([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<DateGetTechCycleApi>(
 | 
			
		||||
					value.ToString());
 | 
			
		||||
				log.Info("Ask tech cycle: " +
 | 
			
		||||
					getResult.Vdp.ToString() + " " +
 | 
			
		||||
					getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
 | 
			
		||||
					getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
 | 
			
		||||
				var list_tech_cycles = new List<Structures.TechCycle>();
 | 
			
		||||
				var flagDate = new DateTime(
 | 
			
		||||
					getResult.Start.Year,
 | 
			
		||||
					getResult.Start.Month,
 | 
			
		||||
					getResult.Start.Day,
 | 
			
		||||
					0, 0, 0
 | 
			
		||||
					);
 | 
			
		||||
				while (flagDate <= getResult.End)
 | 
			
		||||
				{
 | 
			
		||||
					var lines = WorkWithFiles.GetFile(
 | 
			
		||||
						flagDate.Year.ToString("D4") +
 | 
			
		||||
						flagDate.Month.ToString("D2") +
 | 
			
		||||
						flagDate.Day.ToString("D2") +
 | 
			
		||||
						"." +
 | 
			
		||||
						getResult.Vdp.ToString("D2") +
 | 
			
		||||
						"3"
 | 
			
		||||
						);
 | 
			
		||||
					Structures.TechCycle first_tech_cycle = null;
 | 
			
		||||
					for (var i = 0; i < lines.Length; i++)
 | 
			
		||||
					{
 | 
			
		||||
						var tc = new Structures.TechCycle(flagDate, lines[i]);
 | 
			
		||||
						if (tc.start < getResult.Start)
 | 
			
		||||
						{
 | 
			
		||||
							first_tech_cycle = tc;
 | 
			
		||||
							continue;
 | 
			
		||||
						}
 | 
			
		||||
						if (tc.start > getResult.End)
 | 
			
		||||
							continue;
 | 
			
		||||
						if (list_tech_cycles.Count == 0 && first_tech_cycle != null)
 | 
			
		||||
						{
 | 
			
		||||
							first_tech_cycle.start = getResult.Start;
 | 
			
		||||
							list_tech_cycles.Add(first_tech_cycle);
 | 
			
		||||
						}
 | 
			
		||||
						list_tech_cycles.Add(tc);
 | 
			
		||||
					}
 | 
			
		||||
					flagDate = flagDate.AddDays(1);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
				return new DateGetTechCycleClient()
 | 
			
		||||
				{
 | 
			
		||||
					TechCycle = list_tech_cycles.ToArray(),
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				return new DateGetTechCycleClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getprotect")]
 | 
			
		||||
		public DateGetProtectClient GetProtect([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<DateGetProtectApi>(
 | 
			
		||||
					value.ToString());
 | 
			
		||||
				log.Info("Ask protects: " +
 | 
			
		||||
					getResult.Vdp.ToString() + " " +
 | 
			
		||||
					getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
 | 
			
		||||
					getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
 | 
			
		||||
 | 
			
		||||
				var list_protects = new List<Structures.Protect>();
 | 
			
		||||
				var flagDate = new DateTime(
 | 
			
		||||
					getResult.Start.Year,
 | 
			
		||||
					getResult.Start.Month,
 | 
			
		||||
					getResult.Start.Day,
 | 
			
		||||
					0, 0, 0
 | 
			
		||||
					);
 | 
			
		||||
				while (flagDate <= getResult.End)
 | 
			
		||||
				{
 | 
			
		||||
					var protects = WorkWithFiles.GetProtects(flagDate, getResult.Vdp);
 | 
			
		||||
					for (var i = 0; i < protects.Length; i++)
 | 
			
		||||
					{
 | 
			
		||||
						if (protects[i].start < getResult.Start)
 | 
			
		||||
							continue;
 | 
			
		||||
						if (protects[i].start > getResult.End)
 | 
			
		||||
							continue;
 | 
			
		||||
						list_protects.Add(protects[i]);
 | 
			
		||||
					}
 | 
			
		||||
					flagDate = flagDate.AddDays(1);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
				return new DateGetProtectClient()
 | 
			
		||||
				{
 | 
			
		||||
					Protect = list_protects.ToArray()
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				return new DateGetProtectClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getdiscret")]
 | 
			
		||||
		public DateGetDiscretClient GetDiscret([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<DateGetDiscretApi>(
 | 
			
		||||
					value.ToString());
 | 
			
		||||
				log.Info("Ask discrets: " +
 | 
			
		||||
					getResult.Vdp.ToString() + " " +
 | 
			
		||||
					getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
 | 
			
		||||
					getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
 | 
			
		||||
 | 
			
		||||
				var list_discrets = new List<Structures.Discret>();
 | 
			
		||||
				var flagDate = new DateTime(
 | 
			
		||||
					getResult.Start.Year,
 | 
			
		||||
					getResult.Start.Month,
 | 
			
		||||
					getResult.Start.Day,
 | 
			
		||||
					0, 0, 0
 | 
			
		||||
					);
 | 
			
		||||
				while (flagDate <= getResult.End)
 | 
			
		||||
				{
 | 
			
		||||
					var discrets = WorkWithFiles.GetDiscrets(flagDate, getResult.Vdp);
 | 
			
		||||
					var first_discrets = new Dictionary<int, Structures.Discret>();
 | 
			
		||||
					for (var i = 0; i < discrets.Length; i++)
 | 
			
		||||
					{
 | 
			
		||||
						if (discrets[i].start < getResult.Start)
 | 
			
		||||
						{
 | 
			
		||||
							if (first_discrets.ContainsKey(discrets[i].Index))
 | 
			
		||||
								first_discrets[discrets[i].Index] = discrets[i];
 | 
			
		||||
							else
 | 
			
		||||
								first_discrets.Add(discrets[i].Index, discrets[i]);
 | 
			
		||||
							first_discrets[discrets[i].Index].start = getResult.Start;
 | 
			
		||||
							continue;
 | 
			
		||||
						}
 | 
			
		||||
						if (discrets[i].start > getResult.End)
 | 
			
		||||
							continue;
 | 
			
		||||
						var last_id = list_discrets.FindLastIndex(x => x.Index == discrets[i].Index);
 | 
			
		||||
						if (first_discrets.ContainsKey(discrets[i].Index) &&
 | 
			
		||||
							last_id == -1 &&
 | 
			
		||||
							discrets[i].start != getResult.Start)
 | 
			
		||||
						{
 | 
			
		||||
							list_discrets.Add(first_discrets[discrets[i].Index]);
 | 
			
		||||
							first_discrets.Remove(discrets[i].Index);
 | 
			
		||||
						}
 | 
			
		||||
						if (last_id != -1 &&
 | 
			
		||||
							list_discrets[last_id].State == discrets[i].State)
 | 
			
		||||
							continue;
 | 
			
		||||
						list_discrets.Add(discrets[i]);
 | 
			
		||||
					}
 | 
			
		||||
					flagDate = flagDate.AddDays(1);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				return new DateGetDiscretClient()
 | 
			
		||||
				{
 | 
			
		||||
					Discret = list_discrets.ToArray()
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				return new DateGetDiscretClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										138
									
								
								ApiServer/Controllers/DiscretController.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								ApiServer/Controllers/DiscretController.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,138 @@
 | 
			
		||||
using Microsoft.AspNetCore.Http;
 | 
			
		||||
using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
using Newtonsoft.Json.Linq;
 | 
			
		||||
using Newtonsoft;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Newtonsoft.Json;
 | 
			
		||||
using NLog;
 | 
			
		||||
using DataClient.Struct;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using ApiServer.ApiStruct;
 | 
			
		||||
 | 
			
		||||
namespace ApiServer.Controllers
 | 
			
		||||
{
 | 
			
		||||
	[ApiController, Route("[controller]")]
 | 
			
		||||
	public class DiscretController : ControllerBase
 | 
			
		||||
	{
 | 
			
		||||
		private Logger log = LogManager.GetCurrentClassLogger();
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getdiscrets")]
 | 
			
		||||
		public DiscretGetDscretsClient GetDiscrets([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<DiscretGetiscretsApi>(
 | 
			
		||||
					value.ToString());
 | 
			
		||||
				log.Info("Ask discrets: " +
 | 
			
		||||
					getResult.Vdp.ToString() + " " +
 | 
			
		||||
					getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " "+
 | 
			
		||||
					getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
 | 
			
		||||
 | 
			
		||||
				var list_discrets = new List<Structures.Discret>();
 | 
			
		||||
				var flagDate = new DateTime(
 | 
			
		||||
					getResult.Start.Year,
 | 
			
		||||
					getResult.Start.Month,
 | 
			
		||||
					getResult.Start.Day,
 | 
			
		||||
					0,0,0
 | 
			
		||||
					);
 | 
			
		||||
				while (flagDate <= getResult.End)
 | 
			
		||||
        {
 | 
			
		||||
					var discrets = WorkWithFiles.GetDiscrets(flagDate, getResult.Vdp);
 | 
			
		||||
					var first_discrets = new Dictionary<int, Structures.Discret>();
 | 
			
		||||
					for (var i = 0; i < discrets.Length; i++)
 | 
			
		||||
					{
 | 
			
		||||
						if (discrets[i].start < getResult.Start)
 | 
			
		||||
						{
 | 
			
		||||
							if (first_discrets.ContainsKey(discrets[i].Index))
 | 
			
		||||
								first_discrets[discrets[i].Index] = discrets[i];
 | 
			
		||||
							else
 | 
			
		||||
								first_discrets.Add(discrets[i].Index, discrets[i]);
 | 
			
		||||
							first_discrets[discrets[i].Index].start = getResult.Start;
 | 
			
		||||
							continue;
 | 
			
		||||
						}
 | 
			
		||||
						if (discrets[i].start > getResult.End)
 | 
			
		||||
							continue;
 | 
			
		||||
						var last_id = list_discrets.FindLastIndex(x => x.Index == discrets[i].Index);
 | 
			
		||||
						if (first_discrets.ContainsKey(discrets[i].Index) &&
 | 
			
		||||
							last_id == -1 &&
 | 
			
		||||
							discrets[i].start != getResult.Start)
 | 
			
		||||
						{
 | 
			
		||||
							list_discrets.Add(first_discrets[discrets[i].Index]);
 | 
			
		||||
							first_discrets.Remove(discrets[i].Index);
 | 
			
		||||
						}
 | 
			
		||||
						if (last_id != -1 &&
 | 
			
		||||
							list_discrets[last_id].State == discrets[i].State)
 | 
			
		||||
							continue;
 | 
			
		||||
						list_discrets.Add(discrets[i]);
 | 
			
		||||
					}
 | 
			
		||||
					flagDate = flagDate.AddDays(1);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
				return new DiscretGetDscretsClient()
 | 
			
		||||
				{
 | 
			
		||||
					StateParams = Configuration.GetStateStructArray(),
 | 
			
		||||
					DiscretParams = Configuration.GetDiscretParams(getResult.Vdp.ToString("D2")),
 | 
			
		||||
					Discrets = list_discrets.ToArray()
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				return new DiscretGetDscretsClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getdiscretsmatrix")]
 | 
			
		||||
		public DiscretGetDscretsMatrixClient GetDiscretsMatrix([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<DiscretGetiscretsApi>(
 | 
			
		||||
					value.ToString());
 | 
			
		||||
				log.Info("Ask discrets: " +
 | 
			
		||||
					getResult.Vdp.ToString() + " " +
 | 
			
		||||
					getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
 | 
			
		||||
					getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
 | 
			
		||||
 | 
			
		||||
				var list_discrets = new List<Structures.DiscretMatrix>();
 | 
			
		||||
				var flagDate = new DateTime(
 | 
			
		||||
					getResult.Start.Year,
 | 
			
		||||
					getResult.Start.Month,
 | 
			
		||||
					getResult.Start.Day,
 | 
			
		||||
					0, 0, 0
 | 
			
		||||
					);
 | 
			
		||||
				while (flagDate <= getResult.End)
 | 
			
		||||
				{
 | 
			
		||||
					var discrets = WorkWithFiles.GetDiscretsMatrix(flagDate, getResult.Vdp);
 | 
			
		||||
					for (var i = 0; i < discrets.Length; i++)
 | 
			
		||||
					{
 | 
			
		||||
						if (discrets[i].start < getResult.Start)
 | 
			
		||||
							continue;
 | 
			
		||||
						if (discrets[i].start > getResult.End)
 | 
			
		||||
							continue;
 | 
			
		||||
						list_discrets.Add(discrets[i]);
 | 
			
		||||
					}
 | 
			
		||||
					flagDate = flagDate.AddDays(1);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				log.Info("Send discret");
 | 
			
		||||
				return new DiscretGetDscretsMatrixClient()
 | 
			
		||||
				{
 | 
			
		||||
					StateParams = Configuration.GetStateStructArray(),
 | 
			
		||||
					DiscretParams = Configuration.GetDiscretParams(getResult.Vdp.ToString("D2")),
 | 
			
		||||
					Discrets = list_discrets.ToArray()
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				return new DiscretGetDscretsMatrixClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										158
									
								
								ApiServer/Controllers/ParamsController.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								ApiServer/Controllers/ParamsController.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,158 @@
 | 
			
		||||
using Microsoft.AspNetCore.Http;
 | 
			
		||||
using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
using Newtonsoft.Json.Linq;
 | 
			
		||||
using Newtonsoft;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Newtonsoft.Json;
 | 
			
		||||
using NLog;
 | 
			
		||||
using DataClient.Struct;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using ApiServer.ApiStruct;
 | 
			
		||||
 | 
			
		||||
namespace ApiServer.Controllers
 | 
			
		||||
{
 | 
			
		||||
	[ApiController, Route("[controller]")]
 | 
			
		||||
	public class ParamsController : ControllerBase
 | 
			
		||||
	{
 | 
			
		||||
		private Logger log = LogManager.GetCurrentClassLogger();
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getanalogs")]
 | 
			
		||||
		public ParamsGetAnalogClient GetAnalogs([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<ParamsGetAnalogApi>(
 | 
			
		||||
					value.ToString());
 | 
			
		||||
				log.Info("Ask analog params for \"" + getResult.Name + "\"");
 | 
			
		||||
				return new ParamsGetAnalogClient()
 | 
			
		||||
				{
 | 
			
		||||
					Analog_params = Configuration.GetAnalogParams(getResult.Name)
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Error(e);
 | 
			
		||||
				return new ParamsGetAnalogClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getmetrics")]
 | 
			
		||||
		public ParamsGetMetricClient GetMetrics([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				log.Info("Ask metrics");
 | 
			
		||||
				return new ParamsGetMetricClient()
 | 
			
		||||
				{
 | 
			
		||||
					Metrics = Configuration.GetMetricsArray()
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Error(e);
 | 
			
		||||
				return new ParamsGetMetricClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("gettechcyclename")]
 | 
			
		||||
		public ParamsGetTechCycleNameClient GetTechCycleName([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				log.Info("Ask tech cycle name");
 | 
			
		||||
				return new ParamsGetTechCycleNameClient()
 | 
			
		||||
				{
 | 
			
		||||
					Name = Configuration.GetTechCycleNames()
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				return new ParamsGetTechCycleNameClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("gettechcyclecolor")]
 | 
			
		||||
		public ParamsGetTechCycleColorClient GetTechCycleColor([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				log.Info("Ask tech cycle color");
 | 
			
		||||
				return new ParamsGetTechCycleColorClient()
 | 
			
		||||
				{
 | 
			
		||||
					Color = Configuration.GetTechCycleColor()
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				return new ParamsGetTechCycleColorClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getstatestruct")]
 | 
			
		||||
		public ParamsGetStateStructClient GetStateStruct([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				log.Info("Ask state struct");
 | 
			
		||||
				return new ParamsGetStateStructClient()
 | 
			
		||||
				{
 | 
			
		||||
					StateStruct = Configuration.GetStateStructArray()
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				return new ParamsGetStateStructClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getprotectstate")]
 | 
			
		||||
		public ParamsGetProtectStateClient GetProtectState([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<ParamsGetProtectStateApi>(
 | 
			
		||||
					value.ToString());
 | 
			
		||||
 | 
			
		||||
				log.Info("Ask protect state for vdp: " + getResult.Name);
 | 
			
		||||
				return new ParamsGetProtectStateClient()
 | 
			
		||||
				{
 | 
			
		||||
					ProtectState = Configuration.GetProtectState(getResult.Name)
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				return new ParamsGetProtectStateClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getdiscret")]
 | 
			
		||||
		public ParamsGetDiscretClient GetDiscrets([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<ParamsGetDiscretApi>(
 | 
			
		||||
					value.ToString());
 | 
			
		||||
				log.Info("Ask discret params for \"" + getResult.Name + "\"");
 | 
			
		||||
				return new ParamsGetDiscretClient()
 | 
			
		||||
				{
 | 
			
		||||
					Discret_params = Configuration.GetDiscretParams(getResult.Name)
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Error(e);
 | 
			
		||||
				return new ParamsGetDiscretClient();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -109,17 +109,21 @@ namespace ApiServer.Controllers
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var pasportNameList = new List<string>();
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<PasportGetListApi>(value.ToString());
 | 
			
		||||
				var pasportTimeList = new List<string>();
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<PasportGetListApi>(
 | 
			
		||||
					value.ToString(),
 | 
			
		||||
					new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd" });
 | 
			
		||||
				log.Info("Ask pasport list: " + getResult.Date.ToString("yyyy-MM-dd"));
 | 
			
		||||
				var pasportDir = Path.Combine(
 | 
			
		||||
					Directory.GetCurrentDirectory(),
 | 
			
		||||
						"data",
 | 
			
		||||
						"pasport",
 | 
			
		||||
						getResult.Date.Year.ToString("D4"),
 | 
			
		||||
						getResult.Date.ToString("D2"),
 | 
			
		||||
						getResult.Date.Month.ToString("D2"),
 | 
			
		||||
						getResult.Date.Day.ToString("D2")
 | 
			
		||||
					);
 | 
			
		||||
				if (!Directory.Exists(pasportDir))
 | 
			
		||||
					return new PasportGetListClient();
 | 
			
		||||
					throw new Exception("Directory not exist: " + pasportDir);
 | 
			
		||||
				var allPasportFiles = Directory.GetFiles(pasportDir);
 | 
			
		||||
				foreach (var fullPasportName in allPasportFiles)
 | 
			
		||||
				{
 | 
			
		||||
@@ -132,10 +136,15 @@ namespace ApiServer.Controllers
 | 
			
		||||
							pasport += "-";
 | 
			
		||||
						pasport += pasportParts[i];
 | 
			
		||||
					}
 | 
			
		||||
					pasportTimeList.Add(pasportParts[0]);
 | 
			
		||||
					pasportNameList.Add(pasport);
 | 
			
		||||
				}
 | 
			
		||||
				log.Info("Send pasport list: " + pasportNameList);
 | 
			
		||||
				return new PasportGetListClient() { Name = pasportNameList.ToArray() };
 | 
			
		||||
				return new PasportGetListClient()
 | 
			
		||||
				{
 | 
			
		||||
					Name = pasportNameList.ToArray(),
 | 
			
		||||
					Time = pasportTimeList.ToArray()
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
@@ -144,6 +153,75 @@ namespace ApiServer.Controllers
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[HttpPost, Route("getpasport")]
 | 
			
		||||
		public PasportGetPasportClient GetPasport([FromBody] object value)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var getResult = JsonConvert.DeserializeObject<PasportGetPasportApi>(
 | 
			
		||||
					value.ToString(),
 | 
			
		||||
					new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd" });
 | 
			
		||||
				log.Info("Ask pasport: " + getResult.Date.ToString("yyyy-MM-dd") + " " + getResult.Name);
 | 
			
		||||
				var pasportFile = Path.Combine(
 | 
			
		||||
					Directory.GetCurrentDirectory(),
 | 
			
		||||
						"data",
 | 
			
		||||
						"pasport",
 | 
			
		||||
						getResult.Date.Year.ToString("D4"),
 | 
			
		||||
						getResult.Date.Month.ToString("D2"),
 | 
			
		||||
						getResult.Date.Day.ToString("D2"),
 | 
			
		||||
						getResult.Name
 | 
			
		||||
					);
 | 
			
		||||
				if (!System.IO.File.Exists(pasportFile))
 | 
			
		||||
					throw new Exception("File not exist: " + pasportFile);
 | 
			
		||||
				var pasport = new Pasport(System.IO.File.ReadAllBytes(pasportFile));
 | 
			
		||||
				return new PasportGetPasportClient()
 | 
			
		||||
				{
 | 
			
		||||
					HasData = pasport.HasData,
 | 
			
		||||
					NumVDP = pasport.numVDP,
 | 
			
		||||
					DStart = pasport.dStart.HasValue ? pasport.dStart.Value.ToString("yyyy.MM.dd HH:mm:ss") : "",
 | 
			
		||||
					DEnd = pasport.dEnd.HasValue ? pasport.dEnd.Value.ToString("yyyy.MM.dd HH:mm:ss") : "",
 | 
			
		||||
 | 
			
		||||
					HasPasport = pasport.hasPasport,
 | 
			
		||||
					Kod_npl = pasport.kod_npl,
 | 
			
		||||
					Nplav = pasport.nplav,
 | 
			
		||||
					Rm = pasport.rm,
 | 
			
		||||
					Splav = pasport.splav,
 | 
			
		||||
					IS = pasport.iS,
 | 
			
		||||
					Notd = pasport.notd,
 | 
			
		||||
					Vessl = pasport.vessl,
 | 
			
		||||
					Diam = pasport.diam,
 | 
			
		||||
					Prpl = pasport.prpl,
 | 
			
		||||
					Tin = pasport.tin,
 | 
			
		||||
					Dzap = pasport.dzap,
 | 
			
		||||
					Dlog = pasport.dlog,
 | 
			
		||||
					Last = pasport.last,
 | 
			
		||||
					Dlper = pasport.dlper,
 | 
			
		||||
					Nazn = pasport.nazn,
 | 
			
		||||
					Kompl = pasport.kompl,
 | 
			
		||||
					Izl = pasport.izl,
 | 
			
		||||
					Robm = pasport.robm,
 | 
			
		||||
					Rizol = pasport.rizol,
 | 
			
		||||
					Dkr = pasport.dkr,
 | 
			
		||||
					Nkon = pasport.nkon,
 | 
			
		||||
					Pos = pasport.pos,
 | 
			
		||||
					Ukaz = pasport.ukaz,
 | 
			
		||||
					Zakaz = pasport.zakaz,
 | 
			
		||||
					Kat = pasport.kat,
 | 
			
		||||
					Pril = pasport.pril,
 | 
			
		||||
					Rezerved = pasport.rezerved,
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				log.Warn(e);
 | 
			
		||||
				return new PasportGetPasportClient()
 | 
			
		||||
				{
 | 
			
		||||
					HasData = false,
 | 
			
		||||
					HasPasport = false
 | 
			
		||||
				};
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user