private static void UpdateDynamicColumnInstant(RegistrationFormAdminDetailView parent, int eventRegistrationEntityId, SubEntityRecord record, int dynamicColumnInstanceId) { var dataSize = CommonUtils.GetFieldValue(record.Fields, _maxSize); var updateRequest = new UpdateDynamicColumnInstanceRequest { EntityId = eventRegistrationEntityId, Name = CommonUtils.GetFieldValue(record.Fields, _fieldName), FormLabel = CommonUtils.GetFieldValue(record.Fields, _fieldLabel), DataType = CommonUtils.GetFieldValue(record.Fields, _dataType), IsRequired = GetBooleanValue(record, _isRequired), IsMultiline = GetBooleanValue(record, _isMultiLine), DataSize = string.IsNullOrEmpty(dataSize) ? new int?() : int.Parse(dataSize), DropDownValues = CommonUtils.GetFieldValue(record.Fields, _dropdownOptions), FormOrder = 1, Id = dynamicColumnInstanceId }; updateRequest.SelectSqlText = GetSelectSqlText(updateRequest.Name, updateRequest.DataType, updateRequest.DataSize); var response = parent.ProcessRequest<UpdateDynamicColumnInstanceResponse>(updateRequest); if (response.Id == 0 && response.Message == StatusMessage.DuplicateData) { throw new BusinessException("A Dynamic Column already exists with the specified name"); } }
private static List<DynamicFormsDynamicColumnDto> GetColumnFields(RegistrationFormAdminDetailView parent, int formId) { var formRequest = new ReadDynamicFormRequest { FormId = formId }; var formResponse = parent.ProcessRequest<ReadDynamicFormResponse>(formRequest); var request = new GetAllDynamicFormsDynamicColumnsRequest { FormId = formId }; var response = parent.ProcessRequest<GetAllDynamicFormsDynamicColumnsResponse>(request); return response.Columns.Where(c => c.FormColumn == _columnId).ToList(); }
private static int GetEventRegistrationFormEntityId(RegistrationFormAdminDetailView parent) { var entityRequest = new ReadDynamicColumnEntityRequest { EntityName = "EventRegistration", EntityNamespace = "MEDSEEK.eHealth.Apps.Events.SharePoint" }; int eventRegistrationEntityId = parent.ProcessRequest<ReadDynamicColumnEntityResponse>(entityRequest).DynamicColumnEntity.Id; return eventRegistrationEntityId; }
public static int Save(RegistrationFormAdminDetailView parent, List<SubEntity> subEntities, string templateName) { try { if (string.IsNullOrEmpty(templateName.Trim())) throw new Exception("Template Name required."); var columns = new List<DynamicColumnsCollection>(); var form = new DynamicFormDto { Name = templateName, IsTemplate = true, Id = _templateId, LabelPosition = string.Empty }; var fieldList = new List<object>(); ValidateSubEntitites(subEntities); //build columns from both left and right subentities foreach (var sub in subEntities) { var records = sub.Records.Where(a => a.Action != RecordActions.Deleted).ToList(); columns = MakeColumnsList(parent, columns, records, form); //get fieldNames from both left and right columns, and then check for duplicates. var subEntityFields = records.Where(r => r.Fields != null).Select(f => f.Fields); foreach (var item in subEntityFields.ToList()) { var fieldName = item.Where(r => r.FieldName == _fieldName).Select(r => r.FieldValue).First(); fieldList.Add(fieldName); } } var duplicates = fieldList.GroupBy(x => x).Where(g => g.Count() > 1).Select(g => g.Key).ToList(); if (duplicates.Count() > 0) { var errorMessage = string.Format("The following fields appear in the template more than once, please remove the field from either the Left or Right Column: {0}", string.Join(", ", duplicates)); throw new Exception(errorMessage); } if (_templateId > 0) { var request = new UpdateDynamicFormWithColumnsRequest { Form = form, FieldsInColumns = columns }; parent.ProcessRequest<UpdateDynamicFormWithColumnsResponse>(request); } else { var request = new AddDynamicFormWithColumnsRequest { Form = form, FieldsInColumns = columns }; _templateId = parent.ProcessRequest<AddDynamicFormWithColumnsResponse>(request).Id; } return _templateId; } catch (Exception ex) { throw new Exception(ex.Message); } }