示例#1
0
        public virtual Entity GetFetchedReferenceEntity()
        {
            var                          sysModuleVisaSchema = UserConnection.EntitySchemaManager.FindInstanceByName("SysModuleVisa");
            Entity                       sysModuleVisaEntity = sysModuleVisaSchema.CreateEntity(UserConnection);
            var                          columnName          = "MasterColumnUId";
            EntitySchemaColumn           referenceColumn;
            EntitySchemaColumnCollection columns = Entity.Schema.Columns;

            if (sysModuleVisaEntity.FetchFromDB("VisaSchemaUId", Entity.Schema.UId, new[] { columnName }))
            {
                var masterColumnUId = sysModuleVisaEntity.GetTypedColumnValue <Guid>(columnName);
                referenceColumn = columns.FirstOrDefault(c => c.UId == masterColumnUId);
            }
            else
            {
                var entityName = Entity.SchemaName.Replace("Visa", "");
                referenceColumn = columns.FirstOrDefault(c => c.ReferenceSchema != null &&
                                                         c.ReferenceSchema.Name == entityName);
            }
            if (referenceColumn != null)
            {
                var    entitySchema = UserConnection.EntitySchemaManager.FindInstanceByName(referenceColumn.ReferenceSchema.Name);
                Entity entity       = entitySchema.CreateEntity(UserConnection);
                entity.FetchPrimaryInfoFromDB("Id", Entity.GetTypedColumnValue <Guid>(referenceColumn.ColumnValueName));
                return(entity);
            }
            return(null);
        }
 public LocalMessageHelper(Entity entity, UserConnection userConnection, EntityChangeType changeType)
 {
     _entity              = entity;
     _entity.UseLazyLoad  = true;
     _userConnection      = userConnection;
     _entitySchemaColumns = _entity.Schema.Columns;
     _changeType          = changeType;
     SetCurrentUser();
 }
示例#3
0
        private Dictionary <string, string> GetQueryColumns(EntitySchemaColumnCollection columns)
        {
            var queryColumns = new Dictionary <string, string>();

            foreach (EntitySchemaColumn column in columns)
            {
                queryColumns[column.Name] = column.Name;
            }
            return(queryColumns);
        }
示例#4
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);
        }
        /// <summary>
        /// Gets entity key.
        /// </summary>
        /// <param name="entity">Entity.</param>
        /// <returns>Entity key.</returns>
        private string GetEntityKey(Entity entity, IEnumerable <string> columnsNames)
        {
            StringBuilder sb = new StringBuilder();
            EntitySchemaColumnCollection schemaColumns = entity.Schema.Columns;

            foreach (string columnName in columnsNames)
            {
                EntitySchemaColumn schemaColumn = schemaColumns.GetByName(columnName);
                object             columnValue  = entity.GetColumnValue(schemaColumn);
                sb.Append(columnValue);
            }
            return(sb.ToString());
        }
