HaBookTableContinuationToken.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. 
  2. using Microsoft.WindowsAzure.Storage;
  3. using Microsoft.WindowsAzure.Storage.Table;
  4. using System;
  5. using System.ComponentModel.DataAnnotations;
  6. using TEAMModelOS.SDK.Extension.DataResult.PageToken;
  7. using TEAMModelOS.SDK.Helper.Common.ValidateHelper;
  8. namespace TEAMModelOS.SDK.Module.AzureTable.Configuration
  9. {
  10. public class HaBookTableContinuationToken
  11. {
  12. [Required]
  13. public string NextPartitionKey { get; set; }
  14. [Required]
  15. public string NextRowKey { get; set; }
  16. [Required]
  17. public string NextTableName { get; set; }
  18. [Required]
  19. public StorageLocation? TargetLocation { get; set; }
  20. public TableContinuationToken GetContinuationToken() {
  21. TableContinuationToken continuationToken = new TableContinuationToken
  22. {
  23. NextPartitionKey = this.NextPartitionKey,
  24. NextRowKey = this.NextRowKey,
  25. NextTableName = this.NextTableName,
  26. TargetLocation = this.TargetLocation
  27. };
  28. return ValidateHelper.ValidObj(continuationToken);
  29. }
  30. public HaBookTableContinuationToken() {
  31. }
  32. public HaBookTableContinuationToken(TableContinuationToken continuationToken) {
  33. if (null != continuationToken) {
  34. this.NextPartitionKey = continuationToken.NextPartitionKey;
  35. this.NextRowKey = continuationToken.NextRowKey;
  36. this.NextTableName = continuationToken.NextTableName;
  37. this.TargetLocation = continuationToken.TargetLocation;
  38. }
  39. }
  40. public HaBookTableContinuationToken(AzureTableToken continuationToken)
  41. {
  42. if (null != continuationToken) {
  43. this.NextPartitionKey = continuationToken.NextPartitionKey;
  44. this.NextRowKey = continuationToken.NextRowKey;
  45. this.NextTableName = continuationToken.NextTableName;
  46. int index = 0;
  47. foreach (StorageLocation item in Enum.GetValues(typeof(StorageLocation)))
  48. {
  49. if (continuationToken.TargetLocation == index)
  50. {
  51. this.TargetLocation = item;
  52. break;
  53. }
  54. index++;
  55. }
  56. }
  57. }
  58. public AzureTableToken GetAzureTableToken() {
  59. AzureTableToken continuationToken = new AzureTableToken
  60. {
  61. NextPartitionKey = this.NextPartitionKey,
  62. NextRowKey = this.NextRowKey,
  63. NextTableName = this.NextTableName
  64. };
  65. ///枚举遍历
  66. ///
  67. int index = 0;
  68. foreach (StorageLocation item in Enum.GetValues(typeof(StorageLocation))) {
  69. if (this.TargetLocation == item) {
  70. continuationToken.TargetLocation = index;
  71. break;
  72. }
  73. index++;
  74. }
  75. return ValidateHelper.ValidObj(continuationToken);
  76. }
  77. }
  78. }