public IActionResult ManageSubscriptionUsage(SubscriptionUsageViewModel subscriptionData) { this.logger.LogInformation("Home Controller / ManageSubscriptionUsage subscriptionData: {0}", JsonConvert.SerializeObject(subscriptionData)); try { if (Convert.ToBoolean(applicationConfigRepository.GetValuefromApplicationConfig(MainMenuStatusEnum.IsLicenseManagementEnabled.ToString())) == true) { this.TempData["ShowLicensesMenu"] = true; } if (subscriptionData != null && subscriptionData.SubscriptionDetail != null) { var currentUserDetail = usersRepository.GetPartnerDetailFromEmail(this.CurrentUserEmailAddress); var subscriptionUsageRequest = new MeteringUsageRequest() { Dimension = subscriptionData.SelectedDimension, EffectiveStartTime = DateTime.UtcNow, PlanId = subscriptionData.SubscriptionDetail.AmpplanId, Quantity = Convert.ToDouble(subscriptionData.Quantity ?? "0"), ResourceId = subscriptionData.SubscriptionDetail.AmpsubscriptionId }; var meteringUsageResult = new MeteringUsageResult(); var requestJson = JsonConvert.SerializeObject(subscriptionUsageRequest); var responseJson = string.Empty; try { this.logger.LogInformation("EmitUsageEventAsync"); meteringUsageResult = apiClient.EmitUsageEventAsync(subscriptionUsageRequest).ConfigureAwait(false).GetAwaiter().GetResult(); responseJson = JsonConvert.SerializeObject(meteringUsageResult); this.logger.LogInformation(responseJson); } catch (MeteredBillingException mex) { responseJson = JsonConvert.SerializeObject(mex.MeteredBillingErrorDetail); meteringUsageResult.Status = mex.ErrorCode; this.logger.LogInformation(responseJson); } var newMeteredAuditLog = new MeteredAuditLogs() { RequestJson = requestJson, ResponseJson = responseJson, StatusCode = meteringUsageResult.Status, SubscriptionId = subscriptionData.SubscriptionDetail.Id, SubscriptionUsageDate = DateTime.UtcNow, CreatedBy = currentUserDetail == null ? 0 : currentUserDetail.UserId, CreatedDate = DateTime.Now }; subscriptionUsageLogsRepository.Add(newMeteredAuditLog); } } catch (Exception ex) { this.logger.LogError(ex, ex.Message); } return(RedirectToAction(nameof(RecordUsage), new { subscriptionId = subscriptionData.SubscriptionDetail.Id })); }
public IActionResult ManageSubscriptionUsage(SubscriptionUsageViewModel subscriptionData) { try { if (subscriptionData != null && subscriptionData.SubscriptionDetail != null) { var currentUserDetail = usersRepository.GetPartnerDetailFromEmail(this.CurrentUserEmailAddress); var subscriptionUsageRequest = new MeteringUsageRequest() { Dimension = subscriptionData.SelectedDimension, EffectiveStartTime = DateTime.UtcNow, PlanId = subscriptionData.SubscriptionDetail.AmpplanId, Quantity = Convert.ToDouble(subscriptionData.Quantity ?? "0"), ResourceId = subscriptionData.SubscriptionDetail.AmpsubscriptionId }; var meteringUsageResult = new MeteringUsageResult(); var requestJson = JsonConvert.SerializeObject(subscriptionUsageRequest); var responseJson = string.Empty; try { meteringUsageResult = apiClient.EmitUsageEventAsync(subscriptionUsageRequest).ConfigureAwait(false).GetAwaiter().GetResult(); responseJson = JsonConvert.SerializeObject(meteringUsageResult); } catch (MeteredBillingException mex) { responseJson = JsonConvert.SerializeObject(mex.MeteredBillingErrorDetail); meteringUsageResult.Status = mex.ErrorCode; } var newMeteredAuditLog = new MeteredAuditLogs() { RequestJson = requestJson, ResponseJson = responseJson, StatusCode = meteringUsageResult.Status, SubscriptionId = subscriptionData.SubscriptionDetail.Id, SubscriptionUsageDate = DateTime.UtcNow, CreatedBy = currentUserDetail == null ? 0 : currentUserDetail.UserId, CreatedDate = DateTime.Now }; subscriptionUsageLogsRepository.Add(newMeteredAuditLog); } } catch (Exception ex) { this._logger.LogError(ex, ex.Message); } return(RedirectToAction(nameof(RecordUsage), new { subscriptionId = subscriptionData.SubscriptionDetail.Id })); }