Exemplo n.º 1
0
 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 !
                             )
                ));
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
            }));
        }