/// <summary>
        /// Возвращает новое значение, если переданное значение отличается и не пустая строка.
        /// <para>
        /// В зависимости от переданного поведения в принимаемой модели будет возвращено соответствующее значение.
        /// </para>
        /// </summary>
        /// <param name="targetProp">Исходное значение, которое будет обновлено.</param>
        /// <param name="value">Принимаемая модель представления для обновления свойства сущности.</param>
        /// <returns></returns>
        public static string Update(string targetProp, ModelPropertyPutViewModel value)
        {
            if (value?.Value == null)
            {
                return(targetProp);
            }

            if (targetProp == null)
            {
                return(value.Value);
            }

            if (targetProp.Equals(value.Value) && value.Behavior == ModelPropertyPutBehavior.Override)
            {
                return(targetProp);
            }

            if (value.CheckExistingSubstring && targetProp.Contains(value.Value))
            {
                return(targetProp);
            }

            return(value.Behavior switch
            {
                ModelPropertyPutBehavior.Override => value.Value,
                ModelPropertyPutBehavior.Append when !value.AppendWithNewLine => targetProp + value.Value,
                ModelPropertyPutBehavior.Append when value.AppendWithNewLine => AppendLine(targetProp, value.Value),
                _ => throw new ArgumentOutOfRangeException()
            });
示例#2
0
        public void ShouldProperlyCheckExistingSubstring()
        {
            var initialStr = "___test___";
            var putModel   = new ModelPropertyPutViewModel
            {
                Value = "test",
                CheckExistingSubstring = true,
                Behavior = ModelPropertyPutBehavior.Append
            };

            var updatedStr = ModelHelper.Update(initialStr, putModel);

            Assert.Equal(initialStr, updatedStr);
        }
示例#3
0
        public void ShouldProperlyAppendWithNewLine()
        {
            var initialStr = "test1";
            var putModel   = new ModelPropertyPutViewModel
            {
                Value             = "test",
                AppendWithNewLine = true,
                Behavior          = ModelPropertyPutBehavior.Append
            };

            var updatedStr = ModelHelper.Update(initialStr, putModel);

            Assert.Equal(initialStr + Environment.NewLine + putModel.Value, updatedStr);
        }
示例#4
0
        public void ShouldProperlyAppendStringValue(int seed)
        {
            var sporadic = new Random(seed);

            var initialStr = sporadic.GetRandomName();
            var putModel   = new ModelPropertyPutViewModel
            {
                Value    = sporadic.GetRandomName(),
                Behavior = ModelPropertyPutBehavior.Append
            };

            var updatedStr = ModelHelper.Update(initialStr, putModel);

            Assert.Equal(initialStr + putModel.Value, updatedStr);
        }