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();
        }
Exemplo n.º 5
0
        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());
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 9
0
        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));
        }
Exemplo n.º 10
0
        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));
        }
Exemplo n.º 11
0
 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();
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        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();
        }
Exemplo n.º 15
0
        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));
        }
Exemplo n.º 16
0
        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);
            }
        }
Exemplo n.º 17
0
        /// <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();
        }
Exemplo n.º 21
0
        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();
        }
Exemplo n.º 22
0
        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());
        }
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 25
0
        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));
        }
Exemplo n.º 26
0
        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));
        }