Exemplo n.º 1
0
        private static async Task <XResponseMessage> ProcessQueryFacilitys(QueryDataBlock cd, dynamic data)
        {
            XResponseMessage xResponseMessage = null;

            if (cd.FarmCode != null)
            {
                var farm = cd.FarmCode.Farm;

                var result = await QueryDataProcessor.ProcessGetFacilities(farm);

                if (result != null && result.Success != ErrorType.NoError)
                {
                    xResponseMessage        = result;
                    xResponseMessage.IsTrue = true;
                }

                if (result != null)
                {
                    if (!result.Message.IsNullOrWhiteSpace())
                    {
                        xResponseMessage.Message += result.Message + " ";
                    }
                    if (result.Data != null)
                    {
                        data.QueryFacilitys = result.Data;
                    }
                }
            }
            xResponseMessage.IsTrue = false;
            return(xResponseMessage);
        }
Exemplo n.º 2
0
        private static async Task <XResponseMessage> ProcessQueryFacilityType(QueryDataBlock queryDataBlock, dynamic data)
        {
            XResponseMessage xResponseMessage = null;

            if (queryDataBlock.FacilityType)
            {
                var result = await QueryDataProcessor.ProcessFacilityTypeGet();

                if (result != null && result.Success != ErrorType.NoError)
                {
                    xResponseMessage        = result;
                    xResponseMessage.IsTrue = true;
                }

                if (result != null)
                {
                    if (!result.Message.IsNullOrWhiteSpace())
                    {
                        xResponseMessage.Message += result.Message + " ";
                    }
                    if (result.Data != null)
                    {
                        data.QueryFacilityType = result.Data;
                    }
                }
            }
            xResponseMessage.IsTrue = false;
            return(xResponseMessage);
        }
Exemplo n.º 3
0
        /// <summary>
        ///     处理查询数据
        /// </summary>
        /// <param name="queryDataBlock"></param>
        public static async Task <XResponseMessage> ProcessQueryData(QueryDataBlock queryDataBlock)
        {
            if (queryDataBlock == null)
            {
                throw new ArgumentNullException("queryDataBlock");
            }

            dynamic          data             = new ExpandoObject();
            var              message          = "";
            XResponseMessage xResponseMessage = new XResponseMessage {
                Message = message, Success = ErrorType.NoContent, IsTrue = false, Data = data
            };

            //获取设施类型
            xResponseMessage = (XResponseMessage) await ProcessQueryFacilityType(queryDataBlock, data);

            if (xResponseMessage.IsTrue)
            {
                message = xResponseMessage.Message;
                return(xResponseMessage);
            }

            //获取设备类型
            xResponseMessage = (XResponseMessage) await ProcessQueryDeviceType(queryDataBlock, data);

            if (xResponseMessage.IsTrue)
            {
                message = xResponseMessage.Message;
                return(xResponseMessage);
            }

            //查询基地下所有设施
            xResponseMessage = (XResponseMessage) await ProcessQueryFacilitys(queryDataBlock, data);

            if (xResponseMessage.IsTrue)
            {
                message = xResponseMessage.Message;
                return(xResponseMessage);
            }

            //获取设施下所有设备,包含采集设备、控制设备、音视频设备
            xResponseMessage = (XResponseMessage) await ProcessQueryFacilityDevices(queryDataBlock, data);

            if (xResponseMessage.IsTrue)
            {
                message = xResponseMessage.Message;
                return(xResponseMessage);
            }

            var result2 = new XResponseMessage()
            {
                Success = ErrorType.NoError,
                Message = message,
                Data    = data,
            };

            return(result2);
        }
Exemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="md"></param>
        /// <param name="id">原始数据包ID</param>
        /// <returns></returns>
        public async Task <XResponseMessage> ProcessAsync(QueryDataBlock md)
        {
            if (md == null)
            {
                return(null);
            }
            if (md.FacilityType) //查询设施类型
            {
                try
                {
                    var result = await AhnqIotContainer.Container.Resolve <FacilityTypeProcess>().ProcessAsync();

                    return(ResultHelper.CreateMessage("查询设施类型", obj: result));
                }
                catch (AggregateException ex)
                {
                    ex.InnerExceptions.ToList().ForEach(e =>
                    {
                        LogHelper.Error("查询设施类型出错:{0}", e.Message);
                        LogHelper.Fatal(e.ToString());
                    });
                    return(ResultHelper.CreateExceptionMessage(ex, ex.Message));
                }
            }
            if (md.FarmCode != null && !md.FarmCode.Farm.IsNullOrWhiteSpace()) //查询基地下设施
            {
                try
                {
                    var result =
                        await AhnqIotContainer.Container.Resolve <QueryFacilitysProcess>().ProcessAsync(md.FarmCode.Farm);

                    return(ResultHelper.CreateMessage("查询基地下设施", obj: result));
                }
                catch (AggregateException ex)
                {
                    ex.InnerExceptions.ToList().ForEach(e =>
                    {
                        LogHelper.Error("查询设施类型出错:{0}", e.Message);
                        LogHelper.Fatal(e.ToString());
                    });
                    return(ResultHelper.CreateExceptionMessage(ex, ex.Message));
                }
            }
            if (!md.FacilityCode.IsNullOrWhiteSpace()) //查询指定设施
            {
                try
                {
                    var result =
                        await AhnqIotContainer.Container.Resolve <QueryFacilityProcess>().ProcessAsync(md.FacilityCode);

                    return(ResultHelper.CreateMessage("查询指定设施", obj: result));
                }
                catch (AggregateException ex)
                {
                    ex.InnerExceptions.ToList().ForEach(e =>
                    {
                        LogHelper.Error("查询指定设施出错:{0}", e.Message);
                        LogHelper.Fatal(e.ToString());
                    });
                    return(ResultHelper.CreateExceptionMessage(ex, ex.Message));
                }
            }
            if (md.DeviceType) //查询设备类型
            {
                try
                {
                    var result = await AhnqIotContainer.Container.Resolve <DeviceTypeProcess>().ProcessAsync();

                    return(ResultHelper.CreateMessage("查询指定设施", obj: result));
                }
                catch (AggregateException ex)
                {
                    ex.InnerExceptions.ToList().ForEach(e =>
                    {
                        LogHelper.Error("查询指定设施出错:{0}", e.Message);
                        LogHelper.Fatal(e.ToString());
                    });
                    return(ResultHelper.CreateExceptionMessage(ex, ex.Message));
                }
            }
            if (md.Facility != null && !md.Facility.Facility.IsNullOrWhiteSpace()) //查询设施下的设备
            {
                try
                {
                    var result =
                        await
                        AhnqIotContainer.Container.Resolve <QueryDevicesProcess>().ProcessAsync(md.Facility.Facility);

                    return(ResultHelper.CreateMessage("查询设施下的设备", obj: result));
                }
                catch (AggregateException ex)
                {
                    ex.InnerExceptions.ToList().ForEach(e =>
                    {
                        LogHelper.Error("查询设施下的设备出错:{0}", e.Message);
                        LogHelper.Fatal(e.ToString());
                    });
                    return(ResultHelper.CreateExceptionMessage(ex, ex.Message));
                }
            }
            if (!md.DeviceCode.IsNullOrWhiteSpace()) //查询指定设备
            {
                try
                {
                    var result =
                        await AhnqIotContainer.Container.Resolve <QueryDeviceProcess>().ProcessAsync(md.DeviceCode);

                    return(ResultHelper.CreateMessage("查询指定设备", obj: result));
                }
                catch (AggregateException ex)
                {
                    ex.InnerExceptions.ToList().ForEach(e =>
                    {
                        LogHelper.Error("查询指定设备出错:{0}", e.Message);
                        LogHelper.Fatal(e.ToString());
                    });
                    return(ResultHelper.CreateExceptionMessage(ex, ex.Message));
                }
            }
            if (md.MediaCode.IsNullOrWhiteSpace())
            {
                return(null);
            }
            {
                try
                {
                    var result =
                        await AhnqIotContainer.Container.Resolve <QueryMediaProcess>().ProcessAsync(md.MediaCode);

                    return(ResultHelper.CreateMessage("查询指定视频设备", obj: result));
                }
                catch (AggregateException ex)
                {
                    ex.InnerExceptions.ToList().ForEach(e =>
                    {
                        LogHelper.Error("查询指定视频设备出错:{0}", e.Message);
                        LogHelper.Fatal(e.ToString());
                    });
                    return(ResultHelper.CreateExceptionMessage(ex, ex.Message));
                }
            }


            return(null);
        }