Example #1
0
        public Result PutDeviceLibrary([FromRoute] string code, [FromBody] DeviceLibrary deviceLibrary)
        {
            var data =
                ServerConfig.DeviceDb.Query <DeviceLibrary>("SELECT * FROM `device_library` WHERE Code = @code AND `MarkedDelete` = 0;", new { code }).FirstOrDefault();

            if (data == null)
            {
                return(Result.GenError <Result>(Error.DeviceNotExist));
            }

            var cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `device_model` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.DeviceModelId }).FirstOrDefault();

            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.DeviceModelNotExist));
            }

            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `firmware_library` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.FirmwareId }).FirstOrDefault();
            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.FirmwareLibraryNotExist));
            }

            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `hardware_library` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.HardwareId }).FirstOrDefault();
            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.HardwareLibraryNotExist));
            }
            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `application_library` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.ApplicationId }).FirstOrDefault();
            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.ApplicationLibraryNotExist));
            }
            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `site` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.SiteId }).FirstOrDefault();
            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.SiteNotExist));
            }
            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `script_version` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.ScriptId }).FirstOrDefault();
            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.ApplicationLibraryNotExist));
            }

            if (!IPAddress.TryParse(deviceLibrary.Ip, out _))
            {
                return(Result.GenError <Result>(Error.IpInvalid));
            }

            if (deviceLibrary.Port < 0 || deviceLibrary.Port > 65535)
            {
                return(Result.GenError <Result>(Error.PortInvalid));
            }

            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `device_library` WHERE Ip = @Ip AND Port = @Port AND Id != @Port;", new
            {
                deviceLibrary.Ip,
                deviceLibrary.Port
            }).FirstOrDefault();
            if (cnt > 0)
            {
                if (data.Ip != deviceLibrary.Ip || data.Port != deviceLibrary.Port)
                {
                    return(Result.GenError <Result>(Error.IpPortIsExist));
                }
            }
            deviceLibrary.Code           = code;
            deviceLibrary.CreateUserId   = Request.GetIdentityInformation();
            deviceLibrary.MarkedDateTime = DateTime.Now;
            ServerConfig.DeviceDb.Execute(
                "UPDATE device_library SET `CreateUserId` = @CreateUserId, `MarkedDateTime` = @MarkedDateTime, `MarkedDelete` = @MarkedDelete, `ModifyId` = @ModifyId, `Code` = @Code, " +
                "`DeviceName` = @DeviceName, `MacAddress` = @MacAddress, `Ip` = @Ip, `Port` = @Port, `Identifier` = @Identifier, `DeviceModelId` = @DeviceModelId, `ScriptId` = @ScriptId, " +
                "`FirmwareId` = @FirmwareId, `HardwareId` = @HardwareId, `ApplicationId` = @ApplicationId, `SiteId` = @SiteId, `AdministratorUser` = @AdministratorUser, " +
                "`Remark` = @Remark WHERE `Id` = @Id;", deviceLibrary);

            if (deviceLibrary.Id != data.Id || deviceLibrary.Ip != data.Ip || deviceLibrary.Port != data.Port)
            {
                HttpResponseErrAsync(new DeviceInfo
                {
                    DeviceId = deviceLibrary.Id,
                }, "delDeviceGate", "PutDeviceLibrary", () =>
                {
                    HttpResponseErrAsync(new DeviceInfo
                    {
                        DeviceId = deviceLibrary.Id,
                        Ip       = deviceLibrary.Ip,
                        Port     = deviceLibrary.Port,
                    }, "addDeviceGate", "PutDeviceLibrary");
                });
            }

            return(Result.GenError <Result>(Error.Success));
        }
Example #2
0
        public Result PostDeviceLibrary([FromBody] DeviceLibrary deviceLibrary)
        {
            var cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `device_library` WHERE Ip = @Ip AND Port = @Port AND `MarkedDelete` = 0;", new
            {
                deviceLibrary.Ip,
                deviceLibrary.Port
            }).FirstOrDefault();

            if (cnt > 0)
            {
                return(Result.GenError <Result>(Error.IpPortIsExist));
            }

            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `device_model` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.DeviceModelId }).FirstOrDefault();
            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.DeviceModelNotExist));
            }

            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `firmware_library` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.FirmwareId }).FirstOrDefault();
            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.FirmwareLibraryNotExist));
            }

            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `hardware_library` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.HardwareId }).FirstOrDefault();
            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.HardwareLibraryNotExist));
            }
            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `application_library` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.ApplicationId }).FirstOrDefault();
            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.ApplicationLibraryNotExist));
            }
            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `site` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.SiteId }).FirstOrDefault();
            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.SiteNotExist));
            }
            cnt =
                ServerConfig.DeviceDb.Query <int>("SELECT COUNT(1) FROM `script_version` WHERE Id = @id AND `MarkedDelete` = 0;", new { id = deviceLibrary.ScriptId }).FirstOrDefault();
            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.ApplicationLibraryNotExist));
            }

            if (!IPAddress.TryParse(deviceLibrary.Ip, out _))
            {
                return(Result.GenError <Result>(Error.IpInvalid));
            }

            if (deviceLibrary.Port < 0 || deviceLibrary.Port > 65535)
            {
                return(Result.GenError <Result>(Error.PortInvalid));
            }

            deviceLibrary.CreateUserId   = Request.GetIdentityInformation();
            deviceLibrary.MarkedDateTime = DateTime.Now;
            var lastInsertId = ServerConfig.DeviceDb.Query <int>(
                "INSERT INTO device_library (`CreateUserId`, `MarkedDateTime`, `MarkedDelete`, `ModifyId`, `Code`, `DeviceName`, `MacAddress`, `Ip`, `Port`, `Identifier`, `DeviceModelId`, " +
                "`ScriptId`, `FirmwareId`, `HardwareId`, `ApplicationId`, `SiteId`, `AdministratorUser`, `Remark`) VALUES (@CreateUserId, @MarkedDateTime, @MarkedDelete, " +
                "@ModifyId, @Code, @DeviceName, @MacAddress, @Ip, @Port, @Identifier, @DeviceModelId, @ScriptId, @FirmwareId, @HardwareId, @ApplicationId, @SiteId, @AdministratorUser, " +
                "@Remark);SELECT LAST_INSERT_ID();",
                deviceLibrary).FirstOrDefault();

            ServerConfig.DeviceDb.Execute("INSERT INTO npc_proxy_link (`DeviceId`) VALUES (@DeviceId);", new { DeviceId = lastInsertId, });

            HttpResponseErrAsync(new DeviceInfo
            {
                DeviceId = lastInsertId,
                Ip       = deviceLibrary.Ip,
                Port     = deviceLibrary.Port,
            }, "addDeviceGate", "PostDeviceLibrary");
            return(Result.GenError <Result>(Error.Success));
        }
        public MotorolaRadioAdapter()
        {
            device = new DeviceLibrary();

            device.Init();
        }