public SearchSideBySideMessage(
     IMessageServiceConfiguration configuration,
     SearchSideBySideViewModel model,
     string searchUrl)
 {
     _configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
     _model = model ?? throw new ArgumentNullException(nameof(model));
     _searchUrl = searchUrl ?? throw new ArgumentNullException(nameof(searchUrl));
 }
        public async Task <ActionResult> SearchSideBySide(SearchSideBySideViewModel input)
        {
            var currentUser = GetCurrentUser();

            if (!_featureFlagService.IsSearchSideBySideEnabled(currentUser))
            {
                return(new HttpNotFoundResult());
            }

            var searchUrl = Url.SearchSideBySide(searchTerm: input.SearchTerm?.Trim(), relativeUrl: false);
            await _searchSideBySideService.RecordFeedbackAsync(input, searchUrl);

            TempData["Message"] = "Thank you for providing feedback! Feel free to try some other queries.";

            return(RedirectToAction(nameof(SearchSideBySide)));
        }
            public Facts()
            {
                SearchSideBySideService = new Mock <ISearchSideBySideService>();
                FeatureFlagService      = new Mock <IFeatureFlagService>();
                HttpContext             = new Mock <HttpContextBase>();

                FeatureFlagService.SetReturnsDefault(true);

                SearchTerm = "json";
                ViewModel  = new SearchSideBySideViewModel
                {
                    SearchTerm = SearchTerm,
                };

                Target = new ExperimentsController(
                    SearchSideBySideService.Object,
                    FeatureFlagService.Object);

                TestUtility.SetupHttpContextMockForUrlGeneration(HttpContext, Target);
                Target.SetOwinContextOverride(Fakes.CreateOwinContext());
                Target.SetCurrentUser(TestUtility.FakeUser);
            }
 public Facts()
 {
     Model     = new SearchSideBySideViewModel();
     SearchUrl = "https://localhost/experiments/search-sxs?q=json";
 }