private void EliminarObjetoBaseDeDatos(string nombreObjeto, BusinessVariables.EnumTipoObjeto objeto) { DataBaseModelContext db = new DataBaseModelContext(); try { string query = "DROP "; switch (objeto) { case BusinessVariables.EnumTipoObjeto.Tabla: query += "TABLE " + nombreObjeto; break; case BusinessVariables.EnumTipoObjeto.Store: query += "PROCEDURE " + nombreObjeto; break; } db.ExecuteStoreCommand(query); } catch (Exception ex) { throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } }
public bool ExisteMascara(Mascara mascara) { bool result = false; DataBaseModelContext db = new DataBaseModelContext(); try { var pTableName = new SqlParameter { ParameterName = "@TABLENAME", Value = mascara.NombreTabla }; var pResult = new SqlParameter { ParameterName = "@OUTER", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Int }; db.ExecuteStoreCommand("exec ExisteTablaMascara @TABLENAME, @OUTER output", pTableName, pResult); result = (int)pResult.Value == 1; if (result) { throw new Exception("Ya Existe"); } } catch (Exception ex) { throw new Exception(ex.Message); } finally { db.Dispose(); } return(result); }
private bool CreaTabla(string nombreCatalogo) { DataBaseModelContext db = new DataBaseModelContext(); try { string qryCrearTablas = String.Format("CREATE TABLE {0} ( \n" + "Id int IDENTITY(1,1) NOT NULL, \n" + "[Descripcion] [nvarchar](MAX) NOT NULL," + "Habilitado BIT \n" + "CONSTRAINT [PK_{0}] PRIMARY KEY CLUSTERED \n" + "( \n" + "\t[Id] ASC \n" + ")WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] \n" + ") ON [PRIMARY] \n " + "ALTER TABLE [dbo].[{0}] ADD CONSTRAINT [DF_{0}_habilitado] DEFAULT ((1)) FOR [Habilitado]", nombreCatalogo); db.ExecuteStoreCommand(qryCrearTablas); } catch (Exception ex) { throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } return(true); }
private bool CreaUpdate(Mascara mascara) { DataBaseModelContext db = new DataBaseModelContext(); try { string queryParametros = string.Empty; string queryCamposValues = string.Empty; string queryWhereValues = "Id = @ID"; int paramsCount = mascara.NoCampos; int contadorParametros = 0; foreach (CampoMascara campoMascara in mascara.CampoMascara) { contadorParametros++; TipoCampoMascara tmpTipoCampoMascara = db.TipoCampoMascara.SingleOrDefault(f => f.Id == campoMascara.IdTipoCampoMascara); if (tmpTipoCampoMascara == null) { continue; } queryParametros += String.Format("@{0} {1}", campoMascara.NombreCampo, tmpTipoCampoMascara.TipoDatoSql); queryCamposValues += String.Format("{0} = @{0}", campoMascara.NombreCampo); if (contadorParametros < paramsCount) { queryParametros += ", \n"; queryCamposValues += ", \n"; } } if (mascara.Random) { queryParametros += String.Format(", @{0} {1}", BusinessVariables.ParametrosMascaraCaptura.NombreCampoRandom, BusinessVariables.ParametrosMascaraCaptura.TipoCampoRandom); queryCamposValues += String.Format(", \n {0} = @{0}", BusinessVariables.ParametrosMascaraCaptura.NombreCampoRandom); } string queryStore = string.Format("Create PROCEDURE {0}( \n" + "@ID INT, \n" + "{1}" + ") \n" + "AS \n" + "BEGIN \n" + "UPDATE {2} \n" + "SET {3} \n" + "WHERE {4} \n" + "END", mascara.ComandoActualizar, queryParametros, mascara.NombreTabla, queryCamposValues, queryWhereValues); db.ExecuteStoreCommand(queryStore); } catch (Exception ex) { EliminarObjetoBaseDeDatos(mascara.NombreTabla, BusinessVariables.EnumTipoObjeto.Tabla); EliminarObjetoBaseDeDatos(mascara.ComandoInsertar, BusinessVariables.EnumTipoObjeto.Store); throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } return(true); }
private bool CreaTabla(Mascara mascara) { DataBaseModelContext db = new DataBaseModelContext(); try { string queryCamposTabla = string.Empty; foreach (CampoMascara campoMascara in mascara.CampoMascara) { TipoCampoMascara tmpTipoCampoMascara = db.TipoCampoMascara.SingleOrDefault(f => f.Id == campoMascara.IdTipoCampoMascara); if (tmpTipoCampoMascara == null) { continue; } switch (tmpTipoCampoMascara.TipoDatoSql) { case "NVARCHAR": queryCamposTabla += String.Format("{0} {1}({2}) {3},\n", campoMascara.NombreCampo, tmpTipoCampoMascara.TipoDatoSql, campoMascara.LongitudMaxima, campoMascara.Requerido ? "NOT NULL" : "NULL"); break; default: queryCamposTabla += String.Format("{0} {1} {2},\n", campoMascara.NombreCampo, tmpTipoCampoMascara.TipoDatoSql, campoMascara.Requerido ? "NOT NULL" : "NULL"); break; } } string qryCrearTablas = String.Format("CREATE TABLE {0} ( \n" + "Id int IDENTITY(1,1) NOT NULL, \n" + "IdTicket int NOT NULL," + "{1}" + "Habilitado BIT \n" + (mascara.Random ? ", " + BusinessVariables.ParametrosMascaraCaptura.CampoRandom + " \n" : string.Empty) + "CONSTRAINT [PK_{0}] PRIMARY KEY CLUSTERED \n" + "( \n" + "\t[Id] ASC \n" + ")WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] \n" + ") ON [PRIMARY] \n" + "ALTER TABLE [dbo].[{0}] WITH CHECK ADD CONSTRAINT [FK_{0}_Ticket] FOREIGN KEY([IdTicket]) \n" + "REFERENCES [dbo].[Ticket] ([Id])\n" + "ALTER TABLE [dbo].[{0}] CHECK CONSTRAINT [FK_{0}_Ticket]\n" + "ALTER TABLE [dbo].[{0}] ADD CONSTRAINT [DF_{0}_habilitado] DEFAULT ((1)) FOR [Habilitado]", mascara.NombreTabla, queryCamposTabla); db.ExecuteStoreCommand(qryCrearTablas); } catch (Exception ex) { throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } return(true); }
public void AgregarRegistro(int idCatalogo, string descripcion) { DataBaseModelContext db = new DataBaseModelContext(); try { Catalogos catalogo = db.Catalogos.Single(w => w.Id == idCatalogo); string store = string.Format("{0} '{1}', '{2}'", BusinessVariables.ParametrosCatalogo.PrefijoComandoInsertar, catalogo.Tabla, descripcion.Trim().ToUpper()); db.ExecuteStoreCommand(store); } catch (Exception ex) { throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } }
public void HabilitarRegistroSistema(int idCatalogo, bool habilitado, int idRegistro) { DataBaseModelContext db = new DataBaseModelContext(); try { Catalogos catalogo = db.Catalogos.Single(w => w.Id == idCatalogo); string store = string.Format("{0} '{1}', '{2}', {3}", BusinessVariables.ParametrosCatalogo.PrefijoComandoHabilitar, catalogo.Tabla, habilitado, idRegistro); db.ExecuteStoreCommand(store); } catch (Exception ex) { throw new Exception(ex.Message); } finally { db.Dispose(); } }
public Ticket CrearTicket(int idUsuario, int idArbol, List <HelperCampoMascaraCaptura> lstCaptura, bool campoRandom) { DataBaseModelContext db = new DataBaseModelContext(); Ticket result; try { Usuario usuario = new BusinessUsuarios().ObtenerUsuario(idUsuario); ArbolAcceso arbol = new BusinessArbolAcceso().ObtenerArbolAcceso(idArbol); Mascara mascara = new BusinessMascaras().ObtenerMascaraCaptura(arbol.InventarioArbolAcceso.First().IdMascara ?? 0); Encuesta encuesta = new BusinessEncuesta().ObtenerEncuestaById(arbol.InventarioArbolAcceso.First().IdEncuesta ?? 0); Sla sla = new BusinessSla().ObtenerSla(arbol.InventarioArbolAcceso.First().IdSla ?? 0); Ticket ticket = new Ticket { IdTipoUsuario = usuario.IdTipoUsuario, IdTipoArbolAcceso = arbol.IdTipoArbolAcceso, IdArbolAcceso = arbol.Id, IdImpacto = (int)arbol.IdImpacto, IdUsuario = usuario.Id, IdOrganizacion = usuario.IdOrganizacion, IdUbicacion = usuario.IdUbicacion, IdMascara = mascara.Id, IdEncuesta = encuesta.Id, //RespuestaEncuesta = new List<RespuestaEncuesta>(), IdEstatusTicket = (int)BusinessVariables.EnumeradoresKiiniNet.EnumEstatusTicket.Abierto, FechaHoraAlta = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture), IdEstatusAsignacion = (int)BusinessVariables.EnumeradoresKiiniNet.EnumEstatusAsignacion.PorAsignar, Random = campoRandom, ClaveRegistro = GeneraCampoRandom() }; //ENCUESTA //ticket.RespuestaEncuesta.AddRange(encuesta.EncuestaPregunta.Select(pregunta => new RespuestaEncuesta { IdEncuesta = encuesta.Id, IdPregunta = pregunta.Id })); //GrupoUsuario USUARIO ticket.TicketGrupoUsuario = new List <TicketGrupoUsuario>(); foreach (GrupoUsuarioInventarioArbol grupoArbol in arbol.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol) { TicketGrupoUsuario grupo = new TicketGrupoUsuario { IdGrupoUsuario = grupoArbol.IdGrupoUsuario }; if (grupoArbol.IdSubGrupoUsuario != null) { grupo.IdSubGrupoUsuario = grupoArbol.IdSubGrupoUsuario; } ticket.TicketGrupoUsuario.Add(grupo); } //SLA ticket.SlaEstimadoTicket = new SlaEstimadoTicket { FechaInicio = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture), Dias = sla.Dias, Horas = sla.Horas, Minutos = sla.Minutos, Segundos = sla.Segundos, FechaInicioProceso = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture), TiempoHoraProceso = sla.TiempoHoraProceso, Terminado = false, SlaEstimadoTicketDetalle = new List <SlaEstimadoTicketDetalle>() }; List <HorarioSubGrupo> lstHorarioGrupo = new List <HorarioSubGrupo>(); List <DiaFestivoSubGrupo> lstDiasFestivosGrupo = new List <DiaFestivoSubGrupo>(); foreach (SubGrupoUsuario sGpoUsuario in ticket.TicketGrupoUsuario.SelectMany(tgrupoUsuario => db.GrupoUsuario.Where(w => w.Id == tgrupoUsuario.IdGrupoUsuario && w.IdTipoGrupo == (int)BusinessVariables.EnumTiposGrupos.ResponsableDeAtención).SelectMany(gpoUsuario => gpoUsuario.SubGrupoUsuario))) { lstHorarioGrupo.AddRange(db.HorarioSubGrupo.Where(w => w.IdSubGrupoUsuario == sGpoUsuario.Id).ToList()); lstDiasFestivosGrupo.AddRange(db.DiaFestivoSubGrupo.Where(w => w.IdSubGrupoUsuario == sGpoUsuario.Id)); } DateTime fechaTermino = TiempoGeneral(lstHorarioGrupo, ticket.SlaEstimadoTicket.TiempoHoraProceso); ticket.FechaHoraFinProceso = fechaTermino; ticket.SlaEstimadoTicket.FechaFinProceso = fechaTermino; ticket.SlaEstimadoTicket.FechaFin = fechaTermino; //SLA DETALLE ticket.SlaEstimadoTicket.SlaEstimadoTicketDetalle.AddRange( sla.SlaDetalle.Select( detalle => new SlaEstimadoTicketDetalle { IdSubRol = detalle.IdSubRol, Dias = sla.Dias, Horas = sla.Horas, Minutos = sla.Minutos, Segundos = sla.Segundos, TiempoProceso = detalle.TiempoProceso })); ticket.IdEstatusTicket = (int)BusinessVariables.EnumeradoresKiiniNet.EnumEstatusTicket.Abierto; ticket.TicketEstatus = new List <TicketEstatus> { new TicketEstatus { IdEstatus = ticket.IdEstatusTicket, IdUsuarioMovimiento = idUsuario, FechaMovimiento = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture), } }; ticket.TicketAsignacion = new List <TicketAsignacion> { new TicketAsignacion { IdEstatusAsignacion = (int)BusinessVariables.EnumeradoresKiiniNet.EnumEstatusAsignacion.PorAsignar, FechaAsignacion = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture), } }; db.Ticket.AddObject(ticket); db.SaveChanges(); string store = string.Format("{0} '{1}',", mascara.ComandoInsertar, ticket.Id); store = lstCaptura.Aggregate(store, (current, captura) => current + string.Format("'{0}',", captura.Valor)); store = store.Trim().TrimEnd(','); if (ticket.Random) { store = store + ", '" + ticket.ClaveRegistro + "'"; } db.ExecuteStoreCommand(store); db.ContextOptions.ProxyCreationEnabled = _proxy; result = new Ticket { Id = ticket.Id, Random = campoRandom, ClaveRegistro = ticket.ClaveRegistro }; } catch (Exception ex) { throw new Exception(ex.Message); } finally { db.Dispose(); } return(result); }
private bool CrearInsert(Mascara mascara) { DataBaseModelContext db = new DataBaseModelContext(); try { string queryParametros = "@IDTICKET int, "; string queryCampos = "IDTICKET, "; string queryValues = "@IDTICKET, "; int paramsCount = mascara.NoCampos; int contadorParametros = 0; foreach (CampoMascara campoMascara in mascara.CampoMascara) { contadorParametros++; TipoCampoMascara tmpTipoCampoMascara = db.TipoCampoMascara.SingleOrDefault(f => f.Id == campoMascara.IdTipoCampoMascara); if (tmpTipoCampoMascara == null) { continue; } switch (tmpTipoCampoMascara.TipoDatoSql) { case "NVARCHAR": queryParametros += String.Format("@{0} {1}({2})", campoMascara.NombreCampo, tmpTipoCampoMascara.TipoDatoSql, campoMascara.LongitudMaxima); break; default: queryParametros += String.Format("@{0} {1}", campoMascara.NombreCampo, tmpTipoCampoMascara.TipoDatoSql); break; } queryCampos += String.Format("{0}", campoMascara.NombreCampo); queryValues += String.Format("@{0}", campoMascara.NombreCampo); if (contadorParametros < paramsCount) { queryParametros += ", \n"; queryCampos += ", \n"; queryValues += ", \n"; } } if (mascara.Random) { queryParametros += String.Format(", @{0} {1}", BusinessVariables.ParametrosMascaraCaptura.NombreCampoRandom, BusinessVariables.ParametrosMascaraCaptura.TipoCampoRandom); queryCampos += ", " + BusinessVariables.ParametrosMascaraCaptura.NombreCampoRandom; queryValues += String.Format(", @{0}", BusinessVariables.ParametrosMascaraCaptura.NombreCampoRandom); } string queryStore = string.Format("Create PROCEDURE {0}( \n" + "{1}" + ") \n" + "AS \n" + "BEGIN \n" + "INSERT INTO {2}({3}) \n" + "VALUES({4}) \n" + "END", mascara.ComandoInsertar, queryParametros, mascara.NombreTabla, queryCampos, queryValues); db.ExecuteStoreCommand(queryStore); } catch (Exception ex) { EliminarObjetoBaseDeDatos(mascara.NombreTabla, BusinessVariables.EnumTipoObjeto.Tabla); throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } return(true); }
public void CrearCatalogoExcel(Catalogos catalogo, bool esMascara, string archivo, string hoja) { DataBaseModelContext db = new DataBaseModelContext(); string tabla = null; try { string connection = (((System.Data.EntityClient.EntityConnection)(db.Connection)).StoreConnection).ConnectionString; catalogo.Descripcion = catalogo.Descripcion.Trim(); catalogo.Tabla = (BusinessVariables.ParametrosCatalogo.PrefijoTabla + catalogo.Descripcion).Replace(" ", string.Empty).ToUpper(); catalogo.EsMascaraCaptura = esMascara; catalogo.FechaAlta = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture); catalogo.Archivo = true; catalogo.Habilitado = true; tabla = catalogo.Tabla; ExisteMascara(tabla, true); DataSet dtExcel = BusinessFile.ExcelManager.LeerHojaExcel(archivo, hoja); if (dtExcel.Tables.Count > 0) { if (dtExcel.Tables[0].Columns.Cast <DataColumn>().Any(column => column.ColumnName.Trim().ToUpper() == "ID" || column.ColumnName.Trim().ToUpper() == "HABILITADO")) { throw new Exception("No se puede colocar una columna con el Nombre Id"); } string sqltable = CreateSqlTableFromDataTable(catalogo.Tabla, dtExcel.Tables["tablaPaso"]); db.ExecuteStoreCommand(sqltable); SqlConnection sqlConn = new SqlConnection(connection); sqlConn.Open(); SqlCommand cmd = new SqlCommand(string.Format("select * from {0}", catalogo.Tabla), sqlConn); SqlDataAdapter da = new SqlDataAdapter(cmd); da.TableMappings.Add("Table", catalogo.Tabla); DataSet ds = new DataSet(); da.Fill(ds); List <CampoCatalogo> lstCampos = (from DataColumn column in dtExcel.Tables["tablaPaso"].Columns select new CampoCatalogo { Campo = column.ColumnName, TipoCampo = SqlGetType(column) }).ToList(); catalogo.CampoCatalogo = lstCampos; foreach (DataRow row in dtExcel.Tables["tablaPaso"].Rows) { DataRow dr = ds.Tables[catalogo.Tabla].NewRow(); foreach (DataColumn column in dtExcel.Tables["tablaPaso"].Columns) { dr[column.ColumnName] = row[column.ColumnName].ToString(); } dr["Habilitado"] = true; ds.Tables[catalogo.Tabla].Rows.Add(dr); } new SqlCommandBuilder(da); da.Update(ds.Tables[catalogo.Tabla]); db.Catalogos.AddObject(catalogo); db.SaveChanges(); } } catch (Exception ex) { if (tabla == null) { throw new Exception(ex.Message); } if (ExisteMascara(tabla, false)) { EliminarObjetoBaseDeDatos(tabla, BusinessVariables.EnumTipoObjeto.Tabla); } throw new Exception(ex.Message); } finally { db.Dispose(); } }