示例#1
0
        public virtual string GetVisaLink()
        {
            var schemaColumns       = Entity.Schema.Columns;
            var referenceSchemaName = string.Empty;
            var referenceSchemaUId  = Guid.Empty;
            EntitySchemaColumnCollection referenceSchemaColumns = null;

            foreach (var column in schemaColumns)
            {
                if (!column.IsInherited && column.DataValueType.IsLookup)
                {
                    referenceSchemaName    = column.ReferenceSchema.Name;
                    referenceSchemaUId     = column.ReferenceSchema.UId;
                    referenceSchemaColumns = column.ReferenceSchema.Columns;
                }
            }
            var mainEntityId   = Entity.GetTypedColumnValue <Guid>(referenceSchemaName + "Id");
            var typeColumnUId  = GetSchemaTypeColumnUId(referenceSchemaUId);
            var cardSchemaName = string.Concat(referenceSchemaName, "Page");
            var cardSchemaUId  = Guid.Empty;

            if (!typeColumnUId.Equals(Guid.Empty))
            {
                var typeColumnName  = referenceSchemaColumns.GetByUId(typeColumnUId).Name + ".Id";
                var typeColumnValue = GetSchemaTypeColumnValue(referenceSchemaName, typeColumnName, mainEntityId);
                cardSchemaUId  = GetCardSchemaUId(typeColumnValue, SysModuleEntityId);
                cardSchemaName = GetCardSchemaName(cardSchemaUId);
            }
            else
            {
                cardSchemaUId  = GetCardSchemaUId(Guid.Empty, SysModuleEntityId);
                cardSchemaName = GetCardSchemaName(cardSchemaUId);
            }
            var    sectionNameUId = GetSectionName(SysModuleEntityId);
            var    sectionName    = GetCardSchemaName(sectionNameUId);
            var    template       = string.Empty;
            var    formatStr      = string.Empty;
            string baseUrl        = Terrasoft.Web.Common.WebUtilities
                                    .GetBaseApplicationUrl(Terrasoft.Web.Http.Abstractions.HttpContext.Current.Request);

            if (sectionName.Contains("V2"))
            {
                template  = "{3}/Nui/ViewModule.aspx#SectionModuleV2/{2}/{0}/edit/{1}";
                formatStr = string.Format(template, cardSchemaName, mainEntityId, sectionName, baseUrl);
            }
            else
            {
                template  = "{2}/Nui/ViewModule.aspx#CardModule/{0}/view/{1}";
                formatStr = string.Format(template, cardSchemaName, mainEntityId, baseUrl);
            };
            return(formatStr);
        }
示例#2
0
        /// <summary>
        /// Returns collection of column names.
        /// </summary>
        /// <param name="entitySchema">Entity which has columns.</param>
        /// <param name="columnsUId">Collection of column UIds.</param>
        /// <returns>Collection of column names.</returns>
        private List <string> GetColumnsNameByUIds(EntitySchema entitySchema, List <Guid> columnsUId)
        {
            var columnsName = new List <string>();
            EntitySchemaColumnCollection columns = entitySchema.Columns;

            foreach (Guid columnUId in columnsUId)
            {
                EntitySchemaColumn column = columns.GetByUId(columnUId);
                var columnName            = column.Name;
                if (column.IsCascade || excludedColumns.Contains(columnName))
                {
                    continue;
                }
                columnsName.Add(columnName);
            }
            return(columnsName);
        }