public async Task AjaxChangedCatchesException() { // arrange var controller = BuildCourseController(MediaTypeNames.Text.Html); var paramValues = new ParamValues { Town = "CV1 2WT", CourseType = "Online", CourseHours = "Full time", CourseStudyTime = "Daytime", }; var appdata = System.Text.Json.JsonSerializer.Serialize(paramValues); A.CallTo(() => FakeFindACoursesService.GetFilteredData(A <CourseSearchFilters> .Ignored, A <CourseSearchOrderBy> .Ignored, A <int> .Ignored)).Throws(new Exception()); A.CallTo(() => FakeViewHelper.RenderViewAsync(A <CourseController> .Ignored, A <string> .Ignored, A <BodyViewModel> .Ignored, A <bool> .Ignored)).Returns("<p>some markup</p>"); // act var result = await controller.AjaxChanged(appdata).ConfigureAwait(false); // assert Assert.False(string.IsNullOrWhiteSpace(result.HTML)); Assert.Equal(0, result.Count); Assert.Null(result.IsPostcode); controller.Dispose(); }
public async Task PageReturnsSuccess(string town) { // arrange var controller = BuildCourseController(MediaTypeNames.Text.Html); var paramValues = new ParamValues { Town = town, CourseType = "Online", CourseHours = "Full time", CourseStudyTime = "Daytime", }; var returnedCourseData = new CourseSearchResult { Courses = new List <Course> { new Course { Title = "Maths", CourseId = "1", AttendancePattern = "Online", Description = "This is a test description - over 220 chars" + new string(' ', 220) }, }, }; A.CallTo(() => FakeFindACoursesService.GetFilteredData(A <CourseSearchFilters> .Ignored, CourseSearchOrderBy.Relevance, 1)).Returns(returnedCourseData); // act var result = await controller.Page(paramValues, true).ConfigureAwait(false); // assert var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsAssignableFrom <BodyViewModel>(viewResult.ViewData.Model); Assert.NotNull(model.Results); controller.Dispose(); }
public async Task FilterResultReturnsSuccessWithoutPostcodeOrRegions(string mediaTypeName) { var controller = BuildDetailsController(mediaTypeName); var returnedCourseData = new CourseDetails { Title = "Maths in a unit test", Description = "This is a maths in a top class description", EntryRequirements = "Bring yourself and a brain", }; A.CallTo(() => FakeFindACoursesService.GetCourseDetails(CourseId, RunId)).Returns(returnedCourseData); var paramValues = new ParamValues { Page = 1, D = 1, OrderByValue = "StartDate", }; var result = await controller.Details(CourseId, null, RunId, "Maths", paramValues).ConfigureAwait(false); Assert.IsType <ViewResult>(result); controller.Dispose(); }
public async Task GetTlevelSuccess(string mediaTypeName) { //Set Up A.CallTo(() => FakeFindACoursesService.GetTLevelDetails(A <string> .Ignored, A <string> .Ignored)).Returns(GetTestTLevel()); var controller = BuildDetailsController(mediaTypeName); var paramValues = new ParamValues { Page = 1, D = 1, OrderByValue = "StartDate", }; //Act var result = await controller.TLevelDetails(TLevelId, TLevelLocationId, "testSearchTerm", paramValues).ConfigureAwait(false); //Asserts var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsAssignableFrom <TLevelDetailsViewModel>(viewResult.ViewData.Model); model.TlevelDetails.TLevelId.Should().Be(Guid.Parse(TLevelId)); controller.Dispose(); }
protected override string GetSelectSql() { StringBuilder sql = new StringBuilder(); if (TopNumber > 0) { sql.AppendLine(string.Format("SELECT TOP {0} ", TopNumber)); } else { sql.AppendLine("SELECT "); } sql.AppendLine(string.Format("{0}", base.GetSelectColumnSql())); sql.AppendLine(string.Format("FROM {0} ", base.EntityInfo.TableName)); if (ParamValues.Any()) { if (base.SqlType == Infrastructure.SqlType.Select && base.OrderByColums.Any()) { return(string.Format("{0} {1} {2}", sql, base.WhereSql, base.OrderBySql)); } return(string.Format("{0} {1}", sql, base.WhereSql)); } return(sql.ToString()); }
public override IJoinSourceQueryBuilder <TRecord> Join(IAliasedSelectSource source, JoinType joinType, CommandParameterValues parameterValues, Parameters parameters, ParameterDefaults parameterDefaults) { if (clauses.Count == 0) { throw new InvalidOperationException("Must have at least one 'ON' clause per join"); } intermediateJoins.Add(new Join(clauses.ToList(), joinSource, type)); clauses = new List <JoinClause>(); joinSource = source; type = joinType; var commandParameterValues = new CommandParameterValues(ParamValues, parameterValues); var combinedParameters = new Parameters(Params, parameters); var combinedParameterDefaults = new ParameterDefaults(ParamDefaults, parameterDefaults); ParamValues.Clear(); ParamValues.AddRange(commandParameterValues); Params.Clear(); Params.AddRange(combinedParameters); ParamDefaults.Clear(); ParamDefaults.AddRange(combinedParameterDefaults); return(this); }
private static string FormatSearchParameters(ParamValues paramValues, string currentSearchTerm) { if (paramValues.SearchTerm == null && currentSearchTerm != null) { paramValues.SearchTerm = currentSearchTerm; } var isPostcode = !string.IsNullOrEmpty(paramValues.Town) ? (bool?)paramValues.Town.IsPostcode() : null; paramValues.D = isPostcode.HasValue && isPostcode.Value ? 1 : 0; var searchTerm = $"{nameof(paramValues.SearchTerm)}={paramValues.SearchTerm}&" + $"{nameof(paramValues.Town)}={paramValues.Town}&" + $"{nameof(paramValues.CourseType)}={paramValues.CourseType}&" + $"{nameof(paramValues.CourseHours)}={paramValues.CourseHours}&" + $"{nameof(paramValues.CourseStudyTime)}={paramValues.CourseStudyTime}&" + $"{nameof(paramValues.StartDate)}={paramValues.StartDate}&" + $"{nameof(paramValues.Distance)}={paramValues.Distance}&" + $"{nameof(paramValues.FilterA)}={paramValues.FilterA}&" + $"{nameof(paramValues.Page)}={paramValues.Page}&" + $"{nameof(paramValues.D)}={paramValues.D}&" + $"{nameof(paramValues.OrderByValue)}={paramValues.OrderByValue}"; return(searchTerm); }
public override void TestPerformed() { RunProcessRequest process = new RunProcessRequest(); process.WebServiceType = GetWebServiceType(); process.Login = GetLogin(); ParamValues paramsV = new ParamValues(); paramsV.AddField("C_BPartner_ID", "50003"); process.ParamValues = paramsV; WebServiceConnection client = GetClient(); try { RunProcessResponse response = client.SendRequest(process); if (response.Status == WebServiceResponseStatus.Error) { Console.WriteLine(response.ErrorMessage); } else { Console.WriteLine(response.Summary); } } catch (Exception e) { Console.WriteLine(e); } }
protected override string GetCountSql() { var result = string.Format("SELECT COUNT(1) FROM {0}", base.EntityInfo.TableName); if (!ParamValues.Any()) { return(result); } return(string.Format("{0} {1}", result, base.WhereSql)); }
public Task <IActionResult> Page(ParamValues paramValues, bool isTest) { logService.LogInformation($"{nameof(this.Page)} has been called"); if (paramValues == null) { logService.LogError($"paramValues is null for method: {nameof(Page)} on controller {nameof(CourseController)}"); return(Task.FromResult <IActionResult>(StatusCode((int)HttpStatusCode.NotFound))); } return(PageInternalAsync(paramValues, isTest)); }
protected override void SetActionDic() { if (ParamKeys.Count != ParamValues.Count) { Debug.LogError(string.Format("{0} paramKeys count is not equals paramValues count,please check resource!!!", name)); return; } if (TryAddItemToList(ParamKeys, KeyId)) { ParamValues.Add(TeaUtil.CurTeaId); } base.SetActionDic(); }
public async Task AjaxChangedReturnAutoLocationSuggestions(string townOrPostcode, string coordinates, bool expectAutoLocationSuggest) { // arrange var controller = BuildCourseController(MediaTypeNames.Text.Html); var paramValues = new ParamValues { Town = townOrPostcode, Coordinates = coordinates, }; var appdata = System.Text.Json.JsonSerializer.Serialize(paramValues); var returnedCourseData = new CourseSearchResult { ResultProperties = new CourseSearchResultProperties { Page = 1, TotalResultCount = 1, TotalPages = 1, }, Courses = new List <Course> { new Course { Title = "Maths", CourseId = "1", AttendancePattern = "Online", Description = "This is a test description - over 220 chars" + new string(' ', 220) }, }, }; A.CallTo(() => FakeLocationsService.GetSuggestedLocationsAsync(A <string> .Ignored)).Returns(GetTestSuggestedLocations()); A.CallTo(() => FakeFindACoursesService.GetFilteredData(A <CourseSearchFilters> .Ignored, A <CourseSearchOrderBy> .Ignored, A <int> .Ignored)).Returns(returnedCourseData); A.CallTo(() => FakeViewHelper.RenderViewAsync(A <CourseController> .Ignored, A <string> .Ignored, A <BodyViewModel> .Ignored, A <bool> .Ignored)).Returns("<p>some markup</p>"); // act var result = await controller.AjaxChanged(appdata).ConfigureAwait(false); // assert if (expectAutoLocationSuggest) { A.CallTo(() => FakeLocationsService.GetSuggestedLocationsAsync(A <string> .Ignored)).MustHaveHappenedOnceExactly(); result.AutoSuggestedTown.Should().Be("LN1 (LAN1)"); result.UsingAutoSuggestedLocation.Should().BeTrue(); result.DidYouMeanLocations.Count.Should().Be(1); } else { A.CallTo(() => FakeLocationsService.GetSuggestedLocationsAsync(A <string> .Ignored)).MustNotHaveHappened(); result.UsingAutoSuggestedLocation.Should().BeFalse(); } controller.Dispose(); }
public async Task FilterResultReturnsSuccessWithPostcodeAndRegions(string mediaTypeName) { using var controller = BuildDetailsController(mediaTypeName); var returnedCourseData = new CourseDetails { Title = "Maths in a unit test", Description = "This is a maths in a top class description", EntryRequirements = "Bring yourself and a brain", SubRegions = new List <SubRegion> { new SubRegion { SubRegionId = Guid.NewGuid().ToString(), Name = "sub-region-1", ParentRegion = new ParentRegion { RegionId = Guid.NewGuid().ToString(), Name = "region-1", }, }, new SubRegion { SubRegionId = Guid.NewGuid().ToString(), Name = "sub-region-2", ParentRegion = new ParentRegion { RegionId = Guid.NewGuid().ToString(), Name = "region-2", }, }, }, }; A.CallTo(() => FakeFindACoursesService.GetCourseDetails(CourseId, RunId)).Returns(returnedCourseData); var paramValues = new ParamValues { Page = 1, D = 1, OrderByValue = "StartDate", Town = "CV1 2WT", }; var result = await controller.Details(CourseId, null, RunId, "Maths", paramValues).ConfigureAwait(false); Assert.IsType <ViewResult>(result); }
public async Task GetTLevelDetailsReturnsFailedOnServiceErrors(string errorMesage, HttpStatusCode expectedHttpStatusCode) { //Set Up A.CallTo(() => FakeFindACoursesService.GetTLevelDetails(A <string> .Ignored, A <string> .Ignored)).Throws(new SystemException(errorMesage)); using var controller = BuildDetailsController("*/*"); var paramValues = new ParamValues(); //Act var result = await controller.TLevelDetails(CourseId, TLevelLocationId, "testSearchTerm", paramValues).ConfigureAwait(false); //Asserts var resultStatus = result as StatusCodeResult; resultStatus.StatusCode.Should().Be((int)expectedHttpStatusCode); A.CallTo(() => FakeLogService.LogError(A <string> .Ignored)).MustHaveHappenedOnceExactly(); }
public async Task GetCourseDetailsReturnsNotFoundForNullRunId() { // arrange using var controller = BuildDetailsController("*/*"); var paramValues = new ParamValues { Page = 1, D = 1, OrderByValue = "StartDate", }; // act var actual = await controller.Details(CourseId, null, null, "testSearchTerm", paramValues); // assert actual.Should().BeEquivalentTo(new StatusCodeResult((int)HttpStatusCode.NotFound)); }
public void ConfirmPlan(string temperatureCorridors, string lightCorridors, string acidityCorridors, string wetnessCorridors, string temperatureIntervals, string lightIntervals, string acidityIntervals, string wetnessIntervals) { string message = ""; if (_verification.PlanConfigurationVerification(acidityCorridors, lightCorridors, temperatureCorridors, wetnessCorridors, acidityIntervals, lightIntervals, temperatureIntervals, wetnessIntervals, ref message)) { //MUST BE REWORKED string[] temperatureCor = temperatureCorridors.Split(';'); string[] temperatureInts = temperatureIntervals.Split(';'); string[] lightCor = lightCorridors.Split(';'); string[] lightInts = lightIntervals.Split(';'); string[] acidityCor = acidityCorridors.Split(';'); string[] acidityInts = acidityIntervals.Split(';'); string[] wetnessCor = wetnessCorridors.Split(';'); string[] wetnessInts = wetnessIntervals.Split(';'); ParamValues[] paramValues = new ParamValues[temperatureInts.Length]; for (int i = 0; i < temperatureCor.Length; i++) { string[] tempVal = temperatureCor[i].Split('-'); paramValues[i].temperature.minValue = Convert.ToDouble(tempVal[0]); paramValues[i].temperature.maxValue = Convert.ToDouble(tempVal[1]); string[] lightVal = lightCor[i].Split('-'); paramValues[i].light.minValue = Convert.ToDouble(lightVal[0]); paramValues[i].light.maxValue = Convert.ToDouble(lightVal[1]); string[] acidityVal = acidityCor[i].Split('-'); paramValues[i].acidity.minValue = Convert.ToDouble(acidityVal[0]); paramValues[i].acidity.maxValue = Convert.ToDouble(acidityVal[1]); string[] wetnessVal = wetnessCor[i].Split('-'); paramValues[i].wetness.minValue = Convert.ToDouble(wetnessVal[0]); paramValues[i].wetness.maxValue = Convert.ToDouble(wetnessVal[1]); paramValues[i].timeSlice = Convert.ToInt32(temperatureInts[i]); } _model.currentGrowthPlan.Initialize(paramValues); _view.Close(); } else { _view.ShowMessage(message); } }
/// <summary> /// Chargement des paramètres avec datavalue/xml /// </summary> /// <param name="FluxConfig"></param> public void LoadConfig(ParamValues FluxConfig) { this.FluxConfig = FluxConfig; // COnfig Loop ParamValuesNode FluxConfigProcessLoop = FluxConfig.Get("/param/process/loop", false); if (FluxConfigProcessLoop != null) { if (FluxConfigProcessLoop.GetObject("iteration", DataAccessorOptionEnum.None) != null) { this.ConfigLoopIterations = FluxConfigProcessLoop.GetInt("iterations"); } if (FluxConfigProcessLoop.GetObject("sleep", DataAccessorOptionEnum.None) != null) { this.ConfigLoopSleep = FluxConfigProcessLoop.GetInt("sleep"); } } }
public async Task GetCourseDetailsThrowsExceptionForNullRunId() { // arrange var controller = BuildDetailsController("*/*"); var paramValues = new ParamValues { Page = 1, D = 1, OrderByValue = "StartDate", }; // act Func <Task> act = async() => await controller.Details(CourseId, null, null, "testSearchTerm", paramValues).ConfigureAwait(false); // assert act.Should().Throw <ArgumentNullException>(); controller.Dispose(); }
public async Task GetCourseDetailsReturnsFailedOnServiceErrors() { //Set Up A.CallTo(() => FakeFindACoursesService.GetCourseDetails(A <string> .Ignored, A <string> .Ignored)).Throws(new SystemException()); var controller = BuildDetailsController("*/*"); var paramValues = new ParamValues(); //Act var result = await controller.Details(CourseId, RunId, null, "testSearchTerm", paramValues).ConfigureAwait(false); //Asserts var resultStatus = result as StatusCodeResult; resultStatus.StatusCode.Should().Be((int)HttpStatusCode.FailedDependency); A.CallTo(() => FakeLogService.LogError(A <string> .Ignored)).MustHaveHappenedOnceExactly(); controller.Dispose(); }
public async Task AjaxChangedReturnsSuccessWithCorrectStates(string townOrPostcode, string coordinates, bool expectedShowDistance) { // arrange var controller = BuildCourseController(MediaTypeNames.Text.Html); var paramValues = new ParamValues { Town = townOrPostcode, Coordinates = coordinates, CourseType = "Online", CourseHours = "Full time", CourseStudyTime = "Daytime", }; var appdata = System.Text.Json.JsonSerializer.Serialize(paramValues); var returnedCourseData = new CourseSearchResult { ResultProperties = new CourseSearchResultProperties { Page = 1, TotalResultCount = 1, TotalPages = 1, }, Courses = new List <Course> { new Course { Title = "Maths", CourseId = "1", AttendancePattern = "Online", Description = "This is a test description - over 220 chars" + new string(' ', 220) }, }, }; A.CallTo(() => FakeFindACoursesService.GetFilteredData(A <CourseSearchFilters> .Ignored, A <CourseSearchOrderBy> .Ignored, A <int> .Ignored)).Returns(returnedCourseData); A.CallTo(() => FakeViewHelper.RenderViewAsync(A <CourseController> .Ignored, A <string> .Ignored, A <BodyViewModel> .Ignored, A <bool> .Ignored)).Returns("<p>some markup</p>"); // act var result = await controller.AjaxChanged(appdata).ConfigureAwait(false); // assert Assert.False(string.IsNullOrWhiteSpace(result.HTML)); Assert.Equal(returnedCourseData.Courses.ToList().Count, result.Count); result.ShowDistanceSelector.Should().Be(expectedShowDistance); controller.Dispose(); }
public async Task GetTlevelReturnsNotFound() { //Set Up const HttpStatusCode expectedHttpStatusCode = HttpStatusCode.NotFound; const TLevelDetails nullTLevelDetails = null; A.CallTo(() => FakeFindACoursesService.GetTLevelDetails(A <string> .Ignored, A <string> .Ignored)).Returns(nullTLevelDetails); using var controller = BuildDetailsController("*/*"); var paramValues = new ParamValues(); //Act var result = await controller.TLevelDetails(CourseId, TLevelLocationId, "testSearchTerm", paramValues).ConfigureAwait(false); //Asserts var resultStatus = result as StatusCodeResult; resultStatus.StatusCode.Should().Be((int)expectedHttpStatusCode); A.CallTo(() => FakeLogService.LogWarning(A <string> .Ignored)).MustHaveHappenedOnceExactly(); }
protected override string GetDeleteSql() { StringBuilder sql = new StringBuilder(); sql.AppendLine(string.Format("UPDATE {0} SET ", base.EntityInfo.TableName)); sql.AppendLine(string.Format(" Disabled=1,{0} ", base.GetUpdateColumnsSql())); sql.AppendLine(string.Format(" {0} AND Disabled=0 ", WhereSql)); if (ParamValues.Any()) { return(sql.ToString()); } var p = base.er.GetPrimary(base.EntityInfo); sql.AppendFormat(" AND {0}={1} ", p.Column, this.ParamPrefix + p.Field); return(sql.ToString()); }
public async Task <IActionResult> Page(ParamValues paramValues, bool isTest) { logService.LogInformation($"{nameof(this.Page)} has been called"); var isPostcode = !string.IsNullOrEmpty(paramValues.Town) ? (bool?)paramValues.Town.IsPostcode() : null; paramValues.D = isPostcode.HasValue && isPostcode.Value ? 1 : 0; var model = new BodyViewModel { CurrentSearchTerm = paramValues.SearchTerm, SideBar = new SideBarViewModel { TownOrPostcode = paramValues.Town, DistanceValue = paramValues.Distance, CourseType = ConvertStringToFiltersListViewModel(paramValues.CourseType), CourseHours = ConvertStringToFiltersListViewModel(paramValues.CourseHours), CourseStudyTime = ConvertStringToFiltersListViewModel(paramValues.CourseStudyTime), StartDateValue = paramValues.StartDate, CurrentSearchTerm = paramValues.SearchTerm, FiltersApplied = paramValues.FilterA, SelectedOrderByValue = paramValues.OrderByValue, D = paramValues.D, }, RequestPage = paramValues.Page, SelectedDistanceValue = paramValues.Distance, IsNewPage = true, IsTest = isTest, }; logService.LogInformation($"{nameof(this.Page)} generated the model and ready to pass to the view"); model.FromPaging = true; return(await FilterResults(model).ConfigureAwait(false)); }
private static string FormatSearchParameters(ParamValues paramValues, string currentSearchTerm) { if (paramValues.SearchTerm == null && currentSearchTerm != null) { paramValues.SearchTerm = currentSearchTerm; } var searchTerm = $"{nameof(paramValues.SearchTerm)}={paramValues.SearchTerm}&" + $"{nameof(paramValues.Town)}={WebUtility.HtmlEncode(paramValues.Town)}&" + $"{nameof(paramValues.CourseType)}={paramValues.CourseType}&" + $"{nameof(paramValues.CourseHours)}={paramValues.CourseHours}&" + $"{nameof(paramValues.CourseStudyTime)}={paramValues.CourseStudyTime}&" + $"{nameof(paramValues.StartDate)}={paramValues.StartDate}&" + $"{nameof(paramValues.Distance)}={paramValues.Distance}&" + $"{nameof(paramValues.FilterA)}={paramValues.FilterA}&" + $"{nameof(paramValues.Page)}={paramValues.Page}&" + $"{nameof(paramValues.D)}={paramValues.D}&" + $"{nameof(paramValues.OrderByValue)}={paramValues.OrderByValue}&" + $"{nameof(paramValues.Coordinates)}={WebUtility.HtmlEncode(paramValues.Coordinates)}&" + $"{nameof(paramValues.CampaignCode)}={paramValues.CampaignCode}&" + $"{nameof(paramValues.QualificationLevels)}={paramValues.QualificationLevels}"; return(searchTerm); }
public async Task <IActionResult> Details(string courseId, string runId, string r, string currentSearchTerm, ParamValues paramValues) { logService.LogInformation($"{nameof(this.Details)} has been called"); if (paramValues == null) { throw new ArgumentNullException(nameof(paramValues)); } var model = new DetailsViewModel(); runId ??= r; model.SearchTerm = FormatSearchParameters(paramValues, currentSearchTerm); if (string.IsNullOrEmpty(courseId) || string.IsNullOrEmpty(runId)) { throw new ArgumentNullException("Course Id and/or runId does not have a value"); } try { model.CourseDetails = await findACourseService.GetCourseDetails(courseId, runId).ConfigureAwait(false); model.CourseRegions = model.CourseDetails.SubRegions != null?TransformSubRegionsToRegions(model.CourseDetails.SubRegions) : null; model.DetailsRightBarViewModel.Provider = mapper.Map <ProviderViewModel>(model.CourseDetails.ProviderDetails); model.DetailsRightBarViewModel.SpeakToAnAdviser = await staticContentDocumentService.GetByIdAsync(new Guid(cmsApiClientOptions.ContentIds)).ConfigureAwait(false); } catch (Exception ex) { logService.LogError($"Get course details caused an error: {ex}. The values passed were: course id: {courseId} and run id: {runId}"); //Return an error code to cause the problem page to be displayed, previously this was returning OK with an empty model, //this causes errors in the view and then goes to the problem page return(StatusCode((int)HttpStatusCode.FailedDependency)); } return(View(model)); }
public async Task <IActionResult> TLevelDetails(string tlevelId, string tlevelLocationId, string currentSearchTerm, ParamValues paramValues) { logService.LogInformation($"{nameof(this.TLevelDetails)} has been called"); if (paramValues == null) { throw new ArgumentNullException(nameof(paramValues)); } var model = new TLevelDetailsViewModel(); if (paramValues.SearchTerm == null && currentSearchTerm != null) { paramValues.SearchTerm = currentSearchTerm; } model.SearchTerm = FormatSearchParameters(paramValues, currentSearchTerm); model.TlevelDetails = await findACourseService.GetTLevelDetails(tlevelId, tlevelLocationId).ConfigureAwait(false); model.DetailsRightBarViewModel.Provider = mapper.Map <ProviderViewModel>(model.TlevelDetails.ProviderDetails); model.DetailsRightBarViewModel.SpeakToAnAdviser = await staticContentDocumentService.GetByIdAsync(new Guid(cmsApiClientOptions.ContentIds)).ConfigureAwait(false); return(View("tlevelDetails", model)); }
public bool PlanConfigurationVerification(string acidity, string light, string temperature, string wetness, string acidityInterval, string lightInterval, string temperatureInterval, string wetnessInterval, ref string message) { string[] temperatureCor = temperature.Split(';'); string[] temperatureInts = temperatureInterval.Split(';'); string[] lightCor = light.Split(';'); string[] lightInts = lightInterval.Split(';'); string[] acidityCor = acidity.Split(';'); string[] acidityInts = acidityInterval.Split(';'); string[] wetnessCor = wetness.Split(';'); string[] wetnessInts = wetnessInterval.Split(';'); ParamValues[] paramValues = new ParamValues[temperatureInts.Length]; try { for (int i = 0; i < temperatureCor.Length; i++) { string[] tempVal = temperatureCor[i].Split('-'); paramValues[i].temperature.minValue = Convert.ToDouble(tempVal[0]); paramValues[i].temperature.maxValue = Convert.ToDouble(tempVal[1]); string[] lightVal = lightCor[i].Split('-'); paramValues[i].light.minValue = Convert.ToDouble(lightVal[0]); paramValues[i].light.maxValue = Convert.ToDouble(lightVal[1]); string[] acidityVal = acidityCor[i].Split('-'); paramValues[i].acidity.minValue = Convert.ToDouble(acidityVal[0]); paramValues[i].acidity.maxValue = Convert.ToDouble(acidityVal[1]); string[] wetnessVal = wetnessCor[i].Split('-'); paramValues[i].wetness.minValue = Convert.ToDouble(wetnessVal[0]); paramValues[i].wetness.maxValue = Convert.ToDouble(wetnessVal[1]); paramValues[i].timeSlice = Convert.ToInt32(temperatureInts[i]); } } catch (Exception e) { message = "Wrong data! Format: \nCorridors(left):min1-max1;min2-max2 etc. \nIntervals(right):val1;val2 etc."; return(false); } foreach (ParamValues pv in paramValues) { if (pv.acidity.minValue > 14 || pv.acidity.minValue < 0 || pv.acidity.maxValue > 14 || pv.acidity.maxValue < 0 || pv.acidity.maxValue < pv.acidity.minValue) { message = "Wrong data! Format: \nCorridors(left):min1-max1;min2-max2 etc. \nIntervals(right):val1;val2 etc."; return(false); } if (pv.light.minValue > 500 || pv.light.minValue < 0 || pv.light.maxValue > 500 || pv.light.maxValue < 0 || pv.light.maxValue < pv.light.minValue) { message = "Wrong data! Format: \nCorridors(left):min1-max1;min2-max2 etc. \nIntervals(right):val1;val2 etc."; return(false); } if (pv.temperature.minValue > 80 || pv.temperature.minValue < 0 || pv.temperature.maxValue > 80 || pv.temperature.maxValue < 0 || pv.temperature.maxValue < pv.temperature.minValue) { message = "Wrong data! Format: \nCorridors(left):min1-max1;min2-max2 etc. \nIntervals(right):val1;val2 etc."; return(false); } if (pv.wetness.minValue > 100 || pv.wetness.minValue < 0 || pv.wetness.maxValue > 100 || pv.wetness.maxValue < 0 || pv.wetness.maxValue < pv.wetness.minValue) { message = "Wrong data! Format: \nCorridors(left):min1-max1;min2-max2 etc. \nIntervals(right):val1;val2 etc."; return(false); } if (pv.timeSlice <= 0) { message = "Wrong data! Format: \nCorridors(left):min1-max1;min2-max2 etc. \nIntervals(right):val1;val2 etc."; return(false); } } _status = true; return(true); }
public async Task <IActionResult> TLevelDetails(string tlevelId, string tlevelLocationId, string currentSearchTerm, ParamValues paramValues) { logService.LogInformation($"{nameof(this.TLevelDetails)} has been called"); if (paramValues == null) { logService.LogError($"paramValues is null for method: {nameof(TLevelDetails)} on controller {nameof(DetailsController)}"); return(BadRequest()); } var model = new TLevelDetailsViewModel(); if (paramValues.SearchTerm == null && currentSearchTerm != null) { paramValues.SearchTerm = currentSearchTerm; } try { model.SearchTerm = FormatSearchParameters(paramValues, currentSearchTerm); model.TlevelDetails = await findACourseService.GetTLevelDetails(tlevelId, tlevelLocationId).ConfigureAwait(false); if (model.TlevelDetails == null) { logService.LogWarning($"Get TLevel details retrieved no data. The values passed were: tlevel id: {tlevelId} and run id: {tlevelLocationId}"); return(NotFound()); } model.DetailsRightBarViewModel.Provider = mapper.Map <ProviderViewModel>(model.TlevelDetails.ProviderDetails); model.DetailsRightBarViewModel.SpeakToAnAdviser = await staticContentDocumentService.GetByIdAsync(new Guid(cmsApiClientOptions.ContentIds)).ConfigureAwait(false); } catch (Exception ex) { logService.LogError($"Get TLevel details caused an error: {ex}. The values passed were: tlevel id: {tlevelId} and location id: {tlevelLocationId}"); return(DetailsErrorReturnStatus(ex)); } return(View("tlevelDetails", model)); }
public async Task <IActionResult> Details(string courseId, string runId, string r, string currentSearchTerm, ParamValues paramValues) { logService.LogInformation($"{nameof(this.Details)} has been called"); if (paramValues == null) { logService.LogError($"paramValues is null for method: {nameof(Details)} on controller {nameof(DetailsController)}"); return(BadRequest()); } var model = new DetailsViewModel(); runId ??= r; model.SearchTerm = FormatSearchParameters(paramValues, currentSearchTerm); if (Request.Headers.TryGetValue(HeaderNames.Referer, out var refererValues)) { model.BackLinkUrl = refererValues.FirstOrDefault(x => x.Contains("job-profiles")); } if (string.IsNullOrEmpty(courseId) || string.IsNullOrEmpty(runId)) { logService.LogError($"Course Id ({courseId}) and/or runId ({runId}) does not have a value - returning NotFound"); return(NotFound()); } try { model.CourseDetails = await findACourseService.GetCourseDetails(courseId, runId).ConfigureAwait(false); if (model.CourseDetails == null) { logService.LogWarning($"Get course details retrieved no data. The values passed were: course id: {courseId} and run id: {runId}"); return(NotFound()); } model.CourseRegions = model.CourseDetails.SubRegions != null?TransformSubRegionsToRegions(model.CourseDetails.SubRegions) : null; model.DetailsRightBarViewModel.Provider = mapper.Map <ProviderViewModel>(model.CourseDetails.ProviderDetails); model.DetailsRightBarViewModel.SpeakToAnAdviser = await staticContentDocumentService.GetByIdAsync(new Guid(cmsApiClientOptions.ContentIds)).ConfigureAwait(false); model.CourseDetails.CourseWebpageLink = CompareProviderLinkWithCourseLink(model?.CourseDetails?.CourseWebpageLink, model.CourseDetails?.ProviderDetails?.Website); model.CourseDetails.HasCampaignCode = paramValues.CampaignCode == "LEVEL3_FREE"; } catch (Exception ex) { logService.LogError($"Get course details caused an error: {ex}. The values passed were: course id: {courseId} and run id: {runId}"); return(DetailsErrorReturnStatus(ex)); } return(View(model)); }