Beispiel #1
0
 private static async Task UpdatePerformanceLevel(DocumentClient client)
 {
     var resolver = _iDbService.DocumentDb.GetResolver();
     if (resolver.PartitionMap.Count == 2)
     {
         Offer offer = client.CreateOfferQuery()
             .Where(r => r.ResourceLink == resolver.PartitionMap.First().Value)
             .AsEnumerable()
             .SingleOrDefault();
         if (offer != null)
         {
             offer.OfferType = "S2";
             Offer updated = await client.ReplaceOfferAsync(offer);
         }
         offer = client.CreateOfferQuery()
             .Where(r => r.ResourceLink == resolver.PartitionMap.Last().Value)
             .AsEnumerable()
             .SingleOrDefault();
         if (offer != null)
         {
             offer.OfferType = "S3";
             Offer updated = await client.ReplaceOfferAsync(offer);
         }
     }
     else
     {
         var n = 1;
         var count = resolver.PartitionMap.Count;
         foreach (var d in resolver.PartitionMap)
         {
             Offer offer = client.CreateOfferQuery()
                 .Where(r => r.ResourceLink == d.Value)
                 .AsEnumerable()
                 .SingleOrDefault();
             if (offer == null) continue;
             if (n < count*0.5 && offer.OfferType != "S1")
             {
                 offer.OfferType = "S1";
                 Offer updated = await client.ReplaceOfferAsync(offer);
             }
             else if (n > 0.8*count && offer.OfferType != "S3")
             {
                 offer.OfferType = "S3";
                 Offer updated = await client.ReplaceOfferAsync(offer);
             }
             else if (offer.OfferType != "S2")
             {
                 offer.OfferType = "S2";
                 Offer updated = await client.ReplaceOfferAsync(offer);
             }
             n++;
         }
     }
 }