Пример #1
0
 public ReturnInfo insert(API_DEVICE_MODEL device_model)
 {
     try
     {
         GEN_DEVICE device = new GEN_DEVICE()
         {
             device_name        = device_model.device_name,
             active             = device_model.active,
             dnp3_client_config = device_model.dnp3_client_config,
             gen_com_network    = device_model.gen_com_network,
             gen_com_serial     = device_model.gen_com_serial,
             device_serie       = device_model.device_serie,
             trace_level        = device_model.trace_level,
             group = device_model.group,
         };
         if (device_model.device_code == null)
         {
             device.setDeviceCode = device_model.device_code;
         }
         return(insert(device));
     }
     catch (Exception ex) {
         return(new ReturnInfo()
         {
             succesful = false,
             message = $"Device {device_model.device_name} was not inserted",
             inner_exception = ex
         });
     }
 }
Пример #2
0
        public ReturnInfo insert(GEN_DEVICE device)
        {
            try
            {
                using (var sqlite = conn.new_connection())
                {
                    JObject device_config = CollectionHelper.Get_json_from(device, attr_device_config);

                    JObject dnp3_config = CollectionHelper.Get_json_from(device.dnp3_client_config, attr_dnp3_config);
                    JObject comm_net    = CollectionHelper.Get_json_from(device.gen_com_network, attr_comm_net);
                    JObject comm_ser    = CollectionHelper.Get_json_from(device.gen_com_serial, attr_comm_ser);

                    JObject JSON_object = new JObject();
                    JSON_object.Add(KEY_JSON_INFO_1, device_config);

                    sqlite.Open();
                    string sql = $"INSERT INTO {db_table} " +
                                 $"({KEY_2_DEVICE_CODE}, " +
                                 $"{KEY_3_NAME}, " +
                                 $"{KEY_4_DNP3_CONFIG}, " +
                                 $"{KEY_5_NETWORK}, " +
                                 $"{KEY_6_SERIAL}, " +
                                 $"{KEY_7_JSON_INFO}) " +
                                 $"VALUES(" +
                                 $" '{device.device_code}'," +
                                 $" '{device.device_name}'," +
                                 $" '{dnp3_config.ToString()}', " +
                                 $" '{((comm_net == null) ? "" : comm_net.ToString())}' , " +
                                 $" '{((comm_ser == null) ? "" : comm_ser.ToString())}' , " +
                                 $" '{JSON_object.ToString()}' ) ";
                    using (SQLiteCommand command = new SQLiteCommand(sql, sqlite))
                    {
                        command.ExecuteNonQuery();
                    }
                }
                return(new ReturnInfo
                {
                    succesful = true,
                    message = $"Device {device.device_name} ha sido ingresado en base de datos",
                    inner_exception = null
                });
            }
            catch (SQLiteException e)
            {
                // Si el registro ya existe, no es posible insertar el dispositivo
                if (e.Message.ToUpper().Contains("UNIQUE CONSTRAINT"))
                {
                    return(new ReturnInfo
                    {
                        succesful = false,
                        message = $"El dispositivo ({device.device_name}, {device.device_code}) ya existe en base de datos",
                        inner_exception = null
                    });
                }
                // Si la tabla no existe, esta se crea en el momento:
                if (e.Message.ToUpper().Contains("NO SUCH TABLE: " + db_table.ToUpper()))
                {
                    create_table();
                    return(insert(device));
                }
                return(new ReturnInfo
                {
                    succesful = false,
                    message = "No es posible ingresar el evento. " + e.Message,
                    inner_exception = e
                });
            }
        }