using Disco.Models.Repository; using System; using System.Linq; namespace Disco.Services.Expressions.Extensions { public static class DeviceExt { public static object GetActiveDirectoryObjectValue(Device Device, string PropertyName, int Index = 0) { var adMachineAccount = Device.ActiveDirectoryAccount(PropertyName); if (adMachineAccount != null) return adMachineAccount.GetPropertyValues(PropertyName).Skip(Index).FirstOrDefault(); else return null; } public static string GetActiveDirectoryStringValue(Device Device, string PropertyName, int Index = 0) { var objectValue = GetActiveDirectoryObjectValue(Device, PropertyName, Index); string stringValue = objectValue as string; if (stringValue == null && objectValue != null) stringValue = objectValue.ToString(); return stringValue; } public static int GetActiveDirectoryIntegerValue(Device Device, string PropertyName, int Index = 0) { var objectValue = GetActiveDirectoryObjectValue(Device, PropertyName, Index); if (objectValue == null) return default; else { int intValue; try { intValue = (int)Convert.ChangeType(objectValue, typeof(int)); } catch (Exception) { throw; } return intValue; } } } }