Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 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()");
 }
Ejemplo n.º 4
0
        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();
                }
            }
        }