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); }
/// <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); }