public async Task <IActionResult> GetParameters(int?parameterId = null) { await _loggingFacade.LogAsync(new LogEntry(LogLevels.Info, "Starting GetParameters " + parameterId ?? "", "ParametersController.cs", "GetParameters"), CancellationToken.None); if (!ModelState.IsValid) { await _loggingFacade.LogAsync(new LogEntry(LogLevels.Error, ModelState.ToString(), "ParametersController.cs", "GetParameters"), CancellationToken.None); return(BadRequest(ModelState)); } try { string key = "parameters_" + Convert.ToString(parameterId); var data = _operation.RetrieveCache(key, new List <Model.Parameters>()); if (data == null) { //since no data in cache, now get data from DB var result = await _parametersApi.GetParameters(parameterId); if (result.IsSuccess) { data = (List <Model.Parameters>)result.Result; await _loggingFacade.LogAsync(new LogEntry(LogLevels.Info, "ParametersController GetParameters Successful", "GetParametersController.cs", "GetParameters"), CancellationToken.None); //Now add data to cache.. await _operation.AddCacheAsync(key, data); } else { var msg = this._localizer?["GenericError"]?.Value; await _loggingFacade.LogAsync(new LogEntry(LogLevels.Error, msg, "ParametersController.cs", "Get"), CancellationToken.None); return(this.StatusCode((int)System.Net.HttpStatusCode.InternalServerError, msg)); } } if (data == null) { var msg = this._localizer["NoDataFound"]?.Value; return(this.StatusCode((int)System.Net.HttpStatusCode.OK, msg)); } return(Ok(data)); } catch (Exception ex) { //return BadRequest(ex); var msg = this._localizer?["GenericError"]?.Value; await _loggingFacade.LogExceptionAsync(ex, this.HttpContext?.Request?.Headers["UserName"], LogLevels.Error, "Error in ParametersController GetParameters( " + parameterId ?? "" + ")", CancellationToken.None); return(this.StatusCode((int)System.Net.HttpStatusCode.InternalServerError, msg)); } }
public async Task ParametersControllerTest_TerminalSuccess() { // Arrange int lid = 589547; MockParametersRepository repository = new MockParametersRepository(); var expectedResult = repository.GetMockData(); IParametersRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); IOperation fakeOperation = FakeOperation(_cache); IParametersApi dAPI = Substitute.For <IParametersApi>(); dAPI.GetParameters(lid).ReturnsForAnyArgs(expectedResult); ParametersController controller = FakeController(_cache, dAPI, null, fakeOperation, FakeLogger()); // Act var dinfo = await controller.GetParameters(lid); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).Value; // Assert Assert.Equal(actualRecord, expectedResult.Result); }
public void ParametersControllerTest_ModelState_Invalid() { //Arrange int lid = 589547; MockParametersRepository repository = new MockParametersRepository(); var expectedResult = repository.GetMockData(); IParametersRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); IOperation fakeOperation = FakeOperation(_cache); IParametersApi dAPI = Substitute.For <IParametersApi>(); dAPI.GetParameters(lid).ReturnsForAnyArgs(expectedResult); ParametersController controller = FakeController(_cache, dAPI, null, fakeOperation, FakeLogger()); //Act controller.ModelState.AddModelError("key", "error message"); var dinfo = controller.GetParameters(lid).Result; //Assert Assert.Equal(((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).StatusCode.ToString(), "400"); }