コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: you839215622/Viper
        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);
                }
            });
        }
コード例 #4
0
        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"));
            }
        }