private void CreateNewTeam(vmRegistration_CreateTeam model, Registration reg)
        {
            if (string.IsNullOrEmpty(model.TeamName))
            {
                ModelState.AddModelError("TeamName", "Team Name is Required");
                return;
            }

            Match match = Regex.Match(model.TeamName, @"([a-zA-Z].*?){3}", RegexOptions.IgnoreCase);

            if (!match.Success)
            {
                ModelState.AddModelError("TeamName", "Team Name must contain at least 3 letters.");
                return;
            }

            Team newTeam = new Team {
                EventId = model.EventId, Name = model.TeamName, CreatorID = CurrentUser.UserId
            };

            ServiceResult tempTeamResult = _service.GenerateTempTeam(newTeam);

            if (!tempTeamResult.Success)
            {
                Utilities.AddModelStateErrors(ModelState, tempTeamResult.GetServiceErrors());
            }
            else
            {
                reg.Team = newTeam;
            }
        }
        public ActionResult Transfer(vmRegistration_Transfer model)
        {
            if (!Utilities.IsValidCart())
            {
                return(RedirectToAction("Index", "home"));
            }

            var  action   = SessionManager.CurrentCart.ActionItems[model.ItemId];
            var  transfer = (TransferAction)action.ActionObject;
            bool isValid  = true;

            // make sure to not transfer to self.
            if (model.FirstName.Replace(" ", "") == CurrentUser.FirstName.Replace(" ", "") && model.LastName.Replace(" ", "") == CurrentUser.LastName.Replace(" ", ""))
            {
                List <ServiceError> errors = new List <ServiceError>();
                errors.Add(new ServiceError("Can't transfer run to yourself..."));
                Utilities.AddModelStateErrors(ModelState, errors);
                isValid = false;
            }

            if (ModelState.IsValid && isValid)
            {
                transfer.FirstName          = model.FirstName;
                transfer.LastName           = model.LastName;
                transfer.Email              = model.Email;
                action.ItemReadyForCheckout = true;

                return(RedirectToAction("checkout", "cart"));
            }

            Registration existingReg = _service.GetRegistrationById(transfer.RegistrationId);

            model.EventOverview = _service.GetEventOverviewById(existingReg.EventWave.EventDate.EventId);

            return(View(model));
        }