/// <summary> /// Sends a View request with retry. /// </summary> /// <typeparam name="T">The Type T of the <see cref="ViewRow{T}"/> value.</typeparam> /// <param name="viewQuery">The view query.</param> /// <returns>A <see cref="IViewResult{T}"/> with the results of the query.</returns> public override IViewResult <T> SendWithRetry <T>(IViewQuery viewQuery) { IViewResult <T> viewResult = null; try { do { var server = ConfigInfo.GetServer(); viewResult = server.Send <T>(viewQuery); } while ( !viewResult.Success && !viewResult.CannotRetry() && viewQuery.RetryAttempts++ <= ConfigInfo.ClientConfig.MaxViewRetries); } catch (Exception e) { Log.Info(e); const string message = "View request failed, check Error and Exception fields for details."; viewResult = new ViewResult <T> { Message = message, Error = e.Message, StatusCode = HttpStatusCode.BadRequest, Success = false, Exception = e }; } return(viewResult); }
/// <summary> /// Sends a View request with retry. /// </summary> /// <typeparam name="T">The Type T of the <see cref="ViewRow{T}"/> value.</typeparam> /// <param name="viewQuery">The view query.</param> /// <returns>A <see cref="IViewResult{T}"/> with the results of the query.</returns> /// <exception cref="ServiceNotSupportedException">The cluster does not support View services.</exception> public override IViewResult <T> SendWithRetry <T>(IViewQueryable viewQuery) { IViewResult <T> viewResult = null; try { //Is the cluster configured for View services? if (!ConfigInfo.IsViewCapable) { throw new ServiceNotSupportedException( ExceptionUtil.GetMessage(ExceptionUtil.ServiceNotSupportedMsg, "View")); } do { var server = ConfigInfo.GetViewNode(); viewResult = server.Send <T>(viewQuery); } while ( !viewResult.Success && !viewResult.CannotRetry() && viewQuery.RetryAttempts++ <= ConfigInfo.ClientConfig.MaxViewRetries); } catch (Exception e) { Log.Info(e); const string message = "View request failed, check Error and Exception fields for details."; viewResult = new ViewResult <T> { Message = message, Error = e.Message, StatusCode = HttpStatusCode.BadRequest, Success = false, Exception = e }; } return(viewResult); }