Пример #1
0
        public StdResult<AnswerChoice> SetAnswer(User u, int questionNumber, int answerChosen)
        {
            using (CollectContext context = new CollectContext())
            {
                if(!context.Users.Any(user => user.Id == u.Id))
                    return StdResult<AnswerChoice>.BadResult("User introuvable en base.");

                var query = context.AnswerChoices.Where(answerChoice => answerChoice.User.Id == u.Id && answerChoice.QuestionNumber == questionNumber);
                bool alreadyAnswered = query.Any();
                AnswerChoice ac = null;
                if (query.Any())
                {
                    ac = query.FirstOrDefault();
                    ac.AnswerChosen = answerChosen;
                }
                else
                {
                    ac = new AnswerChoice
                    {
                        UserId = u.Id,
                        AnswerChosen = answerChosen,
                        QuestionNumber = questionNumber
                    };
                    context.AnswerChoices.Add(ac);

                    context.SaveChanges();
                    u.AnswerChoices.Add(ac);
                }

                context.SaveChanges();
                return StdResult<AnswerChoice>.OkResultInstance(ac);
            }
        }
        public StdResult<InstantGagnant> WinInstantGagnant(User MainUser)
        {
            using (CollectContext context = new CollectContext())
            {
                DateTime now = DateTime.Now;
                var query = from ig in context.InstantsGagnants
                            where now > ig.StartDateTime
                            && !ig.Won
                            orderby ig.StartDateTime
                            select ig;
                if (query.Any<InstantGagnant>())
                {
                    InstantGagnant ig = query.First<InstantGagnant>();

                    ig.UserId = MainUser.Id;
                    ig.Won = true;
                    ig.WonDate = DateTime.Now;
                    MainUser.InstantsGagnantWon.Add(ig);
                    context.SaveChanges();
                    return StdResult<InstantGagnant>.OkResultInstance(ig);
                }
                else
                    return StdResult<InstantGagnant>.BadResult("Pas d'instant gagnant disponible");
            }
        }
Пример #3
0
        public StdResult<List<AnswerChoice>> GetUsersAnswers(User u)
        {
            using (CollectContext context = new CollectContext())
            {
                if (!context.Users.Any(user => user.Id == u.Id))
                    return StdResult<List<AnswerChoice>>.BadResult("User introuvable en base.");

                var query = context.AnswerChoices.Where(answerChoice => answerChoice.User.Id == u.Id);
                bool alreadyAnswered = query.Any();

                return StdResult<List<AnswerChoice>>.OkResultInstance(query.ToList());
            }
        }
Пример #4
0
        public void Init()
        {
            Now = DateTime.Now;
            IgLogic = new InstantGagnantLogic();
            CleanUp();
            UserDataService uDal = new UserDataService();
            MainUser = uDal.GetUserByEmail("*****@*****.**");

            List<InstantGagnant> list = new List<InstantGagnant>
            {
                new InstantGagnant { FrontHtmlId = "blason-carnetcanal", Label= "second_winable", StartDateTime = new DateTime(Now.Year, Now.Month, Now.Day), Won = false},
                new InstantGagnant { FrontHtmlId = "blason-carnetcine", Label= "non_winable", StartDateTime = new DateTime(Now.Year, Now.Month, Now.Day).AddDays(1), Won = false},
                new InstantGagnant { FrontHtmlId = "blason-iphone", Label= "first_winable", StartDateTime = new DateTime(Now.Year, Now.Month, Now.Day).AddDays(-1), Won = false},
            };
            foreach (InstantGagnant ig in list)
            {
                IgLogic.AddInstantGagnant(ig);
            }
        }
Пример #5
0
		public ActionResult Index(BasicUserInfoViewModel model)
		{
			if (ModelState.IsValid)
			{
				User alreadyInDbUser = UserDal.GetUserByEmail(model.Email);
				if (alreadyInDbUser != null)
				{

					Session["UserId"] = alreadyInDbUser.Id;
					return RedirectToAction("DejaParticipe");
				}

				// We're sure it's a new user now

				// create user
				User newUser = new User
				{
					Civilite = model.Civi.ToString(),
					FirstName = model.FirstName,
					LastName = model.LastName,
					Email = model.Email,
					IsCanal = model.IsCanal.Value,
					IsOffreGroupCanal = model.IsOffreGroupCanal,
					Zipcode = Convert.ToInt32(model.Zipcode),
					CreationDate = DateTime.Now,
					Provenance = Session["utm_campaign"] == null ? "" : Session["utm_campaign"].ToString()
				};
				newUser.InitStepChances();

				StdResult<User> saveNewUserResult = UserDal.Create(newUser);
				if (!saveNewUserResult.Result)
					throw new CollecteException(saveNewUserResult.Message);
				if (saveNewUserResult.ReturnObject.Id == Guid.Empty)
					throw new CollecteException("Guid user vide");
				Session["UserOptin"] = newUser.IsOffreGroupCanal;
				Session["UserId"] = saveNewUserResult.ReturnObject.Id;
				newUser = saveNewUserResult.ReturnObject;
				newUser.InstantsGagnantWon = new List<InstantGagnant>();



				// Play 'instant gagnant'
				StdResult<InstantGagnant> currentIgResult = (new InstantGagnantLogic()).PlayInstantGagnant(newUser);
				if (currentIgResult.Result)
				{
					InstantGagnant ig = currentIgResult.ReturnObject;
					Session["WhatYouWonString"] = ig.Label;
					Session["WhatYouWonDivId"] = ig.FrontHtmlId;

					return RedirectToAction("Gagne");
				}
				else
				{
					return RedirectToAction("Perdu");
				}
			}
			return View(model);
		}
Пример #6
0
		private MailHelper CreateFriendsEmailInstance(User userFromDb)
		{
			MailHelper mh = new MailHelper(MailType.WithTemplateHtml);
			mh.Recipients = new List<string> { userFromDb.FriendEmail1, userFromDb.FriendEmail2, userFromDb.FriendEmail3 }
				.Where(item => !string.IsNullOrWhiteSpace(item))
				.ToList()
				.ConvertAll(item => new MailAddress(item));

			string parrainName = string.Format("{0}", userFromDb.FirstName);

			mh.MailSubject = string.Format("{0} vous invite à gagner des équipements Sony !", parrainName);
			mh.ReplyTo = new MailAddress("CANALPLUS <*****@*****.**>");
			mh.Sender = new MailAddress("CANALPLUS <*****@*****.**>");

			mh.TemplatePath = Server.MapPath("~/Content/mail/");
			mh.ReplacementFields = new List<ReplaceField> { 
				new ReplaceField { Replace = "#imagesPath#", With = string.Format("{0}/Content/mail/images/", ConfigurationManager.AppSettings["shareUrl"]) },
				new ReplaceField { Replace = "#senderFullName#", With =  parrainName},
				new ReplaceField { Replace = "#staticMailViewLink#", With = string.Format("{0}/Site/FriendMailDisplay/{1}", UrlHelperSb.GetApplicationBaseUrl(false) , userFromDb.Id)},
				new ReplaceField { Replace = "#opeLink#", With = string.Format("{0}", UrlHelperSb.GetApplicationBaseUrl(false))},
				new ReplaceField { Replace = "#parrainMail#", With = string.Format("{0}", userFromDb.Email)},
			};
			return mh;
		}