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