Ejemplo n.º 1
0
        private UserCodeModel GetExistingUserCode(long userId, long storeId)
        {
            var           sqlQuery      = GetUserCodeQuery(userId, storeId);
            UserCodeModel userCodeModel = _db.Query <UserCodeModel>(sqlQuery).FirstOrDefault();

            return(userCodeModel);
        }
Ejemplo n.º 2
0
        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>());
            }
        }
Ejemplo n.º 3
0
        /// <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
            });
        }
Ejemplo n.º 4
0
        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>());
            }
        }
Ejemplo n.º 5
0
        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
            //};
        }
Ejemplo n.º 6
0
 public AwardModel SubmitCode([FromBody] UserCodeModel userCodeModel)
 {
     return(_lottaryService.CheckCode(userCodeModel));
 }
Ejemplo n.º 7
0
 public AwardModel SubmitCode([FromBody] UserCodeModel userCodeModel)
 {
     return(_loteryManager.CheckCode(userCodeModel));
 }