public AssignNumberViewModel BuildAssignNumberViewModel(AssignNumberViewModel model)
        {
            model = model ?? new AssignNumberViewModel();

            model.Positions           = BuildPositionsList();
            model.Genders             = BuildGendersList();
            model.HaveYouPlayedBefore = BuildYesNoList();
            model.Days             = BuildDaysList();
            model.Months           = BuildMonthsList();
            model.Years            = BuildYearsList();
            model.DateOfAssignment = DateTime.Now;

            return(model);
        }
        public int CreateNewNumberAssignment(AssignNumberViewModel viewModel)
        {
            var numberAssignment = new NumberAssignmentDataModel
            {
                IdentityId       = (int)viewModel.UserId,
                AssignedNumber   = viewModel.AssignedNumber,
                DateOfAssignment = viewModel.DateOfAssignment
            };

            dbContext.NumberAssignments.Add(numberAssignment);
            dbContext.SaveChanges();

            return(numberAssignment.NumberAssignmentId);
        }
Ejemplo n.º 3
0
 public AssignNumberPage(Member member)
 {
     InitializeComponent();
     BindingContext = viewModel = new AssignNumberViewModel(member);
 }
        public ActionResult AssignNumber(AssignNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("~/Views/Player/Interested/AssignNumber.cshtml",
                            playerHelper.BuildAssignNumberViewModel(model)));
            }

            if (playerHelper.NumberAlreadyAssigned(model.AssignedNumber, model.DateOfAssignment))
            {
                ModelState.AddModelError("UserId",
                                         "Number Assignment failed, this number has already been assigned today, if this " +
                                         "number has been assigned in error please contact the administrator.");

                return(View("~/Views/Player/Interested/AssignNumber.cshtml",
                            playerHelper.BuildAssignNumberViewModel(model)));
            }

            if (model.PreRegistered)
            {
                if (model.UserId == null)
                {
                    ModelState.AddModelError("UserId",
                                             "If player has pre-registered, use search to select.");

                    return(View("~/Views/Player/Interested/AssignNumber.cshtml",
                                playerHelper.BuildAssignNumberViewModel(model)));
                }

                if (playerHelper.PlayerAlreadyAssignedNumber((int)model.UserId, model.DateOfAssignment))
                {
                    ModelState.AddModelError("AssignedNumber",
                                             "Number Assignment failed, this user has already been assigned a number, if this " +
                                             "player has been assigned a number in error please contact the administrator.");

                    return(View("~/Views/Player/Interested/AssignNumber.cshtml",
                                playerHelper.BuildAssignNumberViewModel(model)));
                }
            }
            else
            {
                if (model.FirstName == null || model.LastName == null || model.EmailAddress == null ||
                    model.SelectedGender == null || model.SelectedDay == null || model.SelectedMonth == null ||
                    model.SelectedYear == null || model.EmailAddress == null || model.PhoneNumber == null ||
                    model.PlayedBeforeAnswer == null || model.SelectedPosition == null)
                {
                    ModelState.AddModelError("", "You have failed to fill a required field.");

                    return(View("~/Views/Player/Interested/AssignNumber.cshtml",
                                playerHelper.BuildAssignNumberViewModel(model)));
                }

                if (playerHelper.NumberOfUsersWithGivenEmail(model.EmailAddress) > 0)
                {
                    ModelState.AddModelError("EmailAddress",
                                             "An expression of interest with that email address already exists");

                    return(View("~/Views/Player/Interested/AssignNumber.cshtml",
                                playerHelper.BuildAssignNumberViewModel(model)));
                }

                var date = new DateTime();

                if (!playerHelper.ParseDate(model.SelectedDay, model.SelectedMonth, model.SelectedYear, out date))
                {
                    ModelState.AddModelError("DateOfBirth", "You have entered an invalid date.");

                    return(View("~/Views/Player/Interested/AssignNumber.cshtml",
                                playerHelper.BuildAssignNumberViewModel(model)));
                }

                model.DateOfBirth = date;

                var userId = memberHelper.CreateNewMemberIdentity(new MemberIdentityDataModel
                {
                    FirstName   = model.FirstName,
                    LastName    = model.LastName,
                    DateOfBirth = model.DateOfBirth,
                    Gender      = model.SelectedGender,
                    Email       = model.EmailAddress,
                    Phone       = model.PhoneNumber
                });

                model.UserId = userId;

                playerHelper.CreateNewExpressionOfInterest(new ExpressInterestViewModel
                {
                    FirstName          = model.FirstName,
                    LastName           = model.LastName,
                    DateOfBirth        = model.DateOfBirth,
                    SelectedGender     = model.SelectedGender,
                    SelectedDay        = model.SelectedDay,
                    SelectedMonth      = model.SelectedMonth,
                    SelectedYear       = model.SelectedYear,
                    PhoneNumber        = model.PhoneNumber,
                    EmailAddress       = model.EmailAddress,
                    PlayedBeforeAnswer = model.PlayedBeforeAnswer,
                    SelectedPosition   = model.SelectedPosition,
                }, userId);
            }

            playerHelper.CreateNewNumberAssignment(model);

            return(View("~/Views/Player/Interested/AssignNumber.cshtml",
                        playerHelper.BuildAssignNumberViewModel(
                            new AssignNumberViewModel {
                Submitted = true
            })));
        }