public async Task <IActionResult> GetSubcriptionPlans([FromQuery] SubscriptionBenefitsParameter subscriptionBenefitsParameters) { var getAllSubscriptionBenefitsQuery = new GetAllSubscriptionBenefitsQuery(subscriptionBenefitsParameters); var result = await mediator.Send(getAllSubscriptionBenefitsQuery); if (result.Code == HttpStatusCode.OK) { Response.Headers.Add("X-Pagination", PagedList <Entity> .ToJson(result.Value as PagedList <Entity>)); } return(StatusCode((int)result.Code, result.Value)); }
/// <summary> /// Gets all subscriptionBenefit. /// </summary> /// <param name="subscriptionBenefitsParameter">The story parameters.</param> /// <returns></returns> public async Task <PagedList <Entity> > GetAllSubscriptionBenefits(SubscriptionBenefitsParameter subscriptionBenefitsParameter) { { var getBenefitsParams = new object[] { new MySqlParameter("@p_IsForSingleData", subscriptionBenefitsParameter.IsForSingleData), new MySqlParameter("@p_IsForSubscription", subscriptionBenefitsParameter.IsForSubscription), new MySqlParameter("@p_IsForBenefit", subscriptionBenefitsParameter.IsForBenefit), new MySqlParameter("@p_Value", subscriptionBenefitsParameter.Value), new MySqlParameter("@p_ApprovalStatus", subscriptionBenefitsParameter.ApprovalStatus) }; var subscriptionBenefits = await FindAll("CALL SpSelectActiveSubscriptionBenefit(@p_IsForSingleData, @p_IsForSubscription, @p_IsForBenefit, @p_Value, @p_ApprovalStatus)", getBenefitsParams).ToListAsync(); var mappedSubscriptionBenefits = subscriptionBenefits.AsQueryable().ProjectTo <SubscriptionBenefitsResponse>(mapper.ConfigurationProvider); var sortedSubscriptionBenefits = sortHelper.ApplySort(mappedSubscriptionBenefits, subscriptionBenefitsParameter.OrderBy); var shapedSubscriptionBenefits = dataShaper.ShapeData(sortedSubscriptionBenefits, subscriptionBenefitsParameter.Fields); return(await PagedList <Entity> .ToPagedList(shapedSubscriptionBenefits, subscriptionBenefitsParameter.PageNumber, subscriptionBenefitsParameter.PageSize)); } }
/// <summary> /// Initializes a new instance of the <see cref="GetAllSubscriptionBenefitsQuery"/> class. /// </summary> /// <param name="subscriptionPlansParameter">The SubcriptionPlans parameters.</param> public GetAllSubscriptionBenefitsQuery(SubscriptionBenefitsParameter subscriptionBenefitsParameter) { SubscriptionBenefitsParameter = subscriptionBenefitsParameter; }
/// <summary> /// Handles a request /// </summary> /// <param name="request">The request</param> /// <param name="cancellationToken">Cancellation token</param> /// <returns> /// Response from the request /// </returns> public async Task <APIResponse> Handle(CreateUtilityCommand request, CancellationToken cancellationToken) { try { if (request.Request.ServiceTopupId == 0) { request.Request.ServiceTopupId = null; } if (request.Request.ServiceSubscriptionId == 0) { request.Request.ServiceSubscriptionId = null; } var subscriptionBenefitsParameter = new SubscriptionBenefitsParameter(); var utilityRequest = new Vendorserviceutilisation(); var topUpBenefitParameter = new TopUpBenefitParameter(); List <TopUpBenefitResponse> topupBenefit = new List <TopUpBenefitResponse>(); List <SubscriptionBenefitsResponse> subscriptionBenefit = new List <SubscriptionBenefitsResponse>(); var subscriptionUtilityParameters = new SubscriptionUtilityParameters(); subscriptionUtilityParameters.VendorId = request.Request.VendorId; subscriptionUtilityParameters.ServiceSubscriptionId = request.Request.ServiceSubscriptionId; subscriptionUtilityParameters.TopupId = request.Request.ServiceTopupId; subscriptionUtilityParameters.BenefitId = request.Request.Benefit; var utility = await repository.Utilitys.GetAllUtility(subscriptionUtilityParameters); var serviceSubscription = await repository.ServiceSubscriptions.GetServiceSubscriptionById(request.Request.ServiceSubscriptionId ?? 0); var serviceTopup = await repository.ServiceTopups.GetServiceTopupById(request.Request.ServiceTopupId ?? 0); var multidetail = await repository.MultiDetails.GetMultiDetailsById("PhotoCount"); if (serviceSubscription != null) { subscriptionBenefitsParameter.Value = serviceSubscription.Subscription; subscriptionBenefit = await repository.SubscriptionBenefits.GetAllSubscriptionBenefitsBySubsId(subscriptionBenefitsParameter); } if (serviceTopup != null) { topUpBenefitParameter.Value = serviceTopup.TopUpId; topupBenefit = await repository.TopUpBenefits.GetAllTopUpBenefitsByTopupId(topUpBenefitParameter); } int?BenefitCount = 0; int?topupCount = 0; foreach (var item in subscriptionBenefit) { if (item.Benefit == request.Request.Benefit) { BenefitCount += item.Count; } } foreach (var item in topupBenefit) { if (item.Benefit == request.Request.Benefit) { topupCount += item.Count; } } if (BenefitCount >= request.Request.UtilityCount) { foreach (var item1 in utility) { if (item1.VendorId == request.Request.VendorId && item1.ServiceSubscriptionId == request.Request.ServiceSubscriptionId && item1.Benefit == request.Request.Benefit) { var vendorSubscription = await repository.Utilitys.GetUtilityById(item1.Id); vendorSubscription.UtilityCount = request.Request.UtilityCount; if (vendorSubscription == null) { return(new APIResponse(HttpStatusCode.NotFound)); } utilityRequest = mapper.Map(request.Request, vendorSubscription); repository.Utilitys.UpdateUtility(utilityRequest); await repository.SaveAsync(); } } } //else //{ // return new APIResponse(HttpStatusCode.NotAcceptable); //} // PhotoCount if (serviceSubscription == null) { foreach (var item in multidetail) { if (int.Parse(item.Value) >= request.Request.UtilityCount) { foreach (var item1 in utility) { if (item1.VendorId == request.Request.VendorId && item1.ServiceSubscriptionId == request.Request.ServiceSubscriptionId && item1.Benefit == request.Request.Benefit) { var vendorSubscription = await repository.Utilitys.GetUtilityById(item1.Id); if (vendorSubscription == null) { return(new APIResponse(HttpStatusCode.NotFound)); } utilityRequest = mapper.Map(request.Request, vendorSubscription); repository.Utilitys.UpdateUtility(utilityRequest); await repository.SaveAsync(); } } } if (utility.Count == 0) { foreach (var item1 in multidetail) { if (int.Parse(item1.Value) >= request.Request.UtilityCount) { utilityRequest = mapper.Map <Vendorserviceutilisation>(request.Request); repository.Utilitys.CreateUtility(utilityRequest); await repository.SaveAsync(); return(new APIResponse(new UtilityIdDetails { UtilityId = utilityRequest.Id }, HttpStatusCode.Created)); } else { return(new APIResponse(HttpStatusCode.NotAcceptable)); } } } } } // New DB Entry if (utility.Count == 0) { if (BenefitCount + topupCount >= request.Request.UtilityCount) { utilityRequest = mapper.Map <Vendorserviceutilisation>(request.Request); repository.Utilitys.CreateUtility(utilityRequest); await repository.SaveAsync(); } } return(new APIResponse(new UtilityIdDetails { UtilityId = utilityRequest.Id }, HttpStatusCode.Created)); } catch (Exception ex) { logger.Error(ex, "Exception in method 'CreateVendorSubscriptionHandler()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
public Task <APIResponse> GetSubcriptionPlans(SubscriptionBenefitsParameter subscriptionBenefitsParameters) { throw new NotImplementedException(); }
/// <summary> /// Handles a request /// </summary> /// <param name="request">The request</param> /// <param name="cancellationToken">Cancellation token</param> /// <returns> /// Response from the request /// </returns> public async Task <APIResponse> Handle(GetAllUtilityQuery request, CancellationToken cancellationToken) { try { int?vendorsutilitycount = 0; int?benefitCount = 0; int?remainingcount = 0; int?topupcount = 0; List <Subscription> subscription = new List <Subscription>(); List <Topup> topup = new List <Topup>(); var subscriptionBenefitsParameter = new SubscriptionBenefitsParameter(); var topupBenefitsParameter = new TopUpBenefitParameter(); var subscriptionBenefit = new List <SubscriptionBenefitsResponse>(); var topupBenefit = new List <TopUpBenefitResponse>(); subscriptionBenefitsParameter.IsForBenefit = null; subscriptionBenefitsParameter.IsForSingleData = null; subscriptionBenefitsParameter.IsForSubscription = null; subscriptionBenefitsParameter.ApprovalStatus = 0; topupBenefitsParameter.IsForBenefit = null; topupBenefitsParameter.IsForSingleData = null; topupBenefitsParameter.IsForTopUp = null; topupBenefitsParameter.ApprovalStatus = 0; var utility = await repository.Utilitys.GetAllUtility(request.SubscriptionUtilityParameters); foreach (var item in utility) { vendorsutilitycount += item.UtilityCount; if (item.ServiceSubscription != null) { subscription.Add(item.ServiceSubscription.SubscriptionNavigation); } if (item.ServiceTopup != null) { topup.Add(item.ServiceTopup.TopUp); } if (item.ServiceSubscription == null) { var multidetail = await repository.MultiDetails.GetMultiDetailsById("PhotoCount"); foreach (var item1 in multidetail) { remainingcount = (int.Parse(item1.Value)) - vendorsutilitycount; } } } foreach (var item in subscription) { subscriptionBenefitsParameter.Value = item.Id; subscriptionBenefit = await repository.SubscriptionBenefits.GetAllSubscriptionBenefitsBySubsId(subscriptionBenefitsParameter); foreach (var item1 in subscriptionBenefit) { if (item1.Benefit == request.SubscriptionUtilityParameters.BenefitId) { benefitCount += item1.Count; } } } foreach (var item in topup) { topupBenefitsParameter.Value = item.Id; topupBenefit = await repository.TopUpBenefits.GetAllTopUpBenefitsByTopupId(topupBenefitsParameter); foreach (var item1 in topupBenefit) { if (item1.Benefit == request.SubscriptionUtilityParameters.BenefitId) { topupcount += item1.Count; } } } if (subscription.Count != 0) { benefitCount = benefitCount + topupcount; remainingcount = benefitCount - vendorsutilitycount; } return(new APIResponse(new UtilityCountResponse { RemainingCount = remainingcount }, HttpStatusCode.OK)); } catch (Exception ex) { logger.Error(ex, "Exception in method 'GetAllVendorSubscriptionsHandler()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
public async Task <List <SubscriptionBenefitsResponse> > GetAllSubscriptionBenefitsBySubsId(SubscriptionBenefitsParameter subscriptionBenefitsParameter) { var subsBenefit = FindByCondition(subsbenefit => subsbenefit.Active == Convert.ToInt16(true)) .Where(o => o.SubscriptionId == subscriptionBenefitsParameter.Value) .ProjectTo <SubscriptionBenefitsResponse>(mapper.ConfigurationProvider).ToList(); return(subsBenefit); }
public async Task <IActionResult> GetSubcriptionPlans([FromQuery] SubscriptionBenefitsParameter subscriptionBenefitsParameters) { var result = await subscriptionBenefitService.GetSubcriptionPlans(subscriptionBenefitsParameters); return(StatusCode((int)result.Code, result.Value)); }