PageRenderTime 45ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/Main/src/Xbap/DynamicDataDisplay.Xbap.Samples/Internals/VersionTypeConverter.cs

#
C# | 36 lines | 31 code | 5 blank | 0 comment | 3 complexity | 7b9a94bfc890b81bc7f5caaf5096493d MD5 | raw file
Possible License(s): CC-BY-SA-3.0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.ComponentModel;
  6. using System.Globalization;
  7. using Microsoft.Research.DynamicDataDisplay.Samples.Internals.Models;
  8. namespace Microsoft.Research.DynamicDataDisplay.Samples.Internals
  9. {
  10. public class VersionTypeConverter : TypeConverter
  11. {
  12. public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
  13. {
  14. if (sourceType == typeof(string))
  15. return true;
  16. return base.CanConvertFrom(context, sourceType);
  17. }
  18. public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
  19. {
  20. string str = (string)value;
  21. string[] parts = str.Split('.');
  22. int major = Int32.Parse(parts[0], culture);
  23. int minor = Int32.Parse(parts[1], culture);
  24. int revision = 0;
  25. if (parts.Length >= 3)
  26. revision = Int32.Parse(parts[2], culture);
  27. ReleaseVersion result = new ReleaseVersion(major, minor, revision);
  28. return result;
  29. }
  30. }
  31. }