Exemple #1
0
 private int ShardKeyCompare(object o1, object o2, FabricShardIndexType shardType)
 {
     if (shardType == FabricShardIndexType.Range)
     {
         int      v;
         DateTime dt;
         if (int.TryParse(o1.ToString(), out v))
         {
             return(v - int.Parse(o2.ToString()));
         }
         else if (DateTime.TryParse(o1.ToString(), out dt))
         {
             DateTime dt2 = DateTime.Parse(o2.ToString());
             return(DateTime.Compare(dt, dt2));
         }
         else
         {
             return(string.Compare(o1.ToString(), o2.ToString()));
         }
     }
     else if (shardType == FabricShardIndexType.Hash)
     {
         return(string.Compare(o1.ToString(), o2.ToString()));
         //return int.Parse(GetTruncatedHexString(o1.ToString()), NumberStyles.HexNumber) -
         //int.Parse(GetTruncatedHexString(o2.ToString()), NumberStyles.HexNumber);
     }
     else
     {
         throw new NotSupportedException(Enum.GetName(typeof(FabricShardIndexType),
                                                      FabricShardIndexType.List));
     }
 }
 private int ShardKeyCompare(object o1, object o2, FabricShardIndexType shardType)
 {
   if (shardType == FabricShardIndexType.Range)
   {
     int v;
     DateTime dt;
     if (int.TryParse(o1.ToString(), out v))
     {
       return v - int.Parse(o2.ToString());
     }
     else if (DateTime.TryParse(o1.ToString(), out dt))
     {
       DateTime dt2 = DateTime.Parse(o2.ToString());
       return DateTime.Compare(dt, dt2);
     }
     else
     {
       return string.Compare(o1.ToString(), o2.ToString());
     }
   }
   else if (shardType == FabricShardIndexType.Hash)
   {
     return string.Compare(o1.ToString(), o2.ToString());
     //return int.Parse(GetTruncatedHexString(o1.ToString()), NumberStyles.HexNumber) - 
       //int.Parse(GetTruncatedHexString(o2.ToString()), NumberStyles.HexNumber);
   }
   else throw new NotSupportedException(Enum.GetName(typeof(FabricShardIndexType), 
     FabricShardIndexType.List));
 }