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++; } } }