/// <summary> ///服务启动后将服务Api文档写入注册中心 /// ///增加自己的服务的时候只用复制下面的代码就可以不用做修改 /// </summary> public static void ApiDoc() { List <AnnoData> routings = new List <AnnoData>(); foreach (var item in EngineData.Routing.Routing.Router) { if (item.Value.RoutMethod.Name == "get_ActionResult") { continue; } var parameters = item.Value.RoutMethod.GetParameters().ToList().Select(it => { var parameter = new ParametersValue { Name = it.Name, Position = it.Position, ParameterType = it.ParameterType.FullName }; var pa = it.GetCustomAttributes <AnnoInfoAttribute>().ToList(); if (pa.Any()) { parameter.Desc = pa.First().Desc; } return(parameter); }).ToList(); string methodDesc = String.Empty; var mAnnoInfoAttributes = item.Value.RoutMethod.GetCustomAttributes <AnnoInfoAttribute>().ToList(); if (mAnnoInfoAttributes.Count > 0) { methodDesc = mAnnoInfoAttributes.First().Desc; } routings.Add(new AnnoData() { App = Anno.Const.SettingService.AppName, Id = $"{Anno.Const.SettingService.AppName}:{item.Key}", Value = Newtonsoft.Json.JsonConvert.SerializeObject(new DataValue { Desc = methodDesc, Name = item.Value.RoutMethod.Name, Parameters = parameters }) }); } Dictionary <string, string> input = new Dictionary <string, string>(); input[StorageCommand.COMMAND] = StorageCommand.APIDOCCOMMAND; input.Add(CONST.Opt, CONST.DeleteByApp); input.Add(CONST.App, Anno.Const.SettingService.AppName); var del = Newtonsoft.Json.JsonConvert.DeserializeObject <AnnoDataResult>(StorageEngine.Invoke(input)); if (del.Status == false) { Log.Log.Error(del); } input.Clear(); input[StorageCommand.COMMAND] = StorageCommand.APIDOCCOMMAND; input.Add(CONST.Opt, CONST.UpsertBatch); input.Add(CONST.Data, Newtonsoft.Json.JsonConvert.SerializeObject(routings)); var rlt = Newtonsoft.Json.JsonConvert.DeserializeObject <AnnoDataResult>(StorageEngine.Invoke(input)); if (rlt.Status == false) { Log.Log.Error(rlt); } }
public object Clone() { WorkTypeClass copywork = new WorkTypeClass(); copywork.Article = Article; copywork.category = category; copywork.delegateName = delegateName; copywork.Formula = Formula; copywork.id = id; copywork.IsFixedPrice = IsFixedPrice; copywork.Quantity = Quantity; double[] copyparams = new double[ParametersValue.Length]; ParametersValue.CopyTo(copyparams, 0); copywork.ParametersValue = copyparams; List <string> copyparamss = new List <string>(); foreach (string s in parametrs) { copyparamss.Add(s); } copywork.parametrs = copyparamss; return(copywork); }
static void Main(string[] args) { if (args.Contains("-help")) { Log.ConsoleWriteLine(@" 启动参数: -p 6659 设置启动端口 -xt 200 设置服务最大线程数 -t 20000 设置超时时间(单位毫秒) -w 1 设置权重 -h 192.168.0.2 设置服务在注册中心的地址 -tr false 设置调用链追踪是否启用" ); return; } Bootstrap.StartUp(args, () => { //Anno.Const.SettingService.TraceOnOff = true; var autofac = IocLoader.GetAutoFacContainerBuilder(); autofac.RegisterType(typeof(RpcConnectorImpl)).As(typeof(IRpcConnector)).SingleInstance(); }, () => { //startUp CallBack List <AnnoData> routings = new List <AnnoData>(); foreach (var item in Anno.EngineData.Routing.Routing.Router) { if (item.Value.RoutMethod.Name == "get_ActionResult") { continue; } var parameters = item.Value.RoutMethod.GetParameters().ToList().Select(it => { var parameter = new ParametersValue { Name = it.Name, Position = it.Position, ParameterType = it.ParameterType.FullName }; var pa = it.GetCustomAttributes <AnnoInfoAttribute>().ToList(); if (pa.Any()) { parameter.Desc = pa.First().Desc; } return(parameter); }).ToList(); string methodDesc = String.Empty; var mAnnoInfoAttributes = item.Value.RoutMethod.GetCustomAttributes <AnnoInfoAttribute>().ToList(); if (mAnnoInfoAttributes.Count > 0) { methodDesc = mAnnoInfoAttributes.First().Desc; } routings.Add(new AnnoData() { App = Anno.Const.SettingService.AppName, Id = $"{Anno.Const.SettingService.AppName}:{item.Key}", Value = Newtonsoft.Json.JsonConvert.SerializeObject(new DataValue { Desc = methodDesc, Name = item.Value.RoutMethod.Name, Parameters = parameters }) }); } Dictionary <string, string> input = new Dictionary <string, string>(); input.Add(CONST.Opt, CONST.DeleteByApp); input.Add(CONST.App, Anno.Const.SettingService.AppName); var del = Newtonsoft.Json.JsonConvert.DeserializeObject <AnnoDataResult>(StorageEngine.Invoke(input)); if (del.Status == false) { Anno.Log.Log.Error(del); } input.Clear(); input.Add(CONST.Opt, CONST.UpsertBatch); input.Add(CONST.Data, Newtonsoft.Json.JsonConvert.SerializeObject(routings)); var rlt = Newtonsoft.Json.JsonConvert.DeserializeObject <AnnoDataResult>(StorageEngine.Invoke(input)); if (rlt.Status == false) { Anno.Log.Log.Error(rlt); } }); }
public async Task <ActionResult> Get(int id) { try { var SensorDetails = await _dataContext.SensorData.Include("Parameter_Master").Where(w => w.Device_Id == id).ToListAsync(); if (SensorDetails != null) { var DeviceDetails = await _dataContext.Device_info .Where(w => w.Id == id) .Select(s => new DeviceWiseData { Area = s.Area, Country = s.Country, Device_Id = s.Id, Device_Name = s.Device_Name, lastupdatedon = s.lastupdatedon, Latitude = s.Latitude, Longitude = s.Longitude, State = s.State, Status = s.Status, ParameterNames = new List <ParametersValue>(), Entries = new List <EntryTime>() }).FirstOrDefaultAsync(); var names = SensorDetails.Select(s => s.Parameter_Master.Param_Name).Distinct().ToList(); foreach (var name in names) { var pUnit = SensorDetails.Where(n => n.Parameter_Master.Param_Name == name).Select(s => s.Parameter_Master.Unit).FirstOrDefault(); var Param_values = new ParametersValue { Name = name, Unit = pUnit }; DeviceDetails.ParameterNames.Add(Param_values); } //SensorDetails.Select(s => new ParametersValue //{ // Name = s.Parameter_Master.Param_Name, // Unit = s.Parameter_Master.Unit //} // ).Distinct().ToList(), var dates = SensorDetails.Select(s => s.DataEntryTime).Distinct().ToList(); foreach (var date in dates) { var entry = new EntryTime { datetime = date, Params = new List <ParamsForDevice>() }; entry.Params = SensorDetails .Where(w => w.DataEntryTime == date) .Select(s => new ParamsForDevice { ParameterName = s.Parameter_Master.Param_Name, Value = s.Input_Value, color = "Green" }).ToList(); DeviceDetails.Entries.Add(entry); } return(Ok(DeviceDetails)); } else { return(NotFound("No details found for this device")); } } catch (Exception ex) { _logger.LogError($"Error while getting the data{ex.Message}"); return(BadRequest("No data available for the device")); } }