private void LoanAdvancedCustomizableFields() { // fields List <CustomizableField> advancedCustomizableFields = ServicesProvider.GetInstance(). GetCustomizableFieldsServices(). SelectCustomizableFields( (int)Enum.Parse(typeof(OCustomizableFieldEntities), _entity.ToString())); // values List <CustomizableFieldValue> values = GetCustomizableFieldsServices().SelectCustomizableFieldValues(_linkId, _entityType); if (advancedCustomizableFields != null && advancedCustomizableFields.Count > 0) { foreach (CustomizableField field in advancedCustomizableFields) { CustomProperty myField = null; string fieldName = field.Name; CustomizableFieldValue value = GetValueForField(values, fieldName); string fieldDescription = field.Description; switch (field.Type) { case OCustomizableFieldTypes.Boolean: bool boolValue = value != null && bool.Parse(value.Value); myField = new CustomProperty(fieldName, fieldDescription, boolValue, typeof(bool), false, true); break; case OCustomizableFieldTypes.Number: object numberValue = value == null ? string.Empty : value.Value; myField = new CustomProperty(fieldName, fieldDescription, numberValue, typeof(string), false, true); break; case OCustomizableFieldTypes.String: string stringValue = value == null ? string.Empty : value.Value; myField = new CustomProperty(fieldName, fieldDescription, stringValue, typeof(string), false, true); break; case OCustomizableFieldTypes.Date: DateTime dateTime = value == null ? DateTime.Today : Converter.CustomFieldValueToDate(value.Value); myField = new CustomProperty(fieldName, fieldDescription, dateTime, typeof(DateTime), false, true); break; case OCustomizableFieldTypes.Collection: if (value == null) { _advancedFieldsCollections.Add(fieldName, field.Collection); myField = new CustomProperty(fieldName, fieldDescription, string.Empty, typeof(CollectionType), false, true); } else { Collection.Items = value.Field.Collection; if (value.Value != null) { _advancedFieldsCollections.Add(value.Field.Name, value.Field.Collection); myField = new CustomProperty(value.Field.Name, value.Field.Description, Collection.Items[int.Parse(value.Value)], typeof(CollectionType), false, true); } else { _advancedFieldsCollections.Add(value.Field.Name, value.Field.Collection); myField = new CustomProperty(value.Field.Name, value.Field.Description, string.Empty, typeof(CollectionType), false, true); } } break; case OCustomizableFieldTypes.Client: CustomClientField clientField; if (value == null || value.Value == string.Empty) { clientField = CustomClientField.Empty; } else { int personId; if (!int.TryParse(value.Value, out personId)) { clientField = CustomClientField.Empty; } else { var clientService = ServiceProvider.GetClientServices(); var person = clientService.FindPersonById(personId); clientField = new CustomClientField(person); } } myField = new CustomProperty(fieldName, fieldDescription, clientField, typeof(CustomClientField), false, true); break; } _advancedFields.Add(myField); } } fieldGrid.Refresh(); }
private void LoanAdvancedCustomizableFields() { // fields List<CustomizableField> advancedCustomizableFields = ServicesProvider.GetInstance(). GetCustomizableFieldsServices(). SelectCustomizableFields( (int) Enum.Parse(typeof (OCustomizableFieldEntities), _entity.ToString())); // values List<CustomizableFieldValue> values = GetCustomizableFieldsServices().SelectCustomizableFieldValues(_linkId, _entityType); if (advancedCustomizableFields != null && advancedCustomizableFields.Count > 0) { foreach (CustomizableField field in advancedCustomizableFields) { CustomProperty myField = null; string fieldName = field.Name; CustomizableFieldValue value = GetValueForField(values, fieldName); string fieldDescription = field.Description; switch (field.Type) { case OCustomizableFieldTypes.Boolean: bool boolValue = value != null && bool.Parse(value.Value); myField = new CustomProperty(fieldName, fieldDescription, boolValue, typeof (bool), false, true); break; case OCustomizableFieldTypes.Number: object numberValue = value == null ? string.Empty : value.Value; myField = new CustomProperty(fieldName, fieldDescription, numberValue, typeof (string), false, true); break; case OCustomizableFieldTypes.String: string stringValue = value == null ? string.Empty : value.Value; myField = new CustomProperty(fieldName, fieldDescription, stringValue, typeof(string), false, true); break; case OCustomizableFieldTypes.Date: DateTime dateTime = value == null ? DateTime.Today : Converter.CustomFieldValueToDate(value.Value); myField = new CustomProperty(fieldName, fieldDescription, dateTime, typeof(DateTime), false, true); break; case OCustomizableFieldTypes.Collection: if (value == null) { _advancedFieldsCollections.Add(fieldName, field.Collection); myField = new CustomProperty(fieldName, fieldDescription, string.Empty, typeof(CollectionType), false, true); } else { Collection.Items = value.Field.Collection; if (value.Value != null) { _advancedFieldsCollections.Add(value.Field.Name, value.Field.Collection); myField = new CustomProperty(value.Field.Name, value.Field.Description, Collection.Items[int.Parse(value.Value)], typeof(CollectionType), false, true); } else { _advancedFieldsCollections.Add(value.Field.Name, value.Field.Collection); myField = new CustomProperty(value.Field.Name, value.Field.Description, string.Empty, typeof(CollectionType), false, true); } } break; case OCustomizableFieldTypes.Client: CustomClientField clientField; if (value == null || value.Value == string.Empty) clientField = CustomClientField.Empty; else { int personId; if (!int.TryParse(value.Value, out personId)) clientField = CustomClientField.Empty; else { var clientService = ServiceProvider.GetClientServices(); var person = clientService.FindPersonById(personId); clientField = new CustomClientField(person); } } myField = new CustomProperty(fieldName, fieldDescription, clientField, typeof(CustomClientField), false, true); break; } _advancedFields.Add(myField); } } fieldGrid.Refresh(); }
protected override void HandleTierSelect(ClientSearchResult pClient) { var clientServices = ServicesProvider.GetInstance().GetClientServices(); var person = clientServices.FindPersonById(pClient.Id); Value = new CustomClientField(person); }