AppInfoDataModel.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Reflection;
  5. using System.Web;
  6. namespace GreenTree.Nachtragsmanagement.Web.Models.Admin.AppInfo
  7. {
  8. public class AppInfoDataModel
  9. {
  10. public AssemblyDataModel[] Assemblies { get; set; }
  11. public string BaseDirectory { get; set; }
  12. public string AspNetVersion { get; set; }
  13. public string OperatingSystem { get; set; }
  14. public bool Is64BitOs { get; set; }
  15. public bool IsUpdate { get; set; }
  16. /// <summary>
  17. /// Gets information about every used assembly in local AppDomain
  18. /// </summary>
  19. public void GetAssemblies()
  20. {
  21. var assemblies = AppDomain.CurrentDomain.GetAssemblies()
  22. .Select(a => new AssemblyDataModel
  23. {
  24. Name = a.GetName().Name,
  25. Version = a.GetName().Version.ToString(),
  26. Manufacturer =
  27. a.GetCustomAttributes<AssemblyCompanyAttribute>().Any()
  28. ? a.GetCustomAttributes<AssemblyCompanyAttribute>()
  29. .FirstOrDefault().Company
  30. : "Unbekannt"
  31. })
  32. .OrderBy(a => a.Manufacturer)
  33. .ThenBy(a => a.Name)
  34. .ToArray();
  35. Assemblies = assemblies;
  36. }
  37. }
  38. }