public async System.Threading.Tasks.Task GetPremiumValueTestAsync() { var controller = new MonthlyPremiumController(_occupationBAL, _premiumCalculatorBAL) { Request = new System.Net.Http.HttpRequestMessage(), Configuration = new System.Web.Http.HttpConfiguration() }; // Test data var premiumParams = new PremiumParametersData(); premiumParams.Age = 25; premiumParams.OccupationId = 1; premiumParams.SumInsured = 150000; var response = await controller.GetPremiumValue(premiumParams); var controllerResponse = response.ExecuteAsync(CancellationToken.None).Result; Assert.IsNotNull(response); Assert.IsTrue(controllerResponse.IsSuccessStatusCode); Assert.AreEqual(HttpStatusCode.OK, controllerResponse.StatusCode); Assert.IsNotNull(controllerResponse.Content); decimal premiumValue; Assert.IsTrue(controllerResponse.TryGetContentValue <decimal>(out premiumValue)); Assert.AreEqual((decimal)468.75, premiumValue); }
public async Task <IHttpActionResult> GetPremiumValue([FromBody] PremiumParametersData premiumParametersData) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var result = await _premiumCalculatorBAL.getPremiumValue(premiumParametersData); return(ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, result))); } catch (Exception ex) { ErrorSignal.FromCurrentContext().Raise(ex); return(ResponseMessage(Request.CreateResponse(HttpStatusCode.InternalServerError, ex))); } }
public async Task <decimal> getPremiumValue(PremiumParametersData premiumParamData) { var occupationFactor = await _occupationBAL.getOccupationFactor(premiumParamData.OccupationId); return((premiumParamData.SumInsured * occupationFactor * premiumParamData.Age) / (1000 * 12)); }