public static void UnregisterPartitionOwner(string owner, int partitionId) { PartitionOwner partitionOwner = PartitionOwnerStats.FirstOrDefault(x => x.Name == owner); if (partitionOwner == null) { partitionOwner = new PartitionOwner { Name = owner, }; PartitionOwnerStats.Add(partitionOwner); } switch (partitionId) { case 00: partitionOwner.HasPartition00Since = null; break; case 01: partitionOwner.HasPartition01Since = null; break; case 02: partitionOwner.HasPartition02Since = null; break; case 03: partitionOwner.HasPartition03Since = null; break; case 04: partitionOwner.HasPartition04Since = null; break; case 05: partitionOwner.HasPartition05Since = null; break; case 06: partitionOwner.HasPartition06Since = null; break; case 07: partitionOwner.HasPartition07Since = null; break; case 08: partitionOwner.HasPartition08Since = null; break; case 09: partitionOwner.HasPartition09Since = null; break; case 10: partitionOwner.HasPartition10Since = null; break; case 11: partitionOwner.HasPartition11Since = null; break; case 12: partitionOwner.HasPartition12Since = null; break; case 13: partitionOwner.HasPartition13Since = null; break; case 14: partitionOwner.HasPartition14Since = null; break; case 15: partitionOwner.HasPartition15Since = null; break; case 16: partitionOwner.HasPartition16Since = null; break; case 17: partitionOwner.HasPartition17Since = null; break; case 18: partitionOwner.HasPartition18Since = null; break; case 19: partitionOwner.HasPartition19Since = null; break; case 20: partitionOwner.HasPartition20Since = null; break; case 21: partitionOwner.HasPartition21Since = null; break; case 22: partitionOwner.HasPartition22Since = null; break; case 23: partitionOwner.HasPartition23Since = null; break; case 24: partitionOwner.HasPartition24Since = null; break; case 25: partitionOwner.HasPartition25Since = null; break; case 26: partitionOwner.HasPartition26Since = null; break; case 27: partitionOwner.HasPartition27Since = null; break; case 28: partitionOwner.HasPartition28Since = null; break; case 29: partitionOwner.HasPartition29Since = null; break; case 30: partitionOwner.HasPartition30Since = null; break; case 31: partitionOwner.HasPartition31Since = null; break; } }
public static void RegisterPartitionOwner(string owner, int partitionId) { PartitionOwner partitionOwner = PartitionOwnerStats.FirstOrDefault(x => x.Name == owner); // Double checked locking for efficiency and to prevent duplicate owners, since this call is executed in a // highly multithreaded environment. if (partitionOwner == null) { lock (PartitionOwnerStats) { partitionOwner = PartitionOwnerStats.FirstOrDefault(x => x.Name == owner); if (partitionOwner == null) { partitionOwner = new PartitionOwner { Name = owner, }; PartitionOwnerStats.Add(partitionOwner); } } } switch (partitionId) { case 00: partitionOwner.HasPartition00Since = DateTime.Now; break; case 01: partitionOwner.HasPartition01Since = DateTime.Now; break; case 02: partitionOwner.HasPartition02Since = DateTime.Now; break; case 03: partitionOwner.HasPartition03Since = DateTime.Now; break; case 04: partitionOwner.HasPartition04Since = DateTime.Now; break; case 05: partitionOwner.HasPartition05Since = DateTime.Now; break; case 06: partitionOwner.HasPartition06Since = DateTime.Now; break; case 07: partitionOwner.HasPartition07Since = DateTime.Now; break; case 08: partitionOwner.HasPartition08Since = DateTime.Now; break; case 09: partitionOwner.HasPartition09Since = DateTime.Now; break; case 10: partitionOwner.HasPartition10Since = DateTime.Now; break; case 11: partitionOwner.HasPartition11Since = DateTime.Now; break; case 12: partitionOwner.HasPartition12Since = DateTime.Now; break; case 13: partitionOwner.HasPartition13Since = DateTime.Now; break; case 14: partitionOwner.HasPartition14Since = DateTime.Now; break; case 15: partitionOwner.HasPartition15Since = DateTime.Now; break; case 16: partitionOwner.HasPartition16Since = DateTime.Now; break; case 17: partitionOwner.HasPartition17Since = DateTime.Now; break; case 18: partitionOwner.HasPartition18Since = DateTime.Now; break; case 19: partitionOwner.HasPartition19Since = DateTime.Now; break; case 20: partitionOwner.HasPartition20Since = DateTime.Now; break; case 21: partitionOwner.HasPartition21Since = DateTime.Now; break; case 22: partitionOwner.HasPartition22Since = DateTime.Now; break; case 23: partitionOwner.HasPartition23Since = DateTime.Now; break; case 24: partitionOwner.HasPartition24Since = DateTime.Now; break; case 25: partitionOwner.HasPartition25Since = DateTime.Now; break; case 26: partitionOwner.HasPartition26Since = DateTime.Now; break; case 27: partitionOwner.HasPartition27Since = DateTime.Now; break; case 28: partitionOwner.HasPartition28Since = DateTime.Now; break; case 29: partitionOwner.HasPartition29Since = DateTime.Now; break; case 30: partitionOwner.HasPartition30Since = DateTime.Now; break; case 31: partitionOwner.HasPartition31Since = DateTime.Now; break; } }