Ejemplo n.º 1
0
        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);
        }