示例#6
0
        /// <summary>
        /// Fills column value of the entity.
        /// </summary>
        /// <param name="entity">Entity.</param>
        /// <param name="columnName">Column name.</param>
        /// <param name="value">Column value.</param>
        public static void SpecifyActivityLookupColumnValue(Entity entity, string columnName, Guid value)
        {
            if (value.IsEmpty())
            {
                return;
            }
            EntitySchema activitySchema                     = entity.Schema;
            EntitySchemaColumnCollection columns            = activitySchema.Columns;
            EntitySchemaColumn           entitySchemaColumn = columns.FindByName(columnName);

            if (entitySchemaColumn != null)
            {
                entity.SetColumnValue(entitySchemaColumn, value);
            }
        }
        /// <inheritdoc />
        public override string GetExecutionData()
        {
            CoreEntitySchema entitySchema = UserConnection.EntitySchemaManager.GetInstanceByUId(ObjectSchemaId);
            var defaultColumnValues       = new Dictionary <string, object>();

            foreach (var columnValue in RecordColumnValues.Values)
            {
                var column = entitySchema.GetSchemaColumnByMetaPath(columnValue.Key);
                if ((column.DataValueType is LookupDataValueType || column.DataValueType is MultiLookupDataValueType) &&
                    ((Guid)columnValue.Value).IsEmpty())
                {
                    continue;
                }
                defaultColumnValues[column.Name] = SerializeEntityColumn(column, columnValue.Value);
            }
            var editMode = (RecordEditMode)Enum.ToObject(typeof(RecordEditMode), EditMode);

            if (editMode == RecordEditMode.New)
            {
                EntitySchemaColumnCollection columns = entitySchema.Columns;
                defaultColumnValues["ProcessListeners"] =
                    SerializeEntityColumn(columns.GetByName("ProcessListeners"), (int)EntityChangeType.Inserted);
            }
            string actionName        = GetActionName();
            string informationOnStep = LocalizableString.IsNullOrEmpty(InformationOnStep)
                                ? GetParameterValue("InformationOnStep")?.ToString() ?? string.Empty
                                : InformationOnStep.Value;

            return(SerializeToString(new {
                processId = ProcessUserTaskUtilities.GetParentProcessId(Owner),
                procElUId = UId,
                name = Name,
                isProcessExecutedBySignal = ProcessUserTaskUtilities.GetIsProcessExecutedBySignal(Owner),
                processName = Owner.Name,
                action = actionName,
                entitySchemaName = entitySchema.Name,
                recordId = RecordId,
                activityRecordId = CurrentActivityId,
                recommendation = GetActivityTitle(),
                informationOnStep,
                defaultValues = defaultColumnValues.Count > 0 ? defaultColumnValues : null,
                executionContext = ExecutionContext,
                completeExecution = actionName == "add",
                pageTypeId = PageTypeUId == Guid.Empty ? string.Empty : PageTypeUId.ToString(),
                nextProcElUId = "nextProcElUIdValue"
            }));
        }
示例#8
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);
        }
        private Select WrapSelect(Select sourceSelect)
        {
            EntitySchemaColumnCollection visaColumns = _baseVisaSchema.Columns;
            string alias  = "InternalSelect";
            Select select =
                new Select(_userConnection)
                .Column(alias, "Id")
                .Column(alias, "CreatedOn")
                .Column(alias, "CreatedById")
                .Column(alias, "ModifiedOn")
                .Column(alias, "ModifiedById")
                .Column(alias, "ProcessListeners")
                .Column(alias, "Objective")
                .Column(alias, "VisaOwnerId")
                .Column(alias, "IsAllowedToDelegate")
                .Column(alias, "DelegatedFromId")
                .Column(alias, "StatusId")
                .Column(alias, "SetById")
                .Column(alias, "SetDate")
                .Column(alias, "IsCanceled")
                .Column(alias, "Comment")
                .Column(alias, "VisaSchemaName")
                .Column(alias, "Title")
                .Column(alias, "VisaObjectId")
                .Column(alias, "VisaSchemaTypeId")
                .Column(alias, "VisaTypeName")
                .Column(alias, "VisaSchemaCaption")
                .Column(alias, "SchemaName")
                .Column(alias, "SourceSchemaName")
                .Column("CreatedBy", "Name").As(visaColumns.FindByName("CreatedBy").DisplayColumnValueName)
                .Column("VisaStatus", "Name").As(visaColumns.FindByName("Status").DisplayColumnValueName)
                .From(sourceSelect).As(alias)
                .LeftOuterJoin("Contact").As("CreatedBy").On("CreatedBy", "Id").IsEqual(alias, "CreatedById")
                .LeftOuterJoin("VisaStatus").On("VisaStatus", "Id").IsEqual(alias, "StatusId")
                .OrderBy(OrderDirectionStrict.Descending, alias, "ModifiedOn") as Select;

            return(select);
        }
        protected EntitySchemaColumn GetColumnByName(string columnName)
        {
            EntitySchemaColumnCollection columns = _rootSchema.Columns;

            return(columns.FindByName(columnName) ?? columns.FindByColumnValueName(columnName));
        }
示例#11
0
        private EntitySchemaColumn GetSchemaColumnByName(string columnName, EntitySchema schema)
        {
            EntitySchemaColumnCollection columns = schema.Columns;

            return(columns.FindByName(columnName) ?? columns.FindByColumnValueName(columnName));
        }