public IEnumerable <UsageBasedLineItem> GetSingleMonthData([FromUri] string monthYear) { UrlParameterValidation.ValidateMonthYearFormat(monthYear); try { int month = int.Parse(monthYear.Split('-')[0], CultureInfo.InvariantCulture); int year = int.Parse(monthYear.Split('-')[1], CultureInfo.InvariantCulture); List <InvoiceLineItem> completeList = new List <InvoiceLineItem>(); completeList = this.GetCompleteList(month, year, 0, 0); List <UsageBasedLineItem> dataToBeStored = new List <UsageBasedLineItem>(); // extract properties foreach (InvoiceLineItem lineItem in completeList) { UsageBasedLineItem lineItemWithBaseProperties = (UsageBasedLineItem)lineItem; dataToBeStored.Add(lineItemWithBaseProperties); } return(dataToBeStored); } catch (Exception ex) { throw new CspBillingException(ex.Message, ex); } }
public IEnumerable <UsageBasedLineItem> GetDataForMonthRange([FromUri] string startMonthYear, [FromUri] string endMonthYear) { UrlParameterValidation.ValidateMonthYearFormat(startMonthYear); UrlParameterValidation.ValidateMonthYearFormat(endMonthYear); UrlParameterValidation.ValidateStartEndDate(startMonthYear, endMonthYear); try { int startMonth = int.Parse(startMonthYear.Split('-')[0], CultureInfo.InvariantCulture); int startYear = int.Parse(startMonthYear.Split('-')[1], CultureInfo.InvariantCulture); int endMonth = int.Parse(endMonthYear.Split('-')[0], CultureInfo.InvariantCulture); int endYear = int.Parse(endMonthYear.Split('-')[1], CultureInfo.InvariantCulture); List <InvoiceLineItem> completeList = new List <InvoiceLineItem>(); completeList = this.GetCompleteList(startMonth, startYear, endMonth, endYear); List <UsageBasedLineItem> dataToBeStored = new List <UsageBasedLineItem>(); // extract properties foreach (InvoiceLineItem lineItem in completeList) { UsageBasedLineItem lineItemWithBaseProperties = (UsageBasedLineItem)lineItem; dataToBeStored.Add(lineItemWithBaseProperties); } return(dataToBeStored); } catch { throw; } }
/// <summary> /// Reads the JSON representation of the object. /// </summary> /// <param name="reader">The <see cref="JsonReader" /> to read from.</param> /// <param name="objectType">Type of the object.</param> /// <param name="existingValue">The existing value of object being read.</param> /// <param name="serializer">The calling serializer.</param> /// <returns>The object value.</returns> /// <exception cref="ArgumentNullException"> /// reader /// or /// objectType /// </exception> /// <exception cref="JsonSerializationException"> /// </exception> public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { BillingProvider billingProvider; JObject json; string billingProviderValue; string invoiceLineItemType; InvoiceLineItem lineItem = null; json = JObject.Load(reader); billingProviderValue = json["billingProvider"].ToString(); billingProvider = JsonConvert.DeserializeObject <BillingProvider>($"'{billingProviderValue}'"); invoiceLineItemType = json["invoiceLineItemType"].ToString(); if (!invoiceLineItemType.Equals("usage_line_items", StringComparison.InvariantCultureIgnoreCase)) { if (invoiceLineItemType.Equals("billing_line_items", StringComparison.InvariantCultureIgnoreCase)) { if (billingProvider == BillingProvider.Azure) { lineItem = new UsageBasedLineItem(); } else if (billingProvider == BillingProvider.Office) { lineItem = new LicenseBasedLineItem(); } else if (billingProvider == BillingProvider.OneTime) { lineItem = new OneTimeInvoiceLineItem(); } else if (billingProvider == BillingProvider.All) { lineItem = new OneTimeInvoiceLineItem(); } } } else { if (billingProvider == BillingProvider.Azure) { lineItem = new DailyUsageLineItem(); } else if (billingProvider == BillingProvider.Marketplace) { lineItem = new DailyRatedUsageLineItem(); } } if (lineItem == null) { throw new JsonSerializationException($"InvoiceLineItemConverter cannot deserialize invoice line items with type: '{invoiceLineItemType}' && billing provider: '{billingProviderValue}'"); } serializer.Populate(json.CreateReader(), lineItem); return(lineItem); }
public IEnumerable <UsageBasedLineItem> GetCurrentMonthData() { try { List <InvoiceLineItem> completeList = new List <InvoiceLineItem>(); completeList = this.GetCompleteList(DateTime.Now.Month, DateTime.Now.Year, 0, 0); List <UsageBasedLineItem> dataToBeStored = new List <UsageBasedLineItem>(); // extract properties foreach (InvoiceLineItem lineItem in completeList) { UsageBasedLineItem lineItemWithBaseProperties = (UsageBasedLineItem)lineItem; dataToBeStored.Add(lineItemWithBaseProperties); } return(dataToBeStored); } catch (Exception ex) { throw new CspBillingException(ex.Message, ex); } }
public List <UsageBasedLineItem> GetCSPSummaryData() { try { List <InvoiceLineItem> completeList = this.GetCompleteList(0, 0, 0, 0); List <UsageBasedLineItem> dataToBeStored = new List <UsageBasedLineItem>(); // Extract properties foreach (InvoiceLineItem lineItem in completeList) { UsageBasedLineItem lineItemWithBaseProperties = (UsageBasedLineItem)lineItem; dataToBeStored.Add(lineItemWithBaseProperties); } return(dataToBeStored); } catch { throw; } }
/// <summary> /// Initializes a new instance of the <see cref="PSUsageBasedLineItem" /> class. /// </summary> /// <param name="lineItem">The base line item for this instance.</param> public PSUsageBasedLineItem(UsageBasedLineItem lineItem) { this.CopyFrom(lineItem); }