public static SqlQuery Build(QueryDef def, BizForm form, IEnumerable <AttributeSort> sortAttrs, Guid userId, IDataContext dataContext) { var factory = AppServiceProviderFactoryProvider.GetFactory(); using (var provider = factory.Create(dataContext)) { var sqb = new SqlQueryBuilderTool(provider, dataContext, userId); return(sqb.Build(def, form, sortAttrs)); } /*var query = SqlQueryBuilder.Build(dataContext, def, userId); * try * { * query.AddAttribute("&Id"); * AddFormAttributes(query, query.Source, form); * if (sortAttrs != null) * foreach (var attr in sortAttrs) * query.AddOrderAttribute(attr.AttributeId, attr.Asc); * else * AddFormSortOrders(query, query.Source, form); * * return query; * } * catch * { * query.Dispose(); * throw; * }*/ }
public static SqlQuery Build(BizForm form, Guid userId, IDataContext dataContext) { var factory = AppServiceProviderFactoryProvider.GetFactory(); using (var provider = factory.Create(dataContext)) { var sqb = new SqlQueryBuilderTool(provider, dataContext, userId); return(sqb.Build(form)); } /*if (form.DocumentDefId == null) * throw new ApplicationException("Не могу создать запрос! Форма не связана с документом!"); * * var query = new SqlQuery(dataContext, (Guid)form.DocumentDefId, userId); * try * { * query.AddAttribute("&Id"); * AddFormAttributes(query, query.Source, form); * AddFormSortOrders(query, query.Source, form); * * return query; * } * catch * { * query.Dispose(); * throw; * }*/ }
/*public static SqlQuery Build(Doc doc, IDataContext dataContext = null) * { * var query = new SqlQuery(doc.DocDef.Id, dataContext); * try * { * AddDocConditions(query, query.Source, doc); * * return query; * } * catch * { * query.Dispose(); * throw; * } * }*/ /*public static SqlQuery Build(DocDef docDef, IDataContext dataContext = null) * { * var query = new SqlQuery(dataContext, docDef); * try * { * AddDocDefAttributes(query, query.Source, docDef); * * return query; * } * catch * { * query.Dispose(); * throw; * } * }*/ public static SqlQuery Build(BizForm form, IEnumerable <Guid> docIds, IEnumerable <AttributeSort> sortAttrs, Guid userId, IDataContext dataContext) { var factory = AppServiceProviderFactoryProvider.GetFactory(); using (var provider = factory.Create(dataContext)) { var sqb = new SqlQueryBuilderTool(provider, dataContext, userId); return(sqb.Build(form, docIds, sortAttrs)); } /*if (form.DocumentDefId == null) * throw new ApplicationException("Не могу создать запрос! Форма не связана с документом!"); * * var query = new SqlQuery(dataContext, (Guid) form.DocumentDefId, userId); * try * { * query.AddAttribute("&Id"); * AddFormAttributes(query, query.Source, form); * query.AddCondition(ExpressionOperation.And, query.Source.GetDocDef(), "&Id", ConditionOperation.In, * docIds.Cast<object>()); * if (sortAttrs != null) * foreach (var attr in sortAttrs) * query.AddOrderAttribute(attr.AttributeId, attr.Asc); * else * AddFormSortOrders(query, query.Source, form); * * return query; * } * catch * { * query.Dispose(); * throw; * }*/ }
public static SqlQuery BuildAttrList(BizControl form, Guid docId, Guid docDefId, Guid attrDefId, BizForm filter, IEnumerable <AttributeSort> sortAttrs, Guid userId, IDataContext dataContext) { var factory = AppServiceProviderFactoryProvider.GetFactory(); using (var provider = factory.Create(dataContext)) { var sqb = new SqlQueryBuilderTool(provider, dataContext, userId); return(sqb.BuildAttrList(form, docId, docDefId, attrDefId, filter, sortAttrs)); } /*var query = new SqlQuery(docDefId, docId, attrDefId, dataContext); * try * { * query.AddAttribute("&Id"); * AddFormAttributes(query, query.Source, form); * if (filter != null) * AddFormConditions(query, query.Source, filter); * * if (sortAttrs != null) * foreach (var attr in sortAttrs) * { * query.AddOrderAttribute(attr.AttributeId, attr.Asc); * } * else * AddFormSortOrders(query, query.Source, form); * * return query; * } * catch * { * query.Dispose(); * throw; * }*/ }
public SqlQueryReader Create(QueryDef def) { var sqb = new SqlQueryBuilderTool(Provider, DataContext); var query = sqb.Build(def); return(Create(query)); }
public static SqlQuery Build(IDataContext dataContext, QueryDef def) { if (def.Source == null) { throw new PropertyConstraintException("QueryDef Source not defined!"); } var factory = AppServiceProviderFactoryProvider.GetFactory(); using (var provider = factory.Create(dataContext)) { var bldr = new SqlQueryBuilderTool(provider, dataContext, def.UserId); return(bldr.Build(def)); } /*using (var defRepo = new DocDefRepository(dataContext)) * { * var docDef = def.Source.DocDefId == Guid.Empty * ? defRepo.DocDefByName(def.Source.DocDefName) * : defRepo.DocDefById(def.Source.DocDefId); * * var query = new SqlQuery(dataContext, docDef, def.Alias, def.UserId) * { * DocumentId = def.DocumentId, * ListAttrDefId = def.ListAttrId * }; * try * { * foreach (var source in def.Sources) * { * BuildSource(query, source, defRepo, dataContext); * } * foreach (var join in def.Joins) * { * BuildJoin(query, join, docDef, dataContext); * } * foreach (var condition in def.WhereConditions) * { * BuildCondition(query, condition, docDef, null); * } * foreach (var order in def.OrderAttributes) * { * query.AddOrderAttribute(order); * } * return query; * } * catch * { * query.Dispose(); * throw; * } * }*/ }
/* public static SqlQuery Build(Guid docDefId, Guid docStateId, BizForm filter, IEnumerable<AttributeSort> sortAttrs, IDataContext dataContext = null) * { * var query = new SqlQuery(docDefId, dataContext); * try * { * query.AddAttribute("&Id"); * query.AddCondition(ExpressionOperation.And, query.Source.GetDocDef(), "&State", ConditionOperation.Equal, * docStateId); * if (filter != null) * { * AddFormAttributes(query, query.Source, filter); * AddFormConditions(query, query.Source, filter); * } * else * AddDocDefAttributes(query, query.Source, query.Source.GetDocDef()); * * if (sortAttrs != null) * foreach (var attr in sortAttrs) * { * query.AddOrderAttribute(attr.AttributeId, attr.Asc); * } * * return query; * } * catch * { * query.Dispose(); * throw; * } * }*/ /*[Obsolete("Не завершенный метод!")] * private static void AddDocDefAttributes(SqlQuery query, SqlQuerySource source, DocDef docDef) * { * foreach (var attrDef in docDef.Attributes) * { * if (attrDef.Type.Id == (short) CissaDataType.Doc || attrDef.Type.Id == (short)CissaDataType.DocList) * { * // var slave = query.JoinSource(source, attrDef.DocDefType.Id, SqlSourceJoinType.Inner, attrDef.Id); * * query.AddAttribute(source, attrDef.Id); * } * else * { * query.AddAttribute(source, attrDef.Id); * } * } * }*/ public static SqlQuery Build(BizForm form, Guid?docStateId, BizForm filter, IEnumerable <AttributeSort> sortAttrs, Guid userId, IDataContext dataContext) { var factory = AppServiceProviderFactoryProvider.GetFactory(); using (var provider = factory.Create(dataContext)) { var sqb = new SqlQueryBuilderTool(provider, dataContext, userId); return(sqb.Build(form, docStateId, filter, sortAttrs)); } /*var query = new SqlQuery(dataContext, form.DocumentDefId ?? Guid.Empty, userId); * try * { * query.AddAttribute("&Id"); * if (docStateId != null) * query.AddCondition(ExpressionOperation.And, query.Source.GetDocDef(), "&State", * ConditionOperation.Equal, * (Guid) docStateId); * AddFormAttributes(query, query.Source, form); * if (filter != null) * AddFormConditions(query, query.Source, filter); * * if (sortAttrs != null) * foreach (var attr in sortAttrs) * query.AddOrderAttribute(attr.AttributeId, attr.Asc); * else * AddFormSortOrders(query, query.Source, form); * * return query; * } * catch * { * query.Dispose(); * throw; * }*/ }