public async Task <ActionResult> Helpdesk(ContactMessageViewModel model)
        {
            return(await Task.Run <ActionResult>(() =>
            {
                var candidateId = GetCandidateId();
                var response = _homeMediator.SendContactMessage(candidateId, model);

                switch (response.Code)
                {
                case HomeMediatorCodes.SendContactMessage.ValidationError:
                    ModelState.Clear();
                    response.ValidationResult.AddToModelState(ModelState, string.Empty);
                    return View(model);

                case HomeMediatorCodes.SendContactMessage.SuccessfullySent:
                    ModelState.Clear();
                    SetUserMessage(response.Message.Text, response.Message.Level);
                    return View(response.ViewModel);

                case HomeMediatorCodes.SendContactMessage.Error:
                    SetUserMessage(response.Message.Text, response.Message.Level);
                    return View(response.ViewModel);
                }

                throw new InvalidMediatorCodeException(response.Code);
            }));
        }
        public ActionResult ContactUs(ContactMessageViewModel viewModel)
        {
            var userName = GetProviderUserName();
            var response = _homeMediator.SendContactMessage(userName, viewModel);

            switch (response.Code)
            {
            case HomeMediatorCodes.SendContactMessage.ValidationError:
                ModelState.Clear();
                response.ValidationResult.AddToModelState(ModelState, string.Empty);
                return(View(viewModel));

            case HomeMediatorCodes.SendContactMessage.SuccessfullySent:
                ModelState.Clear();
                SetUserMessage(response.Message.Text, response.Message.Level);
                return(View(response.ViewModel));

            case HomeMediatorCodes.SendContactMessage.Error:
                SetUserMessage(response.Message.Text, response.Message.Level);
                return(View(response.ViewModel));
            }

            throw new InvalidMediatorCodeException(response.Code);
        }