private bool ActionsObject(DbManagerTypes dbManagerTypes) { List <ProcedureModel> procedureModels = new List <ProcedureModel>(); foreach (var prop in typeof(T).GetProperties()) { if (prop.PropertyType.Equals(typeof(int)) || prop.PropertyType.Equals(typeof(string)) || prop.PropertyType.Equals(typeof(double)) || prop.PropertyType.Equals(typeof(TimeSpan)) || prop.PropertyType.Equals(typeof(DateTime))) { PropertyInfo propertyInfo = Element.GetType().GetProperty(prop.Name); procedureModels.Add(new ProcedureModel { Namefield = prop.Name, value = propertyInfo.GetValue(Element) }); } if (prop.PropertyType.Equals(typeof(DateTime?))) { PropertyInfo propertyInfo = Element.GetType().GetProperty(prop.Name); procedureModels.Add(new ProcedureModel { Namefield = prop.Name, value = propertyInfo.GetValue(Element) }); } } procedureModels.Add(new ProcedureModel { Namefield = "ModeProcedure", value = dbManagerTypes }); dBConnection.StartProcedure(string.Format("Gps_{0}", Nametable), procedureModels); if (dBConnection.ErrorCode == 0) { return(true); } else { return(false); } }
private bool ActionsObjectCode(DbManagerTypes dbManagerTypes, TableDB tableDefinifiton) { //TableDB tableDefinifiton = GetClassAttribute(); bool result = false; //mapeo de tabla con los nombres de los campos ya existentes string sentencia = ""; string sentenciaVariables = ""; foreach (var prop in typeof(T).GetProperties()) { PropertyInfo propertyInfo = Element.GetType().GetProperty(prop.Name); ColumnDB hiddenAttribute = (ColumnDB)propertyInfo.GetCustomAttribute(typeof(ColumnDB)); if (hiddenAttribute == null) { throw new Exceptions.DarkException(string.Format("The attribute was not found in the attribute '{0}', if you don´t want to use mapTable, please set IsMappedByLabels = false", prop.Name)); } if (tableDefinifiton.IsMappedByLabels) { if (string.IsNullOrEmpty(hiddenAttribute.Name)) { throw new Exceptions.DarkException(string.Format("The attribute {0} was setting like mapping column, the name is missing", prop.Name)); } } else { hiddenAttribute.Name = prop.Name; } if (dbManagerTypes == DbManagerTypes.Add) { if (!hiddenAttribute.IsKey && hiddenAttribute.IsMapped) { sentencia += hiddenAttribute.Name + ","; sentenciaVariables += "@" + hiddenAttribute.Name + ","; } } else if (dbManagerTypes == DbManagerTypes.Update) { if (!hiddenAttribute.IsKey && hiddenAttribute.IsMapped) { sentencia += hiddenAttribute.Name + " = @" + hiddenAttribute.Name + ","; } else if (hiddenAttribute.IsKey && hiddenAttribute.IsMapped) { sentenciaVariables = hiddenAttribute.Name + " = @" + hiddenAttribute.Name + ""; } else { } } else if (dbManagerTypes == DbManagerTypes.Delete) { if (hiddenAttribute.IsKey) { sentenciaVariables = hiddenAttribute.Name + " = @" + hiddenAttribute.Name + ""; } } else { throw new Exceptions.DarkException(string.Format("Delete action is not active")); } } if (dbManagerTypes == DbManagerTypes.Add) { string Statement = string.Format("INSERT INTO {0}({1}) VALUES({2})", Nametable, sentencia.Substring(0, sentencia.Length - 1), sentenciaVariables.Substring(0, sentenciaVariables.Length - 1)); List <ProcedureModel> procedureModels = new List <ProcedureModel>(); foreach (var prop in typeof(T).GetProperties()) { PropertyInfo propertyInfo = Element.GetType().GetProperty(prop.Name); ColumnDB hiddenAttribute = (ColumnDB)propertyInfo.GetCustomAttribute(typeof(ColumnDB)); if (!hiddenAttribute.IsKey && hiddenAttribute.IsMapped) { procedureModels.Add(new ProcedureModel { Namefield = tableDefinifiton.IsMappedByLabels ? hiddenAttribute.Name : prop.Name, value = propertyInfo.GetValue(Element) }); } } dBConnection.StartInsert(Statement, procedureModels); result = true; } else if (dbManagerTypes == DbManagerTypes.Update) { string Statement = string.Format("UPDATE {0} SET {1} WHERE {2} ", Nametable, sentencia.Substring(0, sentencia.Length - 1), sentenciaVariables); List <ProcedureModel> procedureModels = new List <ProcedureModel>(); foreach (var prop in typeof(T).GetProperties()) { PropertyInfo propertyInfo = Element.GetType().GetProperty(prop.Name); ColumnDB hiddenAttribute = (ColumnDB)propertyInfo.GetCustomAttribute(typeof(ColumnDB)); if (hiddenAttribute.IsMapped) { procedureModels.Add(new ProcedureModel { Namefield = tableDefinifiton.IsMappedByLabels ? hiddenAttribute.Name : prop.Name, value = propertyInfo.GetValue(Element) }); } } dBConnection.StartUpdate(Statement, procedureModels); result = true; } else if (dbManagerTypes == DbManagerTypes.Delete) { string Statement = string.Format("DELETE FROM {0} WHERE {1} ", Nametable, sentenciaVariables); List <ProcedureModel> procedureModels = new List <ProcedureModel>(); foreach (var prop in typeof(T).GetProperties()) { PropertyInfo propertyInfo = Element.GetType().GetProperty(prop.Name); ColumnDB hiddenAttribute = (ColumnDB)propertyInfo.GetCustomAttribute(typeof(ColumnDB)); if (hiddenAttribute.IsMapped && hiddenAttribute.IsKey) { procedureModels.Add(new ProcedureModel { Namefield = tableDefinifiton.IsMappedByLabels ? hiddenAttribute.Name : prop.Name, value = propertyInfo.GetValue(Element) }); } } dBConnection.StartDelete(Statement, procedureModels); result = true; } else { throw new Exceptions.DarkException(string.Format("Delete action is not active")); } return(result); }