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 }); } }
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 }); } }