public override async Task <ActivationPromoResponse> ActivatePromoCode(ActivationPromoRequest request, ServerCallContext context) { try { var promoFromDB = await _repository.GetPromoCode(request.Code); if (promoFromDB != null) { if (promoFromDB.IsValid && promoFromDB.ExpirationDate > DateTime.Now) { promoFromDB.Username = request.Username; promoFromDB.IsValid = false; if (await _repository.UpdateAsync(promoFromDB)) { var promo_code = _mapper.Map <PromoCodeResponse>(promoFromDB); return(new ActivationPromoResponse { Status = true, Promo = promo_code }); } } } } catch (Exception e) { _logger.LogError($"[PROMO-ACTIVATION]<>Some errors occured: {e.Message}"); } return(new ActivationPromoResponse { Status = false, Promo = new PromoCodeResponse { Code = request.Code } }); }
public async Task <PromoCodeEntity> ActivatePromoCode(string username, string code) { var codeRequest = new ActivationPromoRequest { Code = code, Username = username }; var res = await _discountService.ActivatePromoCodeAsync(codeRequest); if (res.Status) { var codeToReturn = res.Promo; var promoCode = _mapper.Map <PromoCodeEntity>(codeToReturn); return(promoCode); } return(null); }