public ActionResult CreateProfile(CreateProfileModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(CreateViewModel());
            }

            var request = new CreateProfileRequest(User.Identity.Name, model.Name, model.Location, model.Sports,
                                                   model.SkillLevel);

            var handler = new CreateProfileRequestHandle(new SportRepository(), new LocationRepository(),
                                                          new ProfileRepository(), new ProfileBuilder());

            var response = handler.Handle(request);

            if (response.Status == ResponseCodes.Success)
            {
                return RedirectToAction("ChooseProfile");
            }

            var errorMessage = response.Status.GetMessage();
            ModelState.AddModelError("", errorMessage);

            return View(CreateViewModel());
        }
        private CreateProfileModel CreateViewModel()
        {
            var sports = new SportRepository().GetNamesOfAllSports();
            var locations = new LocationRepository().GetNamesOfAllLocations();

            var availableSports = new SelectList(sports);
            var availableLocations = new SelectList(locations);

            var viewModel = new CreateProfileModel
                                {
                                    AvailableSports = availableSports,
                                    AvailableLocations = availableLocations,
                                    AvailableSkillLevels = new SelectList(new SkillLevelProvider().GetListOfAvailableSkillLevels())
                                };
            return viewModel;
        }