internal void Load(ObjectCall call) { var sb = new StringBuilder(SiteObjectsSql); if ((call.TypeCode == "OF" || call.TypeCode == "O") && !string.IsNullOrEmpty(Info.PageId)) { sb.Append(" and lower(obj.object_name) = N'"); sb.Append(call.ObjectName); sb.Append("'"); sb.Append(" and (obj.page_id = "); sb.Append(Info.PageId); sb.Append(" or obj.page_id is null and lower(pt.template_name) = N'"); sb.Append(call.TemplateName); sb.Append("'"); sb.Append(" and obj.object_name not in (select object_name from object where page_id = "); sb.Append(Info.PageId); sb.Append("))"); } else { sb.Append(" and lower(obj.object_name) = N'"); sb.Append(call.ObjectName); sb.Append("'"); sb.Append(" and obj.page_id is null"); sb.Append(" and lower(pt.template_name) = N'"); sb.Append(call.TemplateName); sb.Append("'"); } Info.Controller.Cnn.GetData(sb.ToString(), Data); }
public static string GetAdditionalCallFilter(ObjectCall call) { switch (call.TypeCode) { case "TOF": case "TO": return(" and [page_id] is null "); case "OF": case "O": return(" and [page_id] is not null "); } return(string.Empty); }
internal bool HasAlreadyLoaded(ObjectCall call) { var dvLoadedObjects = new DataView(Data); var dvObjects = new DataView(Info.Objects); var filter = GetCallFilter(call); dvObjects.RowFilter = filter; dvLoadedObjects.RowFilter = filter; if (dvObjects.Count == 2) { dvLoadedObjects.RowFilter = dvLoadedObjects.RowFilter + GetAdditionalCallFilter(call); } var result = dvLoadedObjects.Count; dvObjects.Dispose(); dvLoadedObjects.Dispose(); return(result > 0); }
public static string GetCallFilter(ObjectCall call) { var sb = new StringBuilder(); sb.AppendFormat("[template_name] = '{0}' and [object_name] = '{1}' ", call.TemplateName, call.ObjectName); if (call.TypeCode == "TOF" || call.TypeCode == "OF") { sb.AppendFormat(" and [format_name] = '{0}' ", call.FormatName); } else if (call.TypeCode == "TO" || call.TypeCode == "O") { sb.Append(" and [default_format_id] = [current_format_id] "); } else { throw new ArgumentException("Unknown call type - " + call.TypeCode); } return(sb.ToString()); }