using MySql.Data.MySqlClient;
using Newtonsoft.Json;
using servicesDAO;
using System.Data;
namespace server
{
public class ServicesDAO
{
protected readonly DataAccess data;
protected String error = String.Empty;
public ServicesDAO(DataAccess dataAccess)
{
data = dataAccess;
}
#region funciones
///
/// Método que convierte una tabla DataTable en una cadena de texto formato JSON
///
/// Tabla de datos a convertir
/// Cadena de texto en formato JSON
public string DataTableToJson(DataTable dataTable)
{
string JSONString = string.Empty;
JSONString = Newtonsoft.Json.JsonConvert.SerializeObject(dataTable);
return JSONString;
}
public DataTable JsonToDataTable(string json)
{
DataTable dt = (DataTable)JsonConvert.DeserializeObject(json, (typeof(DataTable)));
return dt;
}
private List GetParametersfromSP(string nameSP)
{
List listParameters = new List();
listParameters = GetParametersfromSP(nameSP);
return listParameters;
}
private void ImprimirLog(String error)
{
Console.WriteLine("Error al obtener información desde base de datos");
Console.WriteLine(error);
}
///
/// Método dinámico que consulta en BD en base a parámetros tabla y cláusula condicional
///
/// nombre de la tabla (DESPUES DEL FROM) o se puede complementar con JOINS completos
/// sentencia condicional después de la palabra reservada WHERE
/// retorna JSON con resultados de la consulta
public String getDataTablefromClause(string tab_name, string wclause, string wsent)
{
try
{
MySqlParameter[] _param = new MySqlParameter[3];
_param[0] = new MySqlParameter("@tab_name", tab_name);
_param[1] = new MySqlParameter("@wcol_name", wclause);
_param[2] = new MySqlParameter("@w_sent", wsent);
DataTable dtData = data.GetDataTableFromStoreProcedure("spskDy_tablefromclause", _param);
if (dtData.Rows.Count > 0)
{
string jsonString = DataTableToJson(dtData);
return jsonString;
}
else { return ""; }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return e.Message;
}
}
public String getTemporalContractedServiceID()
{
try
{
DataTable dtData = data.GetDataTableFromStoreProcedure("tmp_contracted_services_id", null);
if (dtData.Rows.Count > 0)
{
string jsonString = DataTableToJson(dtData);
return jsonString;
}
else { return ""; }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return e.Message;
}
}
#endregion
#region métodos de data
#region data
///
/// Método que obtiene las categorias de ofertas disponibles
///
/// IdCategoria, puede ir nulo
/// retorna una cadena de texto formato json
public DataTable? getProductType(Int32 iduser= 0, Int32 idorg=0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[2];
_param[0] = new MySqlParameter("@iduser", iduser > 0 ? iduser : DBNull.Value);
_param[1] = new MySqlParameter("@idorganization", idorg > 0 ? idorg : DBNull.Value);
DataTable dtCategories = data.GetDataTableFromStoreProcedure("spslGetProductType_rolesversion", _param);
if (dtCategories.Rows.Count > 0)
return dtCategories;
else return null;
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
///
///Método que obtiene las categorias de ofertas disponibles
///
/// IdCategoria, puede ir nulo
/// Retorna el resultado en tipo DataTable
public DataTable getProductTypeAsDataTable(Int32 idProductType = 0)
{
try
{
MySqlParameter[] parameters = {
new MySqlParameter("@idProductType", idProductType>0 ? idProductType: DBNull.Value) };
DataTable dtCategories = data.GetDataTableFromStoreProcedure("spslGetProductType", parameters);
if (dtCategories.Rows.Count > 0)
{
return dtCategories;
}
else { return null; }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
///
/// Método que obtiene el listado de servicios según categoría seleccionada
///
/// IdCategoria
/// Retorna el listado de servicios en una cadena de texto formato JSON
public String getServicesCatalog(Int32 idProductType = 0, Int32 idUser = 0, Int32 idOrg = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[3];
_param[0] = new MySqlParameter("@product_type_id", idProductType > 0 ? idProductType : DBNull.Value);
_param[1] = new MySqlParameter("@iduser", idUser > 0 ? idUser : DBNull.Value);
_param[2] = new MySqlParameter("@org_id", idOrg > 0 ? idOrg : DBNull.Value);
DataTable dataServicesCatalog = data.GetDataTableFromStoreProcedure("spslGetServicesByTypeId_rolesversion", _param);
if (dataServicesCatalog.Rows.Count > 0)
{
string jsonString = DataTableToJson(dataServicesCatalog);
return jsonString;
}
else { return ""; }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return e.Message;
}
}
public DataTable? getPlansService(Int32 idService = 0)
{
try
{
MySqlParameter[] parameters = {
new MySqlParameter("@idService", idService>0 ? idService : null)
};
DataTable dataPlansService = data.GetDataTableFromStoreProcedure("spslGetPlansServicesById", parameters);
if (dataPlansService.Rows.Count > 0)
return dataPlansService;
else { return null; }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public DataTable? getServicesAllContracted(Int32 idUser = 0, Int32 idPlan = 0, Int32 contracted_services_id = 0, Int32 vdc_vcd_id = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[4];
_param[0] = new MySqlParameter("@user_id", idUser > 0 ? idUser : DBNull.Value);
_param[1] = new MySqlParameter("@plan_id", idPlan > 0 ? idPlan : DBNull.Value);
_param[2] = new MySqlParameter("@contracted_services_id", contracted_services_id > 0 ? contracted_services_id : DBNull.Value);
_param[3] = new MySqlParameter("@vdc_vcd_id", vdc_vcd_id > 0 ? vdc_vcd_id : DBNull.Value);
DataTable dataPlansService = data.GetDataTableFromStoreProcedure("spslGetAllServicesContracted", _param);
if (dataPlansService.Rows.Count > 0)
return dataPlansService;
else { return null; }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
/*
* REVISAR METODO PARA NO VINCULAR LIBRERIA MYSQLCLIENT.
*/
public string getIpServiceById(Int32 idFirewall = 0)
{
try
{
/*MySql.Data.MySqlClient.MySqlParameter[] parameters = {
new MySql.Data.MySqlClient.MySqlParameter("@idFirewall", idFirewall>0 ? idFirewall: null)
};
DataTable dataPlansService = data.GetDataTableFromStoreProcedure("spslGetIpServiceById", parameters);
if (dataPlansService.Rows.Count > 0)
{
string jsonString = DataTableToJson(dataPlansService);
return jsonString;
}
else { return ""; }*/
return "";
}
catch (Exception e)
{
ImprimirLog(e.Message);
return e.Message;
}
}
public string setContractedServices(Int32 user_id = 0,
Int32 backup_scheduled_id = 0, Int32 plan_id = 0,
Int32 firewall_id = 0, Int32 vdc_vcd_id = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[5];
_param[0] = new MySqlParameter("@user_id", user_id);
_param[1] = new MySqlParameter("@backup_scheduled_id", backup_scheduled_id > 0 ? backup_scheduled_id : DBNull.Value);
_param[2] = new MySqlParameter("@plan_id", plan_id);
_param[3] = new MySqlParameter("@firewall_id", firewall_id > 0 ? firewall_id : DBNull.Value);
_param[4] = new MySqlParameter("@vdc_vcd_id", vdc_vcd_id > 0 ? vdc_vcd_id : DBNull.Value);
DataTable dataService = data.GetDataTableFromStoreProcedure("spinIntoContractedServices", _param);
if (dataService.Rows.Count > 0)
{
Int32 value = 0;
if ((Int32.TryParse(dataService.Rows[0][0].ToString(), out value)) && value > 0)
{
string jsonString = DataTableToJson(dataService);
return jsonString;
}
else
{
throw new Exception("Couldn't get service information ID");
error = "Could't get information from spinIntoContractedServices";
}
}
else { throw new Exception("Couldn't save service information"); }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return e.Message;
}
}
public string setFirewall(string ips = "", bool is_segment = false, Int32 firewall_id = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[3];
_param[0] = new MySqlParameter("@ips", ips);
_param[1] = new MySqlParameter("@is_segment", is_segment);
_param[2] = new MySqlParameter("@firewall_id", firewall_id > 0 ? firewall_id : DBNull.Value);
DataTable dataPlansService = data.GetDataTableFromStoreProcedure("spinInsertIntoFirewall", _param);
if (dataPlansService.Rows.Count > 0)
{
string jsonString = DataTableToJson(dataPlansService);
return jsonString;
}
else { return ""; }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return e.Message;
}
}
public string setRequestQueue(Int32 contracted_services_id, Int32 request_queue_id = 0,
String resource_specs = "", String request_datetime = "",
String supply_datetime = "",
String down_datetime = "", Int32 supply_status_id = 0, Int32 service_status_id = 0,
String error_log = "", String identificator = "", String name_app = "",
String status = "", Int32 port = 0, Int32 terms_conditions_id = 0, String accept_datetime_terms = "")
{
try
{
MySqlParameter[] _param = new MySqlParameter[15];
_param[0] = new MySqlParameter("@contracted_services_id", contracted_services_id > 0 ? contracted_services_id : DBNull.Value);
_param[1] = new MySqlParameter("@request_queue_id", request_queue_id > 0 ? request_queue_id : DBNull.Value);
_param[2] = new MySqlParameter("@resource_specs", !String.IsNullOrEmpty(resource_specs) ? resource_specs : DBNull.Value);
_param[3] = new MySqlParameter("@request_datetime", !String.IsNullOrEmpty(request_datetime) ? request_datetime : DBNull.Value);
_param[4] = new MySqlParameter("@supply_datetime", !String.IsNullOrEmpty(supply_datetime) ? supply_datetime : DBNull.Value);
_param[5] = new MySqlParameter("@down_datetime", !String.IsNullOrEmpty(down_datetime) ? down_datetime : DBNull.Value);
_param[6] = new MySqlParameter("@supply_status_id", supply_status_id > 0 ? supply_status_id : DBNull.Value);
_param[7] = new MySqlParameter("@service_status_id", service_status_id > 0 ? service_status_id : null);
_param[8] = new MySqlParameter("@error_log", !String.IsNullOrEmpty(error_log) ? error_log : DBNull.Value);
_param[9] = new MySqlParameter("@identificator", !String.IsNullOrEmpty(identificator) ? identificator : null);
_param[10] = new MySqlParameter("@name_app", !String.IsNullOrEmpty(name_app) ? name_app : DBNull.Value);
_param[11] = new MySqlParameter("@status_text", !String.IsNullOrEmpty(status) ? status : DBNull.Value);
_param[12] = new MySqlParameter("@port_int", port > 0 ? port : DBNull.Value);
_param[13] = new MySqlParameter("@terms_conditions_id", terms_conditions_id > 0 ? terms_conditions_id : DBNull.Value);
_param[14] = new MySqlParameter("accept_datetime_terms", !String.IsNullOrEmpty(accept_datetime_terms) ? accept_datetime_terms : DBNull.Value);
DataSet dataService = data.GetDataSetFromStoreProcedure("spupSetRequestQueue", _param);
if (dataService.Tables.Count > 0)
{
string jsonString = (dataService.Tables.Count > 1) ? DataTableToJson(dataService.Tables[1]) :
DataTableToJson(dataService.Tables[0]);
return jsonString;
}
else { throw new Exception("Couldn't update request queue"); }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return e.Message;
}
}
public DataTable? getUserfromUserName(string userName = null, Int32 public_id = 0, Int32 user_id = 0,
Int32 org_id = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[4];
_param[0] = new MySqlParameter("@user_name", String.IsNullOrEmpty(userName) ? DBNull.Value : userName);
_param[1] = new MySqlParameter("@public_id", public_id > 0 ? public_id : DBNull.Value);
_param[2] = new MySqlParameter("@user_id", user_id > 0 ? user_id : DBNull.Value);
_param[3] = new MySqlParameter("@org_id", org_id > 0 ? org_id : 1);
DataTable dataService = data.GetDataTableFromStoreProcedure("spskGetUserVCD", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
throw new Exception("Couldn't get user information");
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public string setUserVcd(string username, string email, Int32 orgid)
{
try
{
MySqlParameter[] _param = new MySqlParameter[3];
_param[0] = new MySqlParameter("@username", username);
_param[1] = new MySqlParameter("@email", email);
_param[2] = new MySqlParameter("@org_id", orgid);
DataTable dataService = data.GetDataTableFromStoreProcedure("spinSetUserVCD", _param);
if (dataService.Rows.Count > 0)
{
int value = 0;
if ((Int32.TryParse(dataService.Rows[0][0].ToString(), out value)) && value > 0)
{
string jsonString = DataTableToJson(dataService);
return jsonString;
}
else
throw new Exception("Couldn't find organization information");
}
else
throw new Exception("Couldn't get user information");
}
catch (Exception e)
{
ImprimirLog(e.Message);
return e.Message;
}
}
public DataTable? getOrgfromName(string name = null, Int32 OrgId = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[2];
_param[0] = new MySqlParameter("@org_name", String.IsNullOrEmpty(name) == true ? DBNull.Value : name);
_param[1] = new MySqlParameter("@org_id", OrgId > 0 ? OrgId : DBNull.Value);
DataTable dataService = data.GetDataTableFromStoreProcedure("spskGetOrgVCD", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
throw new Exception("Couldn't get organization information");
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public string setOrgVcd(string orgname, string host, string apiversion)
{
try
{
MySqlParameter[] _param = new MySqlParameter[3];
_param[0] = new MySqlParameter("@org_name", orgname);
_param[1] = new MySqlParameter("@vhost", host);
_param[2] = new MySqlParameter("@api_version", apiversion);
DataTable dataService = data.GetDataTableFromStoreProcedure("spinSetOrgVCD", _param);
if (dataService.Rows.Count > 0)
{
int value = 0;
if ((Int32.TryParse(dataService.Rows[0][0].ToString(), out value)) && value > 0)
{
string jsonString = DataTableToJson(dataService);
return jsonString;
}
else
throw new Exception("Couldn't save organization information");
}
else
throw new Exception("Couldn't save organization information");
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public String updateLicenses(Int32 idlicenses, String name, String specs, Int32 contracted_services_id)
{
try
{
MySqlParameter[] _param = new MySqlParameter[4];
_param[0] = new MySqlParameter("@idlicenses", idlicenses);
_param[1] = new MySqlParameter("@name", name);
_param[2] = new MySqlParameter("@specs", specs);
_param[3] = new MySqlParameter("@contracted_services_id", contracted_services_id);
DataTable dataService = data.GetDataTableFromStoreProcedure("spupLicenses", _param);
if (dataService.Rows.Count > 0)
return DataTableToJson(dataService);
else
throw new Exception("Couldn't set licenses information");
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
///
/// Metodo para consultar las versiones de container image por ServiceId
///
///
///
public DataTable? getVersionImages(Int32 idService = 0)
{
try
{
MySqlParameter[] parameters = {
new MySqlParameter("@idService", idService>0 ? idService : DBNull.Value)
};
DataTable dataPlansService = data.GetDataTableFromStoreProcedure("spskGetVersionImagesById", parameters);
if (dataPlansService.Rows.Count > 0)
return dataPlansService;
else { return null; }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
#endregion
#region ciberseguridad
///
/// Método para almacenar en tabla Licenses
///
/// especificaciones en formato json tipo string
/// id del servicio contratado tipo entero
/// nombre de la organización tipo string
/// retorna idlicenses en formato json
public string saveLicenses(string specs, Int32 contracted_services_id, string name)
{
try
{
MySqlParameter[] _param = new MySqlParameter[3];
_param[0] = new MySqlParameter("@nameValue", name);
_param[1] = new MySqlParameter("@specs", specs);
_param[2] = new MySqlParameter("@contracted_services_id", contracted_services_id);
DataTable dataService = data.GetDataTableFromStoreProcedure("spinNewLicense", _param);
Int32 value = 0;
if (dataService.Rows.Count > 0)
{
if ((Int32.TryParse(dataService.Rows[0][0].ToString(), out value)) && value > 0)
{
string jsonString = DataTableToJson(dataService);
return jsonString;
}
else
throw new Exception("Couldn't get license information");
}
else
throw new Exception("Couldn't save license information");
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
private string getParametersReport(string user_id)
{
String result = String.Empty;
try
{
MySqlParameter[] _param = new MySqlParameter[1];
_param[0] = new MySqlParameter("@userid", user_id);
DataTable dataPlansService = data.GetDataTableFromStoreProcedure("getInformationReport", _param);
if (dataPlansService.Rows.Count > 0)
{
result = DataTableToJson(dataPlansService);
}
else
throw new Exception("Couldn't find data history information");
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
return result;
}
public DataTable? getRequestQueue(Int32 user_id, Int32 services_id, Int32 contracted_services_id
, Int32 service_status_id, String supply_datetime_start, String supply_datetime_end
, String request_datetime_start, String request_datetime_end, Int32 request_queue_id = 0)
{
try
{
DateTime supplydDT_start, supplydDT_end, requestDT_start, requestDT_end = new DateTime();
DateTime.TryParse(supply_datetime_start, out supplydDT_start);
DateTime.TryParse(supply_datetime_end, out supplydDT_end);
DateTime.TryParse(request_datetime_start, out requestDT_start);
DateTime.TryParse(request_datetime_end, out requestDT_end);
DateTime? supplydate_start = supplydDT_start;
DateTime? supplydate_end = supplydDT_end;
DateTime? requestdate_start = requestDT_start;
DateTime? requestdate_end = requestDT_end;
MySqlParameter[] _param = new MySqlParameter[9];
_param[0] = new MySqlParameter("@user_id", user_id > 0 ? user_id : null);
_param[1] = new MySqlParameter("@services_id", services_id > 0 ? services_id : null);
_param[2] = new MySqlParameter("@contracted_services_id", contracted_services_id > 0 ? contracted_services_id : null);
_param[3] = new MySqlParameter("@supply_datetime_start", !String.IsNullOrEmpty(supply_datetime_start) ? supplydate_start : null);
_param[4] = new MySqlParameter("@supply_datetime_end", !String.IsNullOrEmpty(supply_datetime_end) ? supplydate_end : null);
_param[5] = new MySqlParameter("@request_datetime_start", !String.IsNullOrEmpty(request_datetime_start) ? requestdate_start : null);
_param[6] = new MySqlParameter("@request_datetime_end", !String.IsNullOrEmpty(request_datetime_end) ? requestdate_end : null);
_param[7] = new MySqlParameter("@service_status_id", service_status_id > 0 ? service_status_id : null);
_param[8] = new MySqlParameter("@request_queue_id", request_queue_id > 0 ? request_queue_id : null);
DataTable dataService = data.GetDataTableFromStoreProcedure("spskGetRequestQueue", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
{
throw new Exception("Couldn't get request queue information from stored procedured spskGetRequestQueue");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public DataTable? getfieldsvdc(Int32 vdc_id, Int32 org_id, string urn_id)
{
try
{
MySqlParameter[] _param = new MySqlParameter[3];
_param[0] = new MySqlParameter("@vdc_id", vdc_id > 0 ? vdc_id : null);
_param[1] = new MySqlParameter("@org_id", org_id > 0 ? org_id : null);
_param[2] = new MySqlParameter("@urn_id", String.IsNullOrEmpty(urn_id) ? null : urn_id);
DataTable dataService = data.GetDataTableFromStoreProcedure("spskGetvdc_VCD", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
{
throw new Exception("Couldn't get vdc information from stored procedured spskGetvdc_VCD ");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public String insertfieldsvdc(string vdc_name, string urn_id, Int32 subscription_id, Int32 org_id)
{
try
{
MySqlParameter[] _param = new MySqlParameter[4];
_param[0] = new MySqlParameter("@vdc_name", vdc_name);
_param[1] = new MySqlParameter("@urn_id", urn_id);
_param[2] = new MySqlParameter("@subscription_id", subscription_id > 0 ? subscription_id : null);
_param[3] = new MySqlParameter("@org_id", org_id > 0 ? org_id : null);
DataTable dataService = data.GetDataTableFromStoreProcedure("spinInsertVdc_VCD", _param);
if (dataService.Rows.Count > 0)
return DataTableToJson(dataService);
else
{
throw new Exception("Couldn't get vdc information from stored procedured spinInsertVdc_VCD");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public String setfieldsvdc(Int32 vdc_id, string vdc_name, string urn_id, Int32 subscription_id, Int32 org_id, bool bactive = true)
{
try
{
MySqlParameter[] _param = new MySqlParameter[6];
_param[0] = new MySqlParameter("@vdc_id", vdc_id);
_param[1] = new MySqlParameter("@vdc_name", vdc_name);
_param[2] = new MySqlParameter("@urn_id", urn_id);
_param[3] = new MySqlParameter("@subscription_id", subscription_id > 0 ? subscription_id : null);
_param[4] = new MySqlParameter("@org_id", org_id > 0 ? org_id : null);
_param[5] = new MySqlParameter("@bactive", bactive);
DataTable dataService = data.GetDataTableFromStoreProcedure("spupUpdatevdc_VCD", _param);
if (dataService.Rows.Count > 0)
return DataTableToJson(dataService);
else
{
throw new Exception("Couldn't update vdc information from stored procedured spupUpdatevdc_VCD");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public String setInsertConsumptionHistoryIdentificator(string start_date = "", string end_date = "", string identificator = "",
string pod_identificator = "")
{
try
{
DateTime date_start = new DateTime(), date_end = new DateTime();
if (!String.IsNullOrEmpty(start_date))
DateTime.TryParse(start_date, out date_start);
if (!String.IsNullOrEmpty(end_date))
DateTime.TryParse(end_date, out date_end);
string adate_start = date_start.ToString("yyyy-MM-dd HH:mm:ss");
string adate_end = date_end.ToString("yyyy-MM-dd HH:mm:ss");
MySqlParameter[] _param = new MySqlParameter[4];
_param[0] = new MySqlParameter("@start_date", !String.IsNullOrEmpty(start_date) ? adate_start : null);
_param[1] = new MySqlParameter("@end_date", !String.IsNullOrEmpty(end_date) ? adate_end : null);
_param[2] = new MySqlParameter("@identificator", identificator);
_param[3] = new MySqlParameter("@pod_identificator", pod_identificator);
DataTable dataService = data.GetDataTableFromStoreProcedure("spup_setConsumptionHistoryIdentificator", _param);
if (dataService.Rows.Count > 0)
return DataTableToJson(dataService);
else
{
throw new Exception("Couldn't update information from stored procedured spup_setConsumptionHistoryIdentificator");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public DataTable? getConsumptionHistory(Int32 consumption_history_id = 0, Int32 request_services_id = 0, string start_date = "",
string end_date = "")
{
try
{
DateTime filterStart, filterEnd = new DateTime();
DateTime.TryParse(start_date, out filterStart);
DateTime.TryParse(end_date, out filterEnd);
DateTime? date_start = filterStart;
DateTime? date_end = filterEnd;
MySqlParameter[] _param = new MySqlParameter[4];
_param[0] = new MySqlParameter("@consumption_history_id", consumption_history_id > 0 ? consumption_history_id : null);
_param[1] = new MySqlParameter("@request_services_id", request_services_id > 0 ? request_services_id : null);
_param[2] = new MySqlParameter("@start_date", !String.IsNullOrEmpty(start_date) ? date_start : null);
_param[3] = new MySqlParameter("@end_date", !String.IsNullOrEmpty(end_date) ? date_end : null);
DataTable dataService = data.GetDataTableFromStoreProcedure("spskGetConsumptionHistory", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
{
throw new Exception("Couldn't get data from stored procedured");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public DataTable? getTermsConditions(Int32 idTerms_conditions = 0, Int32 idservice = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[2];
_param[0] = new MySqlParameter("@idTermsConditions", idTerms_conditions > 0 ? idTerms_conditions : null);
_param[1] = new MySqlParameter("@idservice", idservice > 0 ? idservice : null);
DataTable dataService = data.GetDataTableFromStoreProcedure("spskGetTermsAndConditions", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
{
throw new Exception("Couldn't get data from stored procedured spskGetTermsAndConditions");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public String setTermsConditions(Int32 terms_conditions_id = 0, String terms_conditions = "", Int32 idservice = 0, bool? bactive = null)
{
try
{
MySqlParameter[] _param = new MySqlParameter[4];
_param[0] = new MySqlParameter("@idTermsConditions", terms_conditions_id > 0 ? terms_conditions_id : null);
_param[1] = new MySqlParameter("@idservice", idservice > 0 ? idservice : null);
_param[2] = new MySqlParameter("@terms_conditions", String.IsNullOrEmpty(terms_conditions) ? null : terms_conditions);
_param[3] = new MySqlParameter("@bactive", bactive);
DataTable dataService = data.GetDataTableFromStoreProcedure("spinupSetTermsAndConditions", _param);
if (dataService.Rows.Count > 0)
return DataTableToJson(dataService);
else
{
throw new Exception("Couldn't update vdc information from stored procedured spinupSetTermsAndConditions");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public DataTable? getLicenses(Int32 idlicenses = 0, Int32 public_id = 0, Int32 org_id = 0,
Int32 idService = 0, Int32 contracted_services_id = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[5];
_param[0] = new MySqlParameter("@idLicense", idlicenses > 0 ? idlicenses : null);
_param[1] = new MySqlParameter("@public_id", public_id > 0 ? public_id : null);
_param[2] = new MySqlParameter("@org_id", org_id > 0 ? org_id : null);
_param[3] = new MySqlParameter("@idService", idService > 0 ? idService : null);
_param[4] = new MySqlParameter("@contracted_services_id",
contracted_services_id > 0 ? contracted_services_id : null);
DataTable dataService = data.GetDataTableFromStoreProcedure("spskGetLicenses", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
throw new Exception("Couldn't get licenses information");
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public DataTable? getOrgVDCByService(int serviceId = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[1];
_param[1] = new MySqlParameter("@idservice", serviceId > 0 ? serviceId : null);
DataTable dataService = data.GetDataTableFromStoreProcedure("spskGetOrgVdcbyService", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
{
throw new Exception("Couldn't get data from stored procedured");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
#endregion
#region Administracion
public DataTable? getprofiles(Int32 idrole = 0, Int32 id_org = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[2];
_param[0] = new MySqlParameter("@p_idrole", idrole > 0 ? idrole : DBNull.Value);
_param[1] = new MySqlParameter("@p_idorganization", id_org > 0 ? id_org : DBNull.Value);
DataTable dataService = data.GetDataTableFromStoreProcedure("spsk_Role_GetRoleInfo", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
{
throw new Exception("Couldn't get data from stored procedured spsk_Role_GetRoleInfo");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public DataTable? getServicesToDeploy(String status = "")
{
try
{
MySqlParameter[] _param = new MySqlParameter[1];
_param[0] = new MySqlParameter("@str_status", String.IsNullOrEmpty(status) ? status : DBNull.Value);
DataTable dataService = data.GetDataTableFromStoreProcedure("spskGetServicesToDeploy", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
{
throw new Exception("Couldn't get data from stored procedured spskGetServicesToDeploy");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public DataTable? getStatusCatalog(Int32 status_catalog_id = 0, Int32 id_type = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[2];
_param[0] = new MySqlParameter("@status_catalog_id", status_catalog_id > 0 ? status_catalog_id : null);
_param[1] = new MySqlParameter("@id_type", id_type > 0 ? id_type : null);
DataTable dataService = data.GetDataTableFromStoreProcedure("spskGetStatusCatalog", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
{
throw new Exception("Couldn't get status catalog data from stored procedured spskGetStatusCatalog");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public String setRoleAccess(Int32 idrole, Int32 idorg, string rolename, string description,
Int32 iduser, bool canview, bool canedit,
bool candelete, String jsonServices = "", bool bactive = true, Int32 idmenu_component = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[11];
_param[0] = new MySqlParameter("@p_idrole", idrole > 0 ? idrole : DBNull.Value);
_param[1] = new MySqlParameter("@p_idorganization", idorg > 0 ? idorg : DBNull.Value);
_param[2] = new MySqlParameter("@p_role_name", !String.IsNullOrEmpty(rolename) ? rolename : DBNull.Value);
_param[3] = new MySqlParameter("@p_description", !String.IsNullOrEmpty(description) ? description : DBNull.Value);
_param[4] = new MySqlParameter("@p_created_by", iduser);
_param[5] = new MySqlParameter("@p_idmenu_component", idmenu_component > 0 ? idmenu_component : DBNull.Value);
_param[6] = new MySqlParameter("@p_can_view", canview);
_param[7] = new MySqlParameter("@p_can_edit", canedit);
_param[8] = new MySqlParameter("@p_can_delete", candelete);
_param[9] = new MySqlParameter("@p_json_services", !String.IsNullOrEmpty(jsonServices) ? jsonServices : DBNull.Value);
_param[10] = new MySqlParameter("@p_active", bactive);
DataTable dataService = data.GetDataTableFromStoreProcedure("spInUp_Role_RoleAndAccess", _param);
if (dataService.Rows.Count > 0)
return dataService.Rows[0][0].ToString();
else { throw new Exception("Couldn't update role"); }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public String setMenuComponent(Int32 idmenu_component = 0, String component_name = "", String component_path = "",
String description = "")
{
try
{
MySqlParameter[] _param = new MySqlParameter[4];
_param[0] = new MySqlParameter("@pidmenu_component", idmenu_component > 0 ? idmenu_component : DBNull.Value);
_param[1] = new MySqlParameter("@pcomponent_name", !String.IsNullOrEmpty(component_name) ? component_name : DBNull.Value);
_param[2] = new MySqlParameter("@pcomponent_path", !String.IsNullOrEmpty(component_path) ? component_path : DBNull.Value);
_param[3] = new MySqlParameter("@pdescription", !String.IsNullOrEmpty(description) ? description : DBNull.Value);
DataTable dataService = data.GetDataTableFromStoreProcedure("spInUp_Role_MenuComponent", _param);
if (dataService.Rows.Count > 0)
return dataService.Rows[0][0].ToString();
else { throw new Exception("Couldn't update request queue"); }
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public DataTable? getMenuComponent(Int32 idmenu_component_filter = 0, String component_name_filter = "")
{
try
{
MySqlParameter[] _param = new MySqlParameter[2];
_param[0] = new MySqlParameter("@idmenu_component_filter", idmenu_component_filter > 0 ? idmenu_component_filter : DBNull.Value);
_param[1] = new MySqlParameter("@component_name_filter", String.IsNullOrEmpty(component_name_filter) ? DBNull.Value : component_name_filter);
DataTable dataService = data.GetDataTableFromStoreProcedure("spsk_Role_GetAllMenuComponents", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
{
throw new Exception("Couldn't get status catalog data from stored procedured spsk_Role_GetAllMenuComponents");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public DataTable? getUserAccessInfo(Int32 user_id = 0, Int32 org_id = 0, Int32 idrole=0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[3];
_param[0] = new MySqlParameter("@p_user_id", user_id > 0 ? user_id : DBNull.Value);
_param[1] = new MySqlParameter("@p_id_organization", org_id > 0 ? org_id : DBNull.Value);
_param[2] = new MySqlParameter("@p_id_role", idrole > 0 ? idrole : DBNull.Value);
DataTable dataService = data.GetDataTableFromStoreProcedure("spsk_Role_GetUserAccessInfo", _param);
if (dataService.Rows.Count > 0)
return dataService;
else
{
throw new Exception("Couldn't get status catalog data from stored procedured spsk_Role_GetAllMenuComponents");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
public String setUserRole(Int32 user_id = 0, Int32 org_id = 0, Int32 idrole = 0, Int32 assigned_by = 0)
{
try
{
MySqlParameter[] _param = new MySqlParameter[4];
_param[0] = new MySqlParameter("@p_user_id", user_id > 0 ? user_id : DBNull.Value);
_param[1] = new MySqlParameter("@p_idrole", idrole > 0 ? idrole : DBNull.Value);
_param[2] = new MySqlParameter("@p_idorganization", org_id > 0 ? org_id : DBNull.Value);
_param[3] = new MySqlParameter("@p_assigned_by", assigned_by > 0 ? assigned_by : DBNull.Value);
DataTable dataService = data.GetDataTableFromStoreProcedure("spinup_Role_setUserRol", _param);
if (dataService.Rows.Count > 0)
return dataService.Rows[0][0].ToString();
else
{
throw new Exception("Couldn't get status catalog data from stored procedured spsk_Role_GetAllMenuComponents");
}
}
catch (Exception e)
{
ImprimirLog(e.Message);
return null;
}
}
#endregion
#endregion
}
}