コード例 #1
0
        public void CreateNewExpressionOfInterest(ExpressInterestViewModel viewModel, int userId)
        {
            var expressionOfInterest = new ExpressInterestDataModel
            {
                PlayedBefore = (bool)viewModel.PlayedBeforeAnswer,
                Position     = viewModel.SelectedPosition,
                IdentityId   = userId
            };

            dbContext.ExpressionsOfInterest.Add(expressionOfInterest);
            dbContext.SaveChanges();
        }
        public ActionResult Express(ExpressInterestViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("~/Views/Player/Interested/Express.cshtml",
                            playerHelper.BuildExpressInterestModel(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/Express.cshtml",
                            playerHelper.BuildExpressInterestModel(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/Express.cshtml",
                            playerHelper.BuildExpressInterestModel(model)));
            }

            model.DateOfBirth = date;

            MemberRoleDataModel roleDataModel = memberHelper.CreateNewMemberRoleIfNotExist("interested");

            var userIdentity = new MemberIdentityDataModel
            {
                FirstName   = model.FirstName,
                LastName    = model.LastName,
                DateOfBirth = model.DateOfBirth,
                Gender      = model.SelectedGender,
                Email       = model.EmailAddress.ToLower(),
                Phone       = model.PhoneNumber,
                Roles       = new List <MemberRoleDataModel>
                {
                    roleDataModel
                }
            };

            var userId = memberHelper.CreateNewMemberIdentity(userIdentity);

            playerHelper.CreateNewExpressionOfInterest(model, userId);

            model.Submitted = true;

            return(View("~/Views/Player/Interested/Express.cshtml", model));
        }
コード例 #3
0
        public ExpressInterestViewModel BuildExpressInterestModel(ExpressInterestViewModel model)
        {
            model = model ?? new ExpressInterestViewModel();

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

            return(model);
        }
コード例 #4
0
ファイル: ProjectsController.cs プロジェクト: mrzuk/websearch
        public ActionResult ExpressInterest(ExpressInterestViewModel viewModel)
        {
            try
            {
                InterestedUsers_Projects user2Project = new InterestedUsers_Projects()
                {
                    ProjectId = viewModel.ProjectId, UserEmail = viewModel.Email, UserName = viewModel.User
                };
                Db.InterestedUsers_Projects.Add(user2Project);

                int written = Db.SaveChanges();

                try
                {
                    Configuration configurations = Configuration.Create(Db);
                    EmailMssg     mssg           = new EmailMssg();
                    mssg.IsHtml    = true;
                    mssg.Receivers = new List <string>()
                    {
                        configurations.ContactFormEmail
                    };
                    mssg.SenderAddress = configurations.ftpConfig.Login;
                    mssg.Subject       = "User " + viewModel.User + " expressed interest in project ";
                    mssg.TemplateModel = new ExpressInterestEmailModel()
                    {
                        ProjectName = viewModel.ProjectName, UserComment = viewModel.WhyInterested, UserEmail = viewModel.Email, UserName = viewModel.User
                    };
                    mssg.TemplateString = System.IO.File.ReadAllText(Server.MapPath("~/Templates/InterestedInProject.html"));

                    EmailSender.Send(configurations, mssg);
                }
                catch (Exception ex)
                {
                    string error = "Error while sending approvment email" + ex.ToString();
                    TempData["error"] = error;
                    return(RedirectToAction("Details", new { id = viewModel.ProjectId }));
                }
                return(new JsonResult()
                {
                    Data = new { success = true }
                });
            }
            catch (Exception ex)
            {
                TempData["error"] = "Error while expressing interest" + ex.ToString();
                return(RedirectToAction("Details", new { id = viewModel.ProjectId }));
            }
        }
コード例 #5
0
        public void EditExpressionOfInterest(int id, ExpressInterestViewModel viewModel)
        {
            ExpressInterestDataModel dataModel = dbContext.ExpressionsOfInterest.Find(id);

            if (dataModel == null)
            {
                throw new Exception();
            }
            else
            {
                dataModel.Identity.FirstName   = viewModel.FirstName;
                dataModel.Identity.LastName    = viewModel.LastName;
                dataModel.Identity.DateOfBirth = viewModel.DateOfBirth;
                dataModel.Identity.Gender      = viewModel.SelectedGender;
                dataModel.Identity.Email       = viewModel.EmailAddress.ToLower();
                dataModel.Identity.Phone       = viewModel.PhoneNumber;
                dataModel.PlayedBefore         = (bool)viewModel.PlayedBeforeAnswer;
                dataModel.Position             = viewModel.SelectedPosition;

                dbContext.SaveChanges();
            }
        }
コード例 #6
0
        public ExpressInterestViewModel BuildExpressInterestModel(int id)
        {
            ExpressInterestDataModel dataModel = dbContext
                                                 .ExpressionsOfInterest.Where(i => i.ExpressInterestId == id).First();

            var viewModel = new ExpressInterestViewModel();

            viewModel = BuildExpressInterestModel(viewModel);

            viewModel.FirstName          = dataModel.Identity.FirstName;
            viewModel.LastName           = dataModel.Identity.LastName;
            viewModel.SelectedGender     = dataModel.Identity.Gender;
            viewModel.DateOfBirth        = dataModel.Identity.DateOfBirth;
            viewModel.SelectedDay        = dataModel.Identity.DateOfBirth.Day.ToString();
            viewModel.SelectedMonth      = dataModel.Identity.DateOfBirth.Month.ToString();
            viewModel.SelectedYear       = dataModel.Identity.DateOfBirth.Year.ToString();
            viewModel.PhoneNumber        = dataModel.Identity.Phone;
            viewModel.EmailAddress       = dataModel.Identity.Email;
            viewModel.PlayedBeforeAnswer = dataModel.PlayedBefore;
            viewModel.SelectedPosition   = dataModel.Position;

            return(viewModel);
        }
        public ActionResult Edit(int id, ExpressInterestViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("~/Views/Player/Interested/Edit.cshtml",
                            playerHelper.BuildExpressInterestModel(model)));
            }

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

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

            playerHelper.EditExpressionOfInterest(id, model);

            ViewBag.Saved = "Changes Saved";

            return(View("~/Views/Player/Interested/Edit.cshtml",
                        playerHelper.BuildExpressInterestModel(id)));
        }