public async Task<ActionResult> Start(StartCalculationViewModel model) { if (!ModelState.IsValid) { return HandleGeneralError("Index", ProductCalculationViewModel.Create(EQueryType.None), "Unable to create environment"); } int rateTableId = 0; int.TryParse(model.SelectedRateTable, out rateTableId); ApiResponse<EnvironmentInfo> environmentResponse = await m_Repository.CreateEnvironment(rateTableId); if(IsApiError(environmentResponse) || environmentResponse.ApiResult == null) { return HandleGeneralError("Index", ProductCalculationViewModel.Create(EQueryType.None), "Unable to create environment"); } SetUiCulture(environmentResponse.ApiResult.Culture); StartCalculationRequest request = new StartCalculationRequest(); request.Weight = GetInitialWeight(environmentResponse.ApiResult.Culture); environmentResponse.ApiResult.SenderZipCode = model.SenderZip; request.Environment = environmentResponse.ApiResult; ApiResponse<PCalcResultInfo> startResponse = await m_Repository.Start(request); if(IsApiError(startResponse) || PcalcResultIsValid(startResponse.ApiResult) == false) { return HandleGeneralPcalcError("Index", ProductCalculationViewModel.Create(EQueryType.None), startResponse.ApiResult); } AddOrUpdateTempData(startResponse.ApiResult, request.Environment); AddViewData(startResponse.ApiResult, environmentResponse.ApiResult); return View("Index", ProductCalculationViewModel.Create(startResponse.ApiResult.QueryType)); }
public async Task<ApiResponse<PCalcResultInfo>> Start(StartCalculationRequest startRequest) { RestRequest request = GetNewRequest(); request.Resource = "Start"; request.Method = Method.POST; request.AddBody(startRequest); return await Execute<PCalcResultInfo>(request, m_Api, string.Empty); }
public async Task<ActionResult> Restart() { StartCalculationRequest request = new StartCalculationRequest(); PCalcResultInfo lastInfo = GetLastPcalcResult(); //try to re-use the weight request.Weight = null != lastInfo?.ProductDescription ? lastInfo?.ProductDescription.Weight : new WeightInfo() { WeightUnit = EWeightUnit.Gram, WeightValue = 0 }; EnvironmentInfo environment = GetEnvironment(); if (null == environment) { return HandleGeneralError("Index", ProductCalculationViewModel.Create(EQueryType.None), "Unable to create environment"); } request.Environment = environment; ApiResponse<PCalcResultInfo> restartResult = await m_Repository.Start(request); if(IsApiError(restartResult) || PcalcResultIsValid(restartResult.ApiResult) == false) { return HandleGeneralPcalcError("Index", ProductCalculationViewModel.Create(EQueryType.None), restartResult.ApiResult); } AddOrUpdateTempData(restartResult.ApiResult, request.Environment); AddViewData(restartResult.ApiResult, environment); return View("Index", ProductCalculationViewModel.Create(restartResult.ApiResult.QueryType)); }
public async Task<IHttpActionResult> StartProductCalculation(StartCalculationRequest startRequest ) { if(!ModelState.IsValid) { return BadRequest(ModelState); } PCalcResultInfo result = await m_Calculator.StartCalculation(startRequest.Environment, startRequest.Weight); return CreateProductCalculationResponse(result); }