AppInfoDataModel.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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 bool IsUpdate { get; set; }
  13. /// <summary>
  14. /// Gets information about every used assembly in local AppDomain
  15. /// </summary>
  16. public void GetAssemblies()
  17. {
  18. var assemblies = AppDomain.CurrentDomain.GetAssemblies()
  19. .Select(a => new AssemblyDataModel
  20. {
  21. Name = a.GetName().Name,
  22. Version = a.GetName().Version.ToString(),
  23. Manufacturer =
  24. a.GetCustomAttributes<AssemblyCompanyAttribute>().Any()
  25. ? a.GetCustomAttributes<AssemblyCompanyAttribute>()
  26. .FirstOrDefault().Company
  27. : "Unbekannt"
  28. })
  29. .OrderBy(a => a.Manufacturer)
  30. .ThenBy(a => a.Name)
  31. .ToArray();
  32. Assemblies = assemblies;
  33. }
  34. }
  35. }