/// <summary> /// /// </summary> /// <param name="rates"></param> /// <param name="meterId"></param> /// <returns>Rates for meter</returns> public static Dictionary <double, double> GetRatesForMeterID(DataModels.RateCardResponse rates, string meterId) { List <DataModels.Resource> resources = rates.Meters; DataModels.Resource r = resources.Find(x => x.MeterId == meterId); return(r != null ? r.MeterRates : new Dictionary <double, double>()); }
/// <summary> /// GetIncludedQuantityByMeterID /// </summary> /// <param name="rates"></param> /// <param name="meterId"></param> /// <returns></returns> public static double GetIncludedQuantityByMeterID(DataModels.RateCardResponse rates, string meterId) { List <DataModels.Resource> resources = rates.Meters; IEnumerable <double> includedQty = from r in resources where r.MeterId == meterId select r.IncludedQuantity; return(includedQty.FirstOrDefault()); }
/// <summary> /// This method gets a Rate Card with prices for Azure offers. /// </summary> /// <param name="resellerCid">reseller cid</param> /// <param name="sa_token">sales agent token</param> /// <returns>returns a Dictionary object containing mater objects mapped against meter ids</returns> public static DataModels.RateCardResponse GetRateCard(string resellerCid, string sa_token) { var request = (HttpWebRequest)HttpWebRequest.Create(string.Format("https://api.cp.microsoft.com/{0}/rate-card?&OfferDurableId=MS-AZR-0145P", resellerCid)); request.Method = "GET"; request.Accept = "application/json"; request.Headers.Add("api-version", "2015-03-31"); request.Headers.Add("x-ms-correlation-id", Guid.NewGuid().ToString()); request.Headers.Add("x-ms-tracking-id", Guid.NewGuid().ToString()); request.Headers.Add("Authorization", "Bearer " + sa_token); DataModels.RateCardResponse rateCardResponse = new DataModels.RateCardResponse(); try { Utilities.PrintWebRequest(request, string.Empty); var response = request.GetResponse(); using (var reader = new StreamReader(response.GetResponseStream())) { var responseContent = reader.ReadToEnd(); //// Writes the RateCard to a File //string filePath = ConfigurationManager.AppSettings["FilePathForRateCard"]; //if (filePath != null) //{ // WriteRateCardToFile(filePath, resellerCid, responseContent); //} // var rateCard = Json.Decode(responseContent); rateCardResponse = JsonConvert.DeserializeObject <DataModels.RateCardResponse>(responseContent); //Dictionary<string, object> rateCardMap = new Dictionary<string, object>(); ////foreach (var meter in rateCard.Meters) //{ // rateCardMap.Add(meter.MeterId, meter); //} return(rateCardResponse); } } catch (WebException webException) { using (var reader = new StreamReader(webException.Response.GetResponseStream())) { var responseContent = reader.ReadToEnd(); Utilities.PrintErrorResponse((HttpWebResponse)webException.Response, responseContent); } } return(rateCardResponse); }
/// <summary> /// This method gets a Rate Card with prices for Azure offers. /// </summary> /// <param name="resellerCid">reseller cid</param> /// <param name="sa_token">sales agent token</param> /// <returns>returns a Dictionary object containing mater objects mapped against meter ids</returns> public static DataModels.RateCardResponse GetRateCard(string resellerCid, string sa_token) { var request = (HttpWebRequest)HttpWebRequest.Create(string.Format("https://api.cp.microsoft.com/{0}/rate-card?&OfferDurableId=MS-AZR-0145P", resellerCid)); request.Method = "GET"; request.Accept = "application/json"; request.Headers.Add("api-version", "2015-03-31"); request.Headers.Add("x-ms-correlation-id", Guid.NewGuid().ToString()); request.Headers.Add("x-ms-tracking-id", Guid.NewGuid().ToString()); request.Headers.Add("Authorization", "Bearer " + sa_token); DataModels.RateCardResponse rateCardResponse = new DataModels.RateCardResponse(); try { Utilities.PrintWebRequest(request, string.Empty); var response = request.GetResponse(); using (var reader = new StreamReader(response.GetResponseStream())) { var responseContent = reader.ReadToEnd(); //// Writes the RateCard to a File //string filePath = ConfigurationManager.AppSettings["FilePathForRateCard"]; //if (filePath != null) //{ // WriteRateCardToFile(filePath, resellerCid, responseContent); //} // var rateCard = Json.Decode(responseContent); rateCardResponse = JsonConvert.DeserializeObject<DataModels.RateCardResponse>(responseContent); //Dictionary<string, object> rateCardMap = new Dictionary<string, object>(); ////foreach (var meter in rateCard.Meters) //{ // rateCardMap.Add(meter.MeterId, meter); //} return rateCardResponse; } } catch (WebException webException) { using (var reader = new StreamReader(webException.Response.GetResponseStream())) { var responseContent = reader.ReadToEnd(); Utilities.PrintErrorResponse((HttpWebResponse)webException.Response, responseContent); } } return rateCardResponse; }