void IOracleModelVisitor.VisitPartition(PartitionModel item) { if (this._filter(item)) { _items.Add(item); } }
public long Add(PartitionDTO pPartitionDTO) { long PartitionID = 0; using (var Context = new BaseContext()) { var Partition = new PartitionModel { Title = pPartitionDTO.Title, PartitionSize = pPartitionDTO.PartitionSize, }; Context.Partitions.Add(Partition); Context.SaveChanges(); PartitionID = Partition.ID; } return(PartitionID); }
public List <DriveInformation> GetDriveInformation() { var q = new WqlObjectQuery("SELECT * FROM Win32_DiskDrive"); var res = new ManagementObjectSearcher(q); var driveNames = (from ManagementBaseObject o in res.Get() select o["Model"]?.ToString()).ToList(); var driveList = new List <DriveInformation>(); var drives = DriveInfo.GetDrives(); for (var index = 0; index < drives.Length; index++) { try { var drive = drives[index]; var driveInfo = new DriveInformation(); if (!drive.IsReady) { continue; } driveInfo.Model = driveNames.ElementAtOrDefault(index) != null ? driveNames[index] : "Unknown Model"; driveInfo.Name = drive.Name; driveInfo.FreeSpace = drive.TotalFreeSpace; driveInfo.TotalSize = drive.TotalSize; driveInfo.DriveType = drive.DriveType.ToString(); driveInfo.DriveFormat = drive.DriveFormat; driveInfo.VolumeLabel = drive.VolumeLabel; driveInfo.RootDirectory = drive.RootDirectory.ToString(); driveInfo.IsReady = drive.IsReady; //just set it for now driveInfo.SmartData = new List <SmartModel>(); driveInfo.Partitions = new List <PartitionModel>(); driveList.Add(driveInfo); try { var mosDisks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE Model = '" + driveInfo.Model + "'").Get().GetEnumerator(); if (!mosDisks.MoveNext()) { continue; } driveInfo.MediaType = mosDisks.Current.GetPropertyValue("MediaType")?.ToString() ?? "Unknown"; driveInfo.Serial = mosDisks.Current.GetPropertyValue("SerialNumber")?.ToString()?.Trim() ?? "Unknown"; driveInfo.Interface = mosDisks.Current.GetPropertyValue("InterfaceType")?.ToString() ?? "Unknown"; driveInfo.TotalPartitions = mosDisks.Current.GetPropertyValue("Partitions")?.ToString() ?? "Unknown"; driveInfo.Signature = mosDisks.Current.GetPropertyValue("Signature")?.ToString() ?? "Unknown"; driveInfo.Firmware = mosDisks.Current.GetPropertyValue("FirmwareRevision")?.ToString() ?? "Unknown"; driveInfo.Cylinders = mosDisks.Current.GetPropertyValue("TotalCylinders")?.ToString() ?? "Unknown"; driveInfo.Sectors = mosDisks.Current.GetPropertyValue("TotalSectors")?.ToString() ?? "Unknown"; driveInfo.Heads = mosDisks.Current.GetPropertyValue("TotalHeads")?.ToString() ?? "Unknown"; driveInfo.Tracks = mosDisks.Current.GetPropertyValue("TotalTracks")?.ToString() ?? "Unknown"; driveInfo.BytesPerSecond = mosDisks.Current.GetPropertyValue("BytesPerSector")?.ToString() ?? "Unknown"; driveInfo.SectorsPerTrack = mosDisks.Current.GetPropertyValue("SectorsPerTrack")?.ToString() ?? "Unknown"; driveInfo.TracksPerCylinder = mosDisks.Current.GetPropertyValue("TracksPerCylinder")?.ToString() ?? "Unknown"; } catch (Exception ex) { // Console.WriteLine(ex.Message); //Console.WriteLine(ex.StackTrace); } try { var mosPartition = new ManagementObjectSearcher("SELECT * FROM Win32_DiskPartition WHERE DiskIndex = '" + index + "'").Get().GetEnumerator(); while (mosPartition.MoveNext()) { var partion = new PartitionModel { Name = mosPartition.Current.GetPropertyValue("Name")?.ToString() ?? "Unknown", Size = mosPartition.Current.GetPropertyValue("Size")?.ToString() ?? "Unknown", BlockSize = mosPartition.Current.GetPropertyValue("BlockSize")?.ToString() ?? "Unknown", StartingOffset = mosPartition.Current.GetPropertyValue("StartingOffset")?.ToString() ?? "Unknown", Index = mosPartition.Current.GetPropertyValue("Index")?.ToString() ?? "Unknown", DiskIndex = mosPartition.Current.GetPropertyValue("DiskIndex")?.ToString() ?? "Unknown", BootPartition = mosPartition.Current.GetPropertyValue("BootPartition")?.ToString() ?? "Unknown", PrimaryPartition = mosPartition.Current.GetPropertyValue("PrimaryPartition")?.ToString() ?? "Unknown", Bootable = mosPartition.Current.GetPropertyValue("Bootable")?.ToString() ?? "Unknown" }; driveInfo.Partitions.Add(partion); } } catch (Exception ex) { // Console.WriteLine(ex.Message); //Console.WriteLine(ex.StackTrace); } } catch (Exception ex) { // Console.WriteLine(ex.Message); // Console.WriteLine(ex.StackTrace); } } using ( var searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData") ) using ( var thresSearcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_FailurePredictThresholds")) using ( var failureSearch = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_FailurePredictStatus")) { try { var searcherEnumerator = searcher.Get().GetEnumerator(); var thresSearcherEnumerator = thresSearcher.Get().GetEnumerator(); var failureSearchEnumerator = failureSearch.Get().GetEnumerator(); var index = 0; while (searcherEnumerator.MoveNext() && thresSearcherEnumerator.MoveNext()) { var arrVendorSpecific = (byte[])searcherEnumerator.Current.GetPropertyValue("VendorSpecific"); var arrThreshold = (byte[])thresSearcherEnumerator.Current.GetPropertyValue("VendorSpecific"); /* Create SMART data from 'vendor specific' array */ var d = new SmartData(arrVendorSpecific, arrThreshold); var smartRows = (from b in d.Attributes where !Regex.IsMatch(b.AttributeType.ToString(), @"^\d+$") let rawData = BitConverter.ToString(b.VendorData.Reverse().ToArray()).Replace("-", string.Empty) select new SmartModel(b.AttributeType.ToString(), b.Value.ToString(CultureInfo.InvariantCulture), b.Threshold.ToString(CultureInfo.InvariantCulture), rawData, long.Parse(rawData, NumberStyles.HexNumber).ToString(CultureInfo.InvariantCulture))) .ToList(); driveList.ElementAt(index).SmartData = smartRows; if (failureSearchEnumerator.MoveNext()) { driveList.ElementAt(index).DriveHealth = (bool)failureSearchEnumerator.Current.GetPropertyValue("PredictFailure") ? "WARNING" : "OK"; } index++; } } catch (Exception ex) { // Console.WriteLine(ex.Message); // Console.WriteLine(ex.StackTrace); } } return(driveList); }
public override List <PartitionsDto_11> Resolve(DbContextOracle context, Action <PartitionsDto_11> action) { List <PartitionsDto_11> List = new List <PartitionsDto_11>(); var db = context.Database; this.OracleContext = context; if (action == null) { action = t => { if (!db.Partitions.Contains(t.PartitionName)) { var partition = new PartitionModel() { Name = t.PartitionName, Composite = t.Composite.ToBoolean(), HighValue = t.HighValue, HighValueLength = t.HighValueLength, PartitionPosition = t.PartitionPosition, MaxSize = t.MaxSize, Compression = t.Compression, CompressFor = t.CompressFor, NumRows = t.NumRows, Blocks = t.Blocks, EmptyBlocks = t.EmptyBlocks, //AvgSpace = t.AvgSpace, ChainCnt = t.ChainCnt, //AvgRowLen = t.AvgRowLen, //SampleSize = t.SampleSize, //LastAnalyzed = t.LastAnalyzed, CellFlashCache = t.CellFlashCache, GlobalStats = t.GlobalStats.ToBoolean(), UserStats = t.UserStats.ToBoolean(), IsNested = t.IsNested.ToBoolean(), ParentTablePartition = t.ParentTablePartition, Interval = t.Interval.ToBoolean(), SegmentCreated = t.SegmentCreated.ToBoolean(), }; partition.PhysicalAttributes.Logging = t.Logging; partition.PhysicalAttributes.PctFree = t.PctFree; partition.PhysicalAttributes.PctUsed = t.PctUsed; partition.PhysicalAttributes.IniTrans = t.IniTrans; partition.PhysicalAttributes.MaxTrans = t.MaxTrans; partition.PhysicalAttributes.InitialExtent = t.InitialExtent; partition.PhysicalAttributes.NextExtent = t.NextExtent; partition.PhysicalAttributes.MinExtent = t.MinExtent; partition.PhysicalAttributes.MaxExtent = t.MaxExtent; partition.PhysicalAttributes.BufferPool = t.BufferPool; partition.PhysicalAttributes.FlashCache = t.FlashCache; partition.PhysicalAttributes.Tablespace.Name = t.TablespaceName; partition.PhysicalAttributes.PctIncrease = t.PctIncrease; partition.PhysicalAttributes.Freelists = t.Freelists; partition.PhysicalAttributes.FreelistGroups = t.FreelistGroups; db.Partitions.Add(partition); } TableModel ta; string key = t.TableOwner + "." + t.TableName; if (db.Tables.TryGet(key, out ta)) { var partionRef = new PartitionRefModel() { PartitionName = t.PartitionName }; ta.Partitions.Add(partionRef); } } } ; PartitionsQueryDescriptor_11 Partitions = new PartitionsQueryDescriptor_11(context.Manager.ConnectionString); sql = string.Format(sql, TableQueryWhereCondition("l", "TABLE_OWNER")); using (var reader = context.Manager.ExecuteReader(CommandType.Text, sql, QueryBase.DbParams.ToArray())) { List = Partitions.ReadAll(reader, action).ToList(); } return(List); } }
public void VisitPartition(PartitionModel item) { if (InFile(item)) { } }