public async Task <IActionResult> GetTopUpBenefits([FromQuery] TopUpBenefitParameter topupBenefitsParameters) { var getAllTopUpBenefitsQuery = new GetAllTopUpBenefitsQuery(topupBenefitsParameters); var result = await mediator.Send(getAllTopUpBenefitsQuery); 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 TopUpBenefits. /// </summary> /// <param name="topUpBenefitParameter">The TopUpBenefits parameters.</param> /// <returns></returns> public async Task <PagedList <Entity> > GetAllTopUpBenefits(TopUpBenefitParameter topUpBenefitParameter) { { var getvendorSubscriptionsParams = new object[] { new MySqlParameter("@p_IsForSingleData", topUpBenefitParameter.IsForSingleData), new MySqlParameter("@p_IsForTopUp", topUpBenefitParameter.IsForTopUp), new MySqlParameter("@p_IsForBenefit", topUpBenefitParameter.IsForBenefit), new MySqlParameter("@p_Value", topUpBenefitParameter.Value), new MySqlParameter("@p_ApprovalStatus", topUpBenefitParameter.ApprovalStatus) }; var vendorsubscriptions = await FindAll("CALL SpSelectActiveTopUpBenefit(@p_IsForSingleData, @p_IsForTopUp, @p_IsForBenefit,@p_Value, @p_ApprovalStatus)", getvendorSubscriptionsParams).ToListAsync(); var mappedVendorSubscriptions = vendorsubscriptions.AsQueryable().ProjectTo <TopUpBenefitResponse>(mapper.ConfigurationProvider); var sortedVendorSubscriptions = sortHelper.ApplySort(mappedVendorSubscriptions, topUpBenefitParameter.OrderBy); var shapedVendorSubscriptions = dataShaper.ShapeData(sortedVendorSubscriptions, topUpBenefitParameter.Fields); return(await PagedList <Entity> .ToPagedList(shapedVendorSubscriptions, topUpBenefitParameter.PageNumber, topUpBenefitParameter.PageSize)); } }
/// <summary> /// Initializes a new instance of the <see cref="GetAllTopUpQuery"/> class. /// </summary> /// <param name="topUpBenefitParameter">The TopUpBenefit parameters.</param> public GetAllTopUpBenefitsQuery(TopUpBenefitParameter topUpBenefitParameter) { TopUpBenefitParameter = topUpBenefitParameter; }
/// <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)); } }
/// <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 <IActionResult> GetTopUpBenefits([FromQuery] TopUpBenefitParameter topupBenefitsParameters) { var result = await topUpService.GetTopUpBenefits(topupBenefitsParameters); return(StatusCode((int)result.Code, result.Value)); }
public async Task <List <TopUpBenefitResponse> > GetAllTopUpBenefitsByTopupId(TopUpBenefitParameter topUpBenefitParameter) { var topBenefit = FindByCondition(topBenefit => topBenefit.Active == Convert.ToInt16(true)) .Where(o => o.TopUpId == topUpBenefitParameter.Value) .ProjectTo <TopUpBenefitResponse>(mapper.ConfigurationProvider).ToList(); return(topBenefit); }
public Task <APIResponse> GetTopUpBenefits(TopUpBenefitParameter topupBenefitsParameters) { throw new NotImplementedException(); }