public void RemoveChallenge(Guid id)
        {
            var challenge = unitOfWork.Get <Challenge>(id);

            unitOfWork.Delete(challenge);

            unitOfWork.Commit();
        }
        public EditChallengeViewModel Save(EditChallengeViewModel model)
        {
            Contract.NotNull <ArgumentNullException>(model);

            ValidateChallenge(model);

            Challenge challenge;

            if (model.IsNew)
            {
                challenge = new Challenge
                {
                    TimeCreated = DateTime.Now
                };
            }
            else
            {
                challenge = unitOfWork.Get <Challenge>(model.Id.GetValueOrDefault());
            }

            MapModelToChallenge(challenge, model);

            unitOfWork.InsertOrUpdate(challenge);
            unitOfWork.Commit();

            return(mapper.Map <EditChallengeViewModel>(challenge));
        }
Esempio n. 3
0
        public ChallengeSolveResult Solve(Guid challengeId, Guid userId, string answer)
        {
            Contract.NotDefault <InvalidOperationException, Guid>(userId, "user id must be not default");

            var challenge = unitOfWork.Get <Challenge>(challengeId);

            var challengeType = (ChallengeType)challenge.ChallengeType;

            return(challengeSolvingStrategies[challengeType].Value.Solve(challenge, userId, answer));
        }