private void Synchronize(IDataTypeDefinition[] dataTypes, DataType model) { var dataType = _dataTypeFinder.Find(model, dataTypes).SingleOrDefault(); if (dataType == null) { // Create new data type. dataType = CreateDataType(model); _dataTypeService.SaveDataTypeAndPreValues(dataType, GetPreValues(model)); } else { // Update the data type and its pre-values. _dataTypeService.Save(UpdateDataTypeDefinition(dataType, model)); var existingPreValues = _dataTypeService.GetPreValuesCollectionByDataTypeId(dataType.Id).FormatAsDictionary(); var preValuesToSave = existingPreValues.Any() ? GetUpdatedPreValues(existingPreValues, model.PreValues) : GetPreValues(model); _dataTypeService.SavePreValues(dataType.Id, preValuesToSave); } // We get the data type once more to refresh it after saving it. dataType = _dataTypeService.GetDataTypeDefinitionByName(dataType.Name); // Set/update tracking. SetDataTypeId(model, dataType); }
private void Synchronize(IDataTypeDefinition[] dataTypes, DataType model) { var dataType = _dataTypeFinder.Find(model, dataTypes).SingleOrDefault(); dataType = dataType == null ? CreateDataType(model) : UpdateDataTypeDefinition(dataType, model); _dataTypeService.Save(dataType); // We get the data type once more to refresh it after saving it. dataType = _dataTypeService.GetDataTypeDefinitionByName(dataType.Name); // Set the pre-values, if any. SetDataTypePreValues(dataType, model); // Set/update tracking. SetDataTypeId(model, dataType); }