private object GetParameterLookupValue(ProcessSchemaParameter parameter) {
			var value = GetParameterValue(parameter);
			var primaryColumnValue = (Guid?)value;
			if (primaryColumnValue?.IsEmpty() != false) {
				return null;
			}
			var displayValue = string.Empty;
			if (parameter.ParentMetaSchema == null) {
				parameter.ParentMetaSchema = Owner.Schema;
				Log.Warn("[PreconfiguredPageUserTask]. Parameter metadata modified at runtime.");
			}
			EntitySchema referenceSchema = parameter.ReferenceSchema;
			if (referenceSchema.PrimaryDisplayColumn != null) {
				Entity entity = referenceSchema.CreateEntity(UserConnection);
				entity.UseAdminRights = false;
				var columns = new Collection<CoreEntitySchemaColumn>() {
					referenceSchema.PrimaryDisplayColumn
				};
				entity.FetchFromDB(referenceSchema.PrimaryColumn, primaryColumnValue.Value, columns);
				displayValue = entity.PrimaryDisplayColumnValue;
			}
			return new LookupColumnValue {
				Value = primaryColumnValue.Value.ToString(),
				DisplayValue = displayValue
			};
		}
Exemplo n.º 2
0
        private object GetParameterLookupValue(ProcessSchemaParameter parameter,
                                               IReadOnlyDictionary <Guid, Guid> sysModuleEntityPageType)
        {
            object value = GetParameterValue(parameter);
            var    primaryColumnValue = (Guid?)value;

            if (primaryColumnValue?.IsEmpty() != false)
            {
                return(null);
            }
            if (parameter.ParentMetaSchema == null)
            {
                parameter.ParentMetaSchema = Owner.Schema;
                Log.Warn("[PreconfiguredPageUserTask]. Parameter metadata modified at runtime.");
            }
            EntitySchema referenceSchema = parameter.ReferenceSchema;

            if (referenceSchema.PrimaryDisplayColumn == null)
            {
                return(new {
                    value = primaryColumnValue.Value.ToString()
                });
            }
            Entity entity = referenceSchema.CreateEntity(UserConnection);

            entity.UseAdminRights = false;
            var columnsToFetch = new Collection <CoreEntitySchemaColumn>()
            {
                referenceSchema.PrimaryColumn,
                referenceSchema.PrimaryDisplayColumn,
            };
            var hasPageTypeColumn = sysModuleEntityPageType.ContainsKey(referenceSchema.UId);
            CoreEntitySchemaColumn pageTypeColumn = null;

            if (hasPageTypeColumn)
            {
                Guid typeColumnUId = sysModuleEntityPageType[referenceSchema.UId];
                pageTypeColumn = referenceSchema.Columns.FindByUId(typeColumnUId);
                if (pageTypeColumn != null)
                {
                    columnsToFetch.Add(pageTypeColumn);
                }
            }
            entity.FetchFromDB(referenceSchema.PrimaryColumn, primaryColumnValue.Value, columnsToFetch, false);
            ExpandoObject lookupValue = GetClientLookupLinkValue(entity, pageTypeColumn);

            return(lookupValue);
        }
        /// <summary>
        /// Creates entity of the Activity.
        /// </summary>
        /// <returns>A new instance of the entity.</returns>
        public virtual Entity CreateActivity()
        {
            CoreEntitySchema activitySchema = GetActivityEntitySchema();
            Entity           activity       = activitySchema.CreateEntity(UserConnection);

            activity.UseAdminRights = false;
            string activityTitle = GetActivityTitle();

            activity.SetColumnValue("Title", activityTitle);
            activity.SetDefColumnValues();
            foreach (KeyValuePair <string, object> columnValue in RecordColumnValues.Values)
            {
                CoreEntitySchemaColumn column = activitySchema.GetSchemaColumnByMetaPath(columnValue.Key);
                if ((column.DataValueType is LookupDataValueType || column.DataValueType is MultiLookupDataValueType) &&
                    ((Guid)columnValue.Value).IsEmpty())
                {
                    continue;
                }
                activity.SetColumnValue(column, columnValue.Value);
            }
            var columnDocument = activity.Schema.Columns.FindByName("Document");

            if (columnDocument != null)
            {
                object document = activity.GetColumnValue(columnDocument);
                if (document != null)
                {
                    Document = (Guid)document;
                }
            }
            SpecifyActivityColumnValues(activity);
            CurrentActivityId   = activity.PrimaryColumnValue;
            IsActivityCompleted = false;
            PageTypeUId         = GetActivityType();
            return(activity);
        }
        /// <summary>
        /// Returns entity of the accompanying Activity.
        /// </summary>
        /// <returns>A new instance of the entity.</returns>
        public virtual Entity CreateAccompaningActivity()
        {
            CoreEntitySchema activitySchema = GetActivityEntitySchema();
            Entity           activity       = activitySchema.CreateEntity(UserConnection);

            activity.UseAdminRights = false;
            string title = GetActivityTitle();

            activity.SetColumnValue("Title", title);
            activity.SetDefColumnValues();
            activity.SetColumnValue("TypeId", ActivityConsts.TaskTypeUId);
            DateTime startDate = GetDateTime(UserConnection.CurrentUser.GetCurrentDateTime(), StartIn,
                                             (ProcessDurationPeriod)StartInPeriod);

            activity.SetColumnValue("StartDate", startDate);
            DateTime dateTime = GetDateTime(startDate, Duration, (ProcessDurationPeriod)DurationPeriod);

            activity.SetColumnValue("DueDate", dateTime);
            activity.SetColumnValue("ActivityCategoryId", ActivityCategory);
            activity.SetColumnValue("ShowInScheduler", ShowInScheduler);
            if (OwnerId != Guid.Empty)
            {
                activity.SetColumnValue("OwnerId", OwnerId);
                if (RemindBefore != 0)
                {
                    activity.SetColumnValue("RemindToOwner", true);
                    dateTime = GetDateTime(startDate, -1 * RemindBefore, (ProcessDurationPeriod)RemindBeforePeriod);
                    activity.SetColumnValue("RemindToOwnerDate", dateTime);
                }
            }
            SpecifyActivityColumnValues(activity);
            activity.PrimaryColumnValue = Guid.NewGuid();
            IsActivityCompleted         = false;
            CurrentActivityId           = activity.PrimaryColumnValue;
            return(activity);
        }