// Copyright © Selmo Technology GmbH. All Rights Reserved

using Novus.Connectivity.Common;

namespace SelmoStudio.Hmi.Server.ProcessValue
{
    public static class ProcessValueConverter
    {
        public static object Convert(IProcessValueInfo info, string value)
        {
            return Convert(info.DataType, value);
        }

        public static object Convert(Type DataType, string value)
        {
            if (DataType == typeof(bool))
            {
                return bool.Parse(value);
            }
            if (DataType == typeof(string))
            {
                return value;
            }
            if (DataType == typeof(byte))
            {
                return byte.Parse(value);
            }
            if (DataType == typeof(short))
            {
                return short.Parse(value);
            }
            if (DataType == typeof(float))
            {
                return float.Parse(value);
            }
            if (DataType == typeof(double))
            {
                return double.Parse(value);
            }
            if (DataType == typeof(sbyte))
            {
                return sbyte.Parse(value);
            }
            if (DataType == typeof(ushort))
            {
                return ushort.Parse(value);
            }
            if (DataType == typeof(int))
            {
                return int.Parse(value);
            }
            if (DataType == typeof(uint))
            {
                return uint.Parse(value);
            }
            if (DataType == typeof(long))
            {
                return long.Parse(value);
            }
            if (DataType == typeof(ulong))
            {
                return ulong.Parse(value);
            }

            return value;
        }
    }
}