private UserCodeModel GetExistingUserCode(long userId, long storeId) { var sqlQuery = GetUserCodeQuery(userId, storeId); UserCodeModel userCodeModel = _db.Query <UserCodeModel>(sqlQuery).FirstOrDefault(); return(userCodeModel); }
public AwardModel CheckCode(UserCodeModel userCodeModel) { using (var uow = new UnitOfWork(dbContext)) { var code = codeRepository.GetAll().FirstOrDefault(x => x.CodeValue == userCodeModel.Code.CodeValue); if (code == null) { throw new ApplicationException("Invalid Code"); } if (code.IsUsed) { throw new ApplicationException("Code is used"); } var userCode = new UserCode(userCodeModel.FirstName, userCodeModel.LastName, userCodeModel.Email, DateTime.Now, code); userCodeRepository.Insert(userCode); Award award = null; if (code.IsWinning) { award = GetRandomAward(RuffledType.Immediate); var userCodeAward = new UserCodeAward(award, userCode, DateTime.Now); userCodeAwardRepository.Insert(userCodeAward); } code.IsUsed = true; uow.Commit(); return(award?.Map <Award, AwardModel>()); } }
/// <summary> /// Checks if a code is a winner and registers code in database for future ruffles /// </summary> /// <param name="userCodeModel"></param> /// <returns></returns> public AwardModel CheckCode(UserCodeModel userCodeModel) { var codeRepository = new Repository <Code>(new DbContext("LotteryDb")); var code = codeRepository.GetAll().FirstOrDefault(x => x.CodeValue == userCodeModel.Code.CodeValue); if (code == null) { throw new ApplicationException("Invalid code."); } if (code.IsUsed) { throw new ApplicationException("Code is used."); } var userCode = new UserCode { Code = code, Email = userCodeModel.Email, FirstName = userCodeModel.FirstName, LastName = userCodeModel.LastName, SentAt = DateTime.Now }; var userCodeRepository = new Repository <UserCode>(new DbContext("LotteryDb")); userCodeRepository.Insert(userCode); Award award = new Award() { RuffledType = (byte)RuffledType.Immediate, AwardName = "Another 0.5 Bottle", Quantity = 1 }; var userCodeAward = new UserCodeAward { Award = award, UserCode = userCode, WonAt = DateTime.Now }; var userCodeAwardRepository = new Repository <UserCodeAward>(new DbContext("LotteryDb")); userCodeAwardRepository.Insert(userCodeAward); code.IsUsed = true; return(new AwardModel() { AwardName = award.AwardName, AwardDescription = award.AwardDescription }); }
public AwardModel CheckCode(UserCodeModel userCodeModel) { using (var uow = new UnitOfWork(_dbContext)) { var code = _codeRepository.GetAll().FirstOrDefault(x => x.CodeValue == userCodeModel.Code.CodeValue); if (code == null) { throw new ApplicationException("Invalid code."); } if (code.IsUsed) { throw new ApplicationException("Code has already been used."); } var userCode = new UserCode { Code = code, FirstName = userCodeModel.FirstName, LastName = userCodeModel.LastName, EMail = userCodeModel.EMail, SentAt = DateTime.Now }; _userCodeRepository.Insert(userCode); Award award = null; if (code.IsWinning) { award = GetRandomAward(RaffledType.Immediate); var userCodeAward = new UserCodeAward { Award = award, UserCode = userCode, WonAt = DateTime.Now }; _userCodeAwardRepository.Insert(userCodeAward); } code.IsUsed = true; uow.Commit(); return(award?.Map <Award, AwardModel>()); } }
public AwardModel CheckCode(UserCodeModel userCodeModel) { return(null); //var _codeRepository = new Repository<Code>(new DbContext("LotteryDb")); //var code = _codeRepository.GetAll().FirstOrDefault(x => x.CodeValue == userCodeModel.Code.CodeValue); //if (code == null) //{ // throw new ApplicationException("Invalid code."); //} //if (code.IsUsed) //{ // throw new ApplicationException("Code used."); //} //var userCode = new UserCode //{ // Code = code, // Email = userCodeModel.Email, // FirstName = userCodeModel.FirstName, // LastName = userCodeModel.LastName, // SendAt = DateTime.Now //}; //var _userCodeRepository = new Repository<UserCode>(new DbContext("LotteryDb")); //_userCodeRepository.Insert(userCode); //Award award = new Award //{ // RuffledType = (byte)RuffledType.Immediate, // AwardName = "Another 0.5 Bottle", // Quantity = 1 //}; //var userCodeAward = new UserCodeAward //{ // Award = award, // UserCode = userCode, // WonAt = DateTime.Now //}; //var _userCodeAwardRepository = new Repository<UserCodeAward>(new DbContext("LotteryDb")); //_userCodeAwardRepository.Insert(userCodeAward); //return new AwardModel() //{ // AwardName = award.AwardName, // AwardDescription = award.AwardDescription //}; }
public AwardModel SubmitCode([FromBody] UserCodeModel userCodeModel) { return(_lottaryService.CheckCode(userCodeModel)); }
public AwardModel SubmitCode([FromBody] UserCodeModel userCodeModel) { return(_loteryManager.CheckCode(userCodeModel)); }