< Summary - ReFlex - Library

Information
Class: ReFlex.Core.Common.Util.StreamParameterConverter
Assembly: ReFlex.Core.Common
File(s): D:\a\reflex\reflex\library\src\Core\Common\Util\StreamParameterConverter.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 19
Coverable lines: 19
Total lines: 80
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
CanConvertFrom(...)100%210%
ConvertFrom(...)0%620%
ConvertTo(...)0%2040%

File(s)

D:\a\reflex\reflex\library\src\Core\Common\Util\StreamParameterConverter.cs

#LineLine coverage
 1using System;
 2using System.ComponentModel;
 3using System.Globalization;
 4
 5namespace ReFlex.Core.Common.Util
 6{
 7    /// <summary>
 8    /// Converts a <see cref="StreamParameter"/> to/from a <see cref="string"/>.
 9    /// </summary>
 10    /// <seealso cref="System.ComponentModel.TypeConverter" />
 11    /// <inheritdoc />
 12    public class StreamParameterConverter : TypeConverter
 13    {
 14        #region methods
 15
 16        /// <summary>
 17        /// Gibt zurück, ob dieser Konverter ein Objekt vom angegebenen Typ unter Verwendung des angegebenen Kontexts in
 18        /// </summary>
 19        /// <param name="context">Ein <see cref="T:System.ComponentModel.ITypeDescriptorContext" />, der einen Formatier
 20        /// <param name="sourceType">Ein <see cref="T:System.Type" /> den darstellt, aus dem konvertiert werden soll.</p
 21        /// <returns>
 22        ///   <see langword="true" />, wenn dieser Konverter die Konvertierung durchführen kann, andernfalls <see langwo
 23        /// </returns>
 24        /// <inheritdoc />
 25        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
 026        {
 027            return sourceType == typeof(string);
 028        }
 29
 30        /// <summary>
 31        /// Konvertiert das angegebene Objekt unter Verwendung des angegebenen Kontexts und der angegebenen Kulturinform
 32        /// </summary>
 33        /// <param name="context">Ein <see cref="T:System.ComponentModel.ITypeDescriptorContext" />, der einen Formatier
 34        /// <param name="culture">Das als aktuelle Kultur zu verwendende <see cref="T:System.Globalization.CultureInfo" 
 35        /// <param name="value">Die zu konvertierende <see cref="T:System.Object" />.</param>
 36        /// <returns>
 37        /// Ein <see cref="T:System.Object" /> das den konvertierten Wert darstellt.
 38        /// </returns>
 39        /// <inheritdoc />
 40        public override object ConvertFrom(
 41            ITypeDescriptorContext context, CultureInfo culture, object value)
 042        {
 043            if (!(value is string s))
 044                return base.ConvertFrom(context, culture, value);
 45
 046            var parts = s.Split(',');
 047            var width = Convert.ToInt32(parts[0]);
 048            var height = Convert.ToInt32(parts[1]);
 049            var framerate = Convert.ToInt32(parts[2]);
 050            return new StreamParameter(width, height, framerate);
 051        }
 52
 53        /// <summary>
 54        /// Konvertiert das angegebene Wertobjekt unter Verwendung des angegebenen Kontexts und der angegebenen Kulturin
 55        /// </summary>
 56        /// <param name="context">Ein <see cref="T:System.ComponentModel.ITypeDescriptorContext" />, der einen Formatier
 57        /// <param name="culture">Ein <see cref="T:System.Globalization.CultureInfo" />.
 58        /// Wenn <see langword="null" /> übergeben wird, wird von der aktuellen Kultur ausgegangen.</param>
 59        /// <param name="value">Die zu konvertierende <see cref="T:System.Object" />.</param>
 60        /// <param name="destinationType">Die <see cref="T:System.Type" /> zum Konvertieren der <paramref name="value" /
 61        /// <returns>
 62        /// Ein <see cref="T:System.Object" /> das den konvertierten Wert darstellt.
 63        /// </returns>
 64        /// <inheritdoc />
 65        public override object ConvertTo(
 66            ITypeDescriptorContext context, CultureInfo culture,
 67            object value, Type destinationType)
 068        {
 069            if (destinationType != typeof(string))
 070                return base.ConvertTo(context, culture, value, destinationType);
 71
 072            if (value is StreamParameter config)
 073                return $"{config.Width},{config.Height},{config.Framerate}";
 74
 075            return "";
 076        }
 77
 78        #endregion
 79    }
 80}