public IResponseBase Execute(IRequestParameter parameters) { var result = new Response<PowerReviewFaceOffResponse>(); try { _request = (PowerReviewFaceoffRequest)parameters; var cacheKey = string.Format(Config.PowerReview.CacheKeyFaceOff, _request.ProductId); result = CacheMemory.Get<Response<PowerReviewFaceOffResponse>>(cacheKey); if (result == null || result.resultset.FaceOff.positive.rating == 0) { _request = (PowerReviewFaceoffRequest)parameters; var communicationRequest = BuildUrl(parameters); _response = Communicate(communicationRequest); result = ParseResponse(_response); if (result.resultset.FaceOff != null) { if (result.resultset.FaceOff.positive.rating > 0) { if (Config.PowerReview.IsCacheEnabled) { CacheMemory.SetAndExpiresMinutesAsync(cacheKey, result, Config.PowerReview.Cache_TTL_InMinutes); } } } } } catch (Exception ex) { _errors.Add(ex.Handle("PowerReviewGetFaceOff.Execute", ErrorSeverity.FollowUp, ErrorType.RequestError)); } return result; }
private FaceOff GetPwFaceOff(string productId) { var faceOffResponse = new PowerReviewFaceOffResponse(); var faceOffRequest = new PowerReviewFaceoffRequest(); var faceoff = new PowerReviewGetFaceOff(_core); faceOffRequest.ProductId = productId; return(((Response <PowerReviewFaceOffResponse>)faceoff.Execute(faceOffRequest)).resultset.FaceOff); }