public static XDocument ToXDocument(QueryHelpEntity entity) { return(new XDocument( new XDeclaration("1.0", "utf-8", "yes"), new XElement(_Query, new XAttribute(_Key, entity.Query.Key), new XAttribute(_Culture, entity.Culture.Name), entity.Description.HasText() ? new XElement(_Description, entity.Description) : null !, entity.Columns.Any() ? new XElement(_Columns, entity.Columns.Select(c => new XElement(_Column, new XAttribute(_Name, c.ColumnName), c.Description !)) ) : null ! ) )); }
static void AsignTranslatedQuery(QueryHelpEntity query, QueryHelpEntity fromQuery) { HashSet <string> toTranslate = new HashSet <string>(); if (!query.Description.HasText() && fromQuery.Description.HasText()) { toTranslate.Add(fromQuery.Description); } foreach (var fromProp in fromQuery.Columns) { var prop = query.Columns.SingleOrDefaultEx(p => p.ColumnName == fromProp.ColumnName); if (prop == null || prop.Description.HasText()) { toTranslate.Add(fromProp.Description); } } Dictionary <string, string> dic = Translate(toTranslate, fromQuery.Culture.Name, query.Culture.Name); if (!query.Description.HasText() && fromQuery.Description.HasText()) { query.Description = dic.GetOrThrow(fromQuery.Description); } foreach (var fromProp in fromQuery.Columns) { var col = query.Columns.SingleOrDefaultEx(p => p.ColumnName == fromProp.ColumnName); if (col == null) { query.Columns.Add(new QueryColumnHelpEmbedded { ColumnName = fromProp.ColumnName, Description = dic.GetOrThrow(fromProp.Description) }); } else if (!col.Description.HasText()) { col.Description = dic.GetOrThrow(fromProp.Description); } } query.Execute(QueryHelpOperation.Save); }
public QueryHelp(object queryName, CultureInfo ci, QueryHelpEntity entity) { QueryName = queryName; Culture = ci; Info = HelpGenerator.GetQueryHelp(DynamicQueryManager.Current.GetQuery(queryName).Core.Value); Columns = DynamicQueryManager.Current.GetQuery(queryName).Core.Value.StaticColumns.ToDictionary( cf => cf.Name, cf => new QueryColumnHelp(cf, cf.DisplayName(), HelpGenerator.GetQueryColumnHelp(cf))); if (entity != null) { HasEntity = true; UserDescription = entity.Description; foreach (var tranColumn in entity.Columns) { Columns.GetOrThrow(tranColumn.ColumnName).UserDescription = tranColumn.Description; } } Entity = new Lazy <QueryHelpEntity>(() => HelpLogic.GlobalContext(() => { if (entity == null) { entity = new QueryHelpEntity { Culture = this.Culture.ToCultureInfoEntity(), Query = QueryLogic.GetQueryEntity(this.QueryName), } } ; entity.Columns.AddRange( DynamicQueryManager.Current.GetQuery(this.QueryName).Core.Value.StaticColumns.Select(a => a.Name) .Except(entity.Columns.Select(a => a.ColumnName)) .Select(pr => new QueryColumnHelpEmbedded { ColumnName = pr, Description = null, })); return(entity); })); }