public async Task <ActionResult> SearchEssentialOil(SearchEssentialOilViewModel model)
        {
            //return PartialView("~/Views/SearchEssentialOil/_EssentialOilSearchResults.cshtml", new SearchResultViewModel { });


            var filter = new EssentialOilFilter {
                SearchText = model.SearchEssentialOilText
            };

            // Get all essential oils from database.
            var essentialOils = await _essentialOilService.GetByFilterAsync(filter);

            _log.LogInformation(
                $"Search result of essential oil names '{string.Join(", ", essentialOils.Select(e => e.Name))}' where found.");

            IList <EssentialOilViewModel> essentialOilViewModels = new List <EssentialOilViewModel>();

            // Create list of essential oils for view.
            foreach (var essentialOil in essentialOils)
            {
                essentialOilViewModels.Add(new EssentialOilViewModel(essentialOil));
            }

            var searchResultViewModel = new SearchResultViewModel
            {
                // Order the results by essential oil name.
                SearchEssentialOilResults       = essentialOilViewModels.OrderBy(m => m.Name).ToList(),
                SearchEssentialOilText          = model.SearchEssentialOilText,
                SearchEssentialOilResultsAmount = essentialOilViewModels.Count
            };

            _log.LogInformation("Show EssentialOilSearchResults");
            // Return PartialView as html.
            return(PartialView("~/Views/SearchEssentialOil/_EssentialOilSearchResults.cshtml", searchResultViewModel));
        }
        public async Task <ActionResult> Index(string lastEditedEssentialOilId)
        {
            var filter = new EssentialOilFilter();

            // Get all essential oils from database.
            var essentialOils = await _essentialOilService.GetAllAsync(filter);

            IList <EssentialOilViewModel> essentialOilViewModels = new List <EssentialOilViewModel>();

            // Create list of essential oils for view.
            foreach (var essentialOil in essentialOils)
            {
                essentialOilViewModels.Add(new EssentialOilViewModel(essentialOil));
            }

            // Create view model for Index view.
            var essentialOilViewModelIndex = new EssentialOilViewModelIndex(essentialOilViewModels);

            // Set value to where to scroll to.
            essentialOilViewModelIndex.LastEditedEssentialOilId = lastEditedEssentialOilId;

            return(View(essentialOilViewModelIndex));
        }
        public async Task <JsonResult> GetEssentialOilNames()
        {
            //return new JsonResult("{name : test}");

            try
            {
                var filter = new EssentialOilFilter();

                // Get all essential oils from database.
                var essentialOils = await _essentialOilService.GetAllAsync(filter);

                // Create array of essential oil names.
                var essentialOilNames = essentialOils.Select(e => e.Name).ToArray();

                _log.LogInformation($"Essential oil names '{string.Join(", ", essentialOilNames)}' where loaded.");
                // TODO: check this
                //return new JsonResult { Data = essentialOilNames, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
                return(new JsonResult(essentialOilNames));
            }
            catch (Exception e)
            {
                return(new JsonResult(new { e.Message, e.StackTrace }));
            }
        }