using System;
using System.Collections.Generic;
using Oracle.ManagedDataAccess.Client;
using System.Data;
namespace dataLib
{
public class Error
{
private int id { get; set; }
private String name { get; set; }
private String code { get; set; }
private String description { get; set; }
private String Status{get; set;}
public static String TableName = "Error";
public Error(int id)
{
OracleConnection connection = Connection.getConnection(true);
OracleDataReader reader = null;
this.Status = "OK";
try
{
OracleCommand command = new OracleCommand();
command.Connection = connection;
command.Parameters.Add(new OracleParameter("id", OracleDbType.Int32)).Value = id;
command.CommandText = "SELECT code, name, description FROM " + TableName + " WHERE id = :id";
reader = command.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
this.id = id;
this.name = reader["name"].ToString();
this.code = reader["code"].ToString();
this.description = reader["description"].ToString();
}
else
{
this.Status = TableName + " element with id =" + id.ToString() + " not found";
}
}
catch (OracleException e)
{
this.Status = e.Message;
}
finally
{
try
{
connection.Close();
reader.Close();
}
catch (OracleException e)
{
this.Status = e.Message;
}
}
}
public Error(String code)
{
OracleConnection connection = Connection.getConnection(true);
OracleDataReader reader = null;
try
{
OracleCommand command = new OracleCommand();
command.Connection = connection;
command.Parameters.Add(new OracleParameter("code", OracleDbType.Varchar2)).Value = code;
command.CommandText = "SELECT * FROM " + TableName + " WHERE code = :code";
reader = command.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
this.id = reader.GetInt32(0);
this.name = reader["name"].ToString();
this.code = reader["code"].ToString();
this.description = reader["description"].ToString();
}
else
{
this.Status = TableName + " element with code =" + code + " not found";
}
}
catch (OracleException e)
{
this.Status = e.Message;
}
finally
{
try
{
connection.Close();
reader.Close();
}
catch (OracleException e)
{
this.Status = e.Message;
}
}
}
public Error(String name, String code, String description = null)
{
this.name = name;
this.code = code;
this.description = description;
this.Status = "OK";
}
public bool CheckStatus()
{
if(this.Status == "OK")
{
return true;
}
else
{
return false;
}
}
private bool Validate()
{
throw new Exception("not realized");
return true;
}
public bool Insert()
{
//loading connection string from configuration file
OracleConnection connection = Connection.getConnection(true);
this.Status = "OK";
try
{
OracleCommand command = new OracleCommand();
command.Connection = connection;
command.CommandType = CommandType.Text;
command.Parameters.Add(new OracleParameter("name", OracleDbType.Varchar2)).Value = this.name;
command.Parameters.Add(new OracleParameter("code", OracleDbType.Varchar2)).Value = this.code;
command.Parameters.Add(new OracleParameter("description", OracleDbType.Varchar2)).Value = this.description;
command.CommandText = "INSERT INTO " + TableName + " (name, code, description) VALUES (:name, :code, :description)";
command.ExecuteNonQuery();
}
catch (OracleException e)
{
this.Status = e.Message;
}
finally
{
try
{
connection.Close();
}
catch (OracleException e)
{
this.Status = e.Message;
}
}
return this.CheckStatus();
}
public bool Delete()
{
//loading connection string from configuration file
OracleConnection connection = Connection.getConnection(true);
this.Status = "OK";
try
{
OracleCommand command = new OracleCommand();
command.Connection = connection;
command.CommandType = CommandType.Text;
command.Parameters.Add(new OracleParameter("id", OracleDbType.Int32)).Value = this.id;
command.CommandText = "DELETE FROM " + TableName + " WHERE id = :id";
command.ExecuteNonQuery();
}
catch (OracleException e)
{
this.Status = e.Message;
}
finally
{
try
{
connection.Close();
}
catch (OracleException e)
{
this.Status = e.Message;
}
}
return this.CheckStatus();
}
public override String ToString()
{
return "Error";
}
}
}