private string GetCvlFieldValue(string cvlId, string value, bool addValue) { if (string.IsNullOrWhiteSpace(value)) { return(null); } string key = value.RemoveSpecialCharacters(); if (string.IsNullOrWhiteSpace(key)) { return(null); } CVL cvl = _cvlRepository.GetCVL(cvlId); if (cvl == null) { return(null); } CVLValue cvlValue = _cvlRepository.GetCVLValueByKey(cvl.Id, key); if (cvlValue != null) { return(cvlValue.Key); } if (!addValue) { return(null); } if (cvl.DataType == DataType.String) { cvlValue = new CVLValue { CVLId = cvl.Id, Key = key, Value = value }; } else if (cvl.DataType == DataType.LocaleString) { var localeString = new LocaleString(); foreach (CultureInfo culture in _supportedCultures.Values) { localeString[culture] = value; } cvlValue = new CVLValue { CVLId = cvl.Id, Key = key, Value = localeString }; } else { return(null); } _cvlRepository.AddCVLValue(cvlValue); return(key); }