private object MergeCollection()

in src/Public/Commands/PushOutputBindingCommand.cs [239:271]


        private object MergeCollection(object oldData, object newData)
        {
            bool isNewDataEnumerable = LanguagePrimitives.IsObjectEnumerable(newData);
            if (oldData == null && !isNewDataEnumerable)
            {
                return newData;
            }

            var list = oldData as List<object>;
            if (list == null)
            {
                list = new List<object>();
                if (oldData != null)
                {
                    list.Add(oldData);
                }
            }

            if (isNewDataEnumerable)
            {
                var newDataEnumerable = LanguagePrimitives.GetEnumerable(newData);
                foreach (var item in newDataEnumerable)
                {
                    list.Add(item);
                }
            }
            else
            {
                list.Add(newData);
            }

            return list;
        }