public static SubEntityRecord CreateRecord(OrgUnitOrgUnitTypeDto type, int orgUnitId) { var record = new SubEntityRecord(); var fields = new List<Field>(); fields.Add(new Field(_idField, _idField, FieldTypes.Hidden, type.Id)); fields.Add(new Field(_orgUnitIdField, _orgUnitIdField, FieldTypes.Hidden, orgUnitId)); fields.Add(new Field(_orgUnitTypeIdField, _orgUnitTypeIdField, FieldTypes.Hidden, type.OrgUnitTypeId)); fields.Add(new Field(_nameField, "Name", FieldTypes.Label, type.OrgUnitTypeName)); fields.Add(new Field(_isPrimaryOrgUnitTypeField, "Is Primary", FieldTypes.Checkbox, type.IsPrimaryOrgUnitType)); record.Fields = fields; return record; }
public static void PopulateRequestFieldValues(LocationAdminDetailView parent, SubEntity sites, int orgUnitId, OrgUnitRequestBase request) { var record = sites.Records.SingleOrDefault(r => r.Action == RecordActions.Edited); if (record == null) return; request.CustomUrl = parent.GetFieldValue(record.Fields, _siteUrlField); request.CustomLiveUrl = parent.GetFieldValue(record.Fields, _siteUrlLiveField); request.CustomStageUrl = parent.GetFieldValue(record.Fields, _siteUrlStageField); request.CustomQaUrl = parent.GetFieldValue(record.Fields, _siteUrlQaField); request.CustomDevUrl = parent.GetFieldValue(record.Fields, _siteUrlDevField); // Determine if site association is enabled var associationEnabled = false; bool.TryParse(CommonUtils.GetFieldValue(record.Fields, _associationEnabledField), out associationEnabled); // Add/remove "Site" location type automatically if site association is enabled/disabled var locationTypeSubEntity = parent._viewModel.SubEntities.Single(s => s.EntityName == LocationAdminDetailView._locationTypeSubEntity); var hasSiteLocationType = HasSiteLocationType(locationTypeSubEntity); if (associationEnabled && !hasSiteLocationType) { var orgUnitType = new OrgUnitOrgUnitTypeDto { OrgUnitTypeId = 1, IsEnabled = true, IsPrimaryOrgUnitType = false }; var locationTypeRecord = LocationTypesHelper.CreateRecord(orgUnitType, orgUnitId); locationTypeRecord.Action = RecordActions.Added; locationTypeSubEntity.Records.Add(locationTypeRecord); } else if (!associationEnabled && hasSiteLocationType) { var siteLocationTypeRecord = locationTypeSubEntity.Records.SingleOrDefault(s => s.Fields.Any(f => f.FieldName == "Name" && (f.FieldValue as string == "Site"))); if (siteLocationTypeRecord != null && siteLocationTypeRecord.Action != RecordActions.Added) siteLocationTypeRecord.Action = RecordActions.Deleted; } }