private void ParseMonitorData(IProtocolPackage <string> package) { var ksDevice = ((KsDustClientSource)package.ClientSource).Device; if (!package.Command.DeliverParams.Contains("Store")) { return; } var monitorData = new KsDustMonitorData { DeviceId = Guid.Parse(package.ClientSource.ClientIdentity), ProjectId = ksDevice.ProjectId, EnterpriseId = ksDevice.Project.EnterpriseId, DistrictId = ksDevice.Project.DistrictId, ParticulateMatter = double.Parse(package.GetDataValueString(Properties.Resource.TSP)), Pm25 = double.Parse(package.GetDataValueString(Properties.Resource.PM25)), Pm100 = double.Parse(package.GetDataValueString(Properties.Resource.PM100)), Noise = double.Parse(package.GetDataValueString(Properties.Resource.NOISE)), Templeture = double.Parse(package.GetDataValueString(Properties.Resource.TEMPERATURE)), Humidity = double.Parse(package.GetDataValueString(Properties.Resource.HUMIDITY)), WindSpeed = double.Parse(package.GetDataValueString(Properties.Resource.WINDSPEED)), WindDirection = (int)double.Parse(package.GetDataValueString(Properties.Resource.WINDDIRECTION)), MonitorType = ParseMonitorType(package["CmdByte"].ComponentValue), UpdateTime = DateTime.Now }; var ctx = new KsDustDbContext(); ctx.KsDustMonitorDatas.Add(monitorData); ctx.SaveChanges(); ctx.Dispose(); }