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"); } }
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()); } }
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); } }
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); }
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; }