/// <summary>
 /// Currents the record for sender selector.
 /// </summary>
 /// <param name="sender">
 /// The sender.
 /// </param>
 /// <param name="selector">
 /// The selector.
 /// </param>
 /// <returns>
 /// The <see cref="string"/>.
 /// </returns>
 public string CurrentRecordForSenderSelector(object sender, UPRecordSelector selector)
 {
     return(this.ContextRecordForSenderInfoAreaIdLinkId(
                sender,
                selector.LinkTargetInfoAreaId,
                selector.LinklinkId));
 }
        /// <inheritdoc/>
        public string ContextRecordForEditField(UPMEditField field)
        {
            var editField = field as UPMParticipantsRecordSelectorEditField;

            if (editField.CurrentSelector.DisableLinkOption && editField.CurrentSelector.LinkIsDisabled)
            {
                return(null);
            }

            if (editField.CurrentSelector?.RecordLinkInfoAreaIds?.Count > 0)
            {
                UPRecordSelector selector = editField.CurrentSelector;
                for (int i = 0; i < selector.RecordLinkInfoAreaIds.Count; i++)
                {
                    string linkInfoAreaId = selector.RecordLinkInfoAreaIds[i];
                    int    linkId         = selector.RecordLinkLinkIds[i];
                    string rid            = UPSelector.StaticSelectorContextDelegate.SenderLinkForInfoAreaIdLinkId(this, linkInfoAreaId, linkId);
                    if (rid.Length > 8)
                    {
                        return(rid);
                    }
                }
            }

            return(null);
        }
        private UPMGroup GroupFromParticipantControl()
        {
            UPMRepeatableEditGroup repeatableEditGroup = new UPMRepeatableEditGroup(this.TabIdentifierForRecordIdentification(this.LinkRecordIdentification));

            repeatableEditGroup.LabelText = this.TabLabel;
            this.selectorArray            = new List <UPRecordSelector>();

            for (int fieldNumber = 0; fieldNumber < this.TabConfig.NumberOfFields; fieldNumber++)
            {
                UPConfigFieldControlField configFieldControlField = this.TabConfig.Fields[fieldNumber];
                var selector = configFieldControlField.Attributes.Selector;

                if (selector != null)
                {
                    var recordSelector = new UPRecordSelector("KP", null, -1, selector, null, this.ParticipantsField);
                    this.selectorArray.Add(recordSelector);
                }
            }

            if (this.selectorArray.Count < 1)
            {
                repeatableEditGroup.AddingEnabled = false;
                if (this.ParticipantsControl.Participants.Count < 1)
                {
                    this.Group           = null;
                    this.ControllerState = GroupModelControllerState.Empty;
                    return(null);
                }
            }
            else
            {
                repeatableEditGroup.AddGroupLabelText = LocalizedString.TextAddNewGroup;
                repeatableEditGroup.AddingEnabled     = this.AddRecordEnabled;
            }

            foreach (UPCRMLinkParticipant participant in this.ParticipantsControl.Participants)
            {
                string           recordIdentification  = participant.RecordIdentification;
                IIdentifier      participantIdentifier = new RecordIdentifier(recordIdentification);
                UPMStandardGroup group = new UPMStandardGroup(participantIdentifier);
                string           num   = participant.Options.ValueOrDefault("must") as string;
                group.Deletable = !participant.MayNotBeDeleted && this.DeleteRecordEnabled && num.ToInt() == 0;
                UPMDependsEditField editField = this.CreateEditFieldWithParticipantIdentifierEditGroup(participantIdentifier, group);
                editField.MainField.FieldValue = participant.Name;
                ((UPMParticipantsRecordSelectorEditField)editField.MainField).Participant = participant;
                editField.DependField.FieldValue  = participant.AcceptanceText;
                editField.DependField2.FieldValue = participant.RequirementText;
                bool editOfflineRecord = ConfigurationUnitStore.DefaultStore.ConfigValueIsSetDefaultValue("RecordSelect.EditOfflineRecord", false);
                editField.Deletable = !participant.IsOfflineEmptyParticipant || editOfflineRecord;
                group.AddField(editField);
                repeatableEditGroup.AddChild(group);
                this.AddGroupForKey(group, participant.Key);
            }

            this.Group           = repeatableEditGroup;
            this.ControllerState = GroupModelControllerState.Finished;
            return(repeatableEditGroup);
        }
        /// <summary>
        /// Contexts the record for sender selector.
        /// </summary>
        /// <param name="sender">
        /// The sender.
        /// </param>
        /// <param name="selector">
        /// The selector.
        /// </param>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        public string ContextRecordForSenderSelector(object sender, UPRecordSelector selector)
        {
            for (var i = 0; i < selector.RecordLinkInfoAreaIds.Count; i++)
            {
                var linkInfoAreaId = selector.RecordLinkInfoAreaIds[i];
                var linkId         = selector.RecordLinkLinkIds[i];
                var rid            = this.ContextRecordForSenderInfoAreaIdLinkId(sender, linkInfoAreaId, linkId);
                if (!string.IsNullOrEmpty(rid) && rid.Length > 8)
                {
                    return(rid);
                }
            }

            return(null);
        }
        private void UserDidChangeRecordSelectorEditField(UPMRecordSelectorEditField field)
        {
            UPRecordSelector            selector   = field.CurrentSelector;
            Dictionary <string, object> copyValues = field.ResultRows != null ? field.ResultRows.FunctionValues : selector.ValuesFromResultRow(null);

            string linkRecordIdentification = field.ResultRows.RootRecordIdentification;
            string linkKey = selector.LinkKey;

            if (!selector.NoLink && !string.IsNullOrEmpty(linkKey))
            {
                if (!string.IsNullOrEmpty(linkRecordIdentification))
                {
                    if (this.linkDictionary != null)
                    {
                        this.linkDictionary[linkKey] = linkRecordIdentification;
                    }
                    else
                    {
                        this.linkDictionary = new Dictionary <string, string> {
                            { linkKey, linkRecordIdentification }
                        };
                    }
                }
                else if (!string.IsNullOrEmpty(linkKey) && this.linkDictionary.ContainsKey(linkKey))
                {
                    this.linkDictionary.Remove(linkKey);
                }
            }

            List <UPMEditField> changedFields = this.ApplyCopyValuesRecordSelectorEditField(copyValues, field);

            foreach (UPMEditField editField in changedFields)
            {
                this.SimpleChangedValue(editField);
            }

            if (changedFields.Count > 0)
            {
                this.Delegate.ForceRedraw(this);
            }
        }
Example #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UPRecordSelectorEditFieldContext"/> class.
 /// </summary>
 /// <param name="fieldConfig">The field configuration.</param>
 /// <param name="fieldIdentifier">The field identifier.</param>
 /// <param name="value">The value.</param>
 /// <param name="selector">The selector.</param>
 public UPRecordSelectorEditFieldContext(UPConfigFieldControlField fieldConfig, IIdentifier fieldIdentifier, string value, UPRecordSelector selector)
     : base(fieldConfig, fieldIdentifier, value, null)
 {
     this.Selector = selector;
 }