public static void AppendSoftDeleteSql([NotNull] SqlSerializationContext context, [NotNull] ICollection <int> objs) { if (objs == null || objs.Count == 0) { throw new ArgumentException("Collection cannot be empty", "objs"); } var objIDs = SqlUtils.WrapArc(objs.ConcatComma()); context.Write(UpdateSqlHeader + " sysState = 1 WHERE ID IN " + objIDs); context.Next(); if (typeof(TDataObject).IsAssignableFrom(typeof(TblUsers))) { context.Write(DataObjectSqlSerializer <TblPermissions> .UpdateSqlHeader + "sysState = 1 WHERE " + DataObject.Schema.OwnerUserRef.PropertyName + " IN " + objIDs); context.Next(); } else if (typeof(TDataObject).IsAssignableFrom(typeof(TblGroups))) { context.Write(DataObjectSqlSerializer <TblPermissions> .UpdateSqlHeader + "sysState = 1 WHERE " + DataObject.Schema.OwnerGroupRef.PropertyName + " IN " + objIDs); context.Next(); } foreach (var i in objs) { LookupHelper.AppendMMUnlinkAllSqlSafe <TDataObject>(context, i); context.Next(); } }
public static void AppendSoftDeleteSql([NotNull] SqlSerializationContext context, int id) { context.Write(UpdateSqlHeader); context.Write(" sysState = 1 WHERE ID = "); context.Write(id.ToString()); context.Next(); if (typeof(TDataObject).IsAssignableFrom(typeof(TblUsers))) { context.Write(DataObjectSqlSerializer <TblPermissions> .UpdateSqlHeader + "sysState = 1 WHERE " + DataObject.Schema.OwnerUserRef.PropertyName + " = " + id); context.Next(); } else if (typeof(TDataObject).IsAssignableFrom(typeof(TblGroups))) { context.Write(DataObjectSqlSerializer <TblPermissions> .UpdateSqlHeader + "sysState = 1 WHERE " + DataObject.Schema.OwnerGroupRef.PropertyName + " = " + id); context.Next(); } LookupHelper.AppendMMUnlinkAllSqlSafe <TDataObject>(context, id); }
public static void AppendInsertSql([NotNull] SqlSerializationContext context, [NotNull] TDataObject obj) { context.Write(InsertSqlHeader); context.Write( SqlUtils.WrapArc( (from ci in DataObjectInfo <TDataObject> .Columns where ci.Name != "ID" select context.AddParameter(ci.Storage.GetValue(obj)) ).ConcatComma() ) ); context.Next(); context.Write("select SCOPE_IDENTITY()"); }
public static void AppendMMUnlinkAllSqlSafe <TDataObject>([NotNull] SqlSerializationContext context, int id) where TDataObject : IIntKeyedDataObject { if (id <= 0) { throw new DMError("Invalid ID: " + id); } Dictionary <Type, ManyToManyLookupInfo> lookups; if (__MMInfos.TryGetValue(typeof(TDataObject), out lookups)) { foreach (var vs in lookups.Values) { context.Write("UPDATE [{0}] SET sysState = 1 WHERE {1} = {2}", vs.TableName, vs.RefColumnName, id); context.Next(); } } }