Esempio n. 1
0
        /// <inheritdoc />
        public async Task CreateScoreAsync(ScoreDomainModel scoreDomainModel)
        {
            try
            {
                _logger.Info($"Looking for good with id: {scoreDomainModel.GoodId}");
                await this._context.Goods.SingleAsync(g => g.Id == scoreDomainModel.GoodId);

                _logger.Info($"Good with id: {scoreDomainModel.GoodId} exists in database.");
            }
            catch (InvalidOperationException ex)
            {
                throw new ArgumentException($"Good with specified id: {scoreDomainModel.GoodId} doesn't exist.", ex);
            }

            try
            {
                this._scoreDomainModelValidator.ValidateAndThrow(scoreDomainModel);
            }
            catch (ValidationException ex)
            {
                throw new ArgumentException($"Error when validating {scoreDomainModel}.", ex);
            }

            var score = this._mapper.Map <Score>(scoreDomainModel);

            _logger.Info("Adding score to database");
            this._context.Scores.Add(score);


            _logger.Info("Saving changes to database");
            await this._context.SaveChangesAsync();
        }
Esempio n. 2
0
        public void UpdateScore_ValidModel_ReturnsValidModel()
        {
            var testScoreEntity = ScoreFactory.Create_ScoreEntity_ValidMinimum(Guid.NewGuid());
            var testScore       = new ScoreDomainModel(testScoreEntity);
            var testClass       = ServiceFactory.Create_ScoreService();

            var result = testClass.UpdateScore(testScore);

            result.GetType().ShouldNotBe(typeof(ErrorDomainModel));
        }
Esempio n. 3
0
        public void UpdateScore_EmptyGuid_ReturnsErrorModel()
        {
            var testScore = new ScoreDomainModel {
                Id = Guid.Empty
            };
            var testClass = ServiceFactory.Create_ScoreService();

            var result = testClass.UpdateScore(testScore);

            result.GetType().ShouldBe(typeof(ErrorDomainModel));
        }
Esempio n. 4
0
 public ScoreViewModel(ScoreDomainModel domainModel)
 {
     Id             = domainModel.Id;
     Name           = domainModel.Name;
     Date           = domainModel.Date;
     EvaluationId   = domainModel.EvaluationId;
     PointsPossible = domainModel.PointsPossible;
     PointsEarned   = domainModel.PointsEarned;
     PointsGrade    = domainModel.PointsGrade * 100;
     _lastModified  = domainModel.LastModified;
     CreatedOn      = domainModel.CreatedOn;
 }
Esempio n. 5
0
 private static ScoreEntity ConvertModelToEntity(ScoreDomainModel createModel)
 {
     return(new ScoreEntity
     {
         Id = createModel.Id,
         Name = createModel.Name,
         EvaluationId = createModel.EvaluationId,
         Date = createModel.Date,
         PointsPossible = createModel.PointsPossible,
         PointsEarned = createModel.PointsEarned
     });
 }
Esempio n. 6
0
        public IDomainModel GetScore(Guid scoreId)
        {
            var scoreModel = new ScoreDomainModel();

            try
            {
                var scoreEntity = Interactor.GetScore(scoreId);

                scoreModel = new ScoreDomainModel(scoreEntity);
            }
            catch (GradeTrackerException e)
            {
                var errorModel = new ErrorDomainModel(e, false);

                return(errorModel);
            }

            return(scoreModel);
        }
Esempio n. 7
0
        public IDomainModel DeleteScore(Guid scoreId)
        {
            var deletedScoreModel = new ScoreDomainModel();

            try
            {
                var score = Interactor.GetScore(scoreId);

                Interactor.DeleteScore(scoreId);

                deletedScoreModel = new ScoreDomainModel {
                    EvaluationId = score.EvaluationId
                };
            }
            catch (GradeTrackerException gte)
            {
                return(new ErrorDomainModel(gte, false));
            }

            return(deletedScoreModel);
        }
Esempio n. 8
0
        public IDomainModel CreateNewScore(CreateScoreDomainModel createModel)
        {
            var scoreModel     = new ScoreDomainModel();
            var newScoreEntity = ConvertModelToEntity(createModel);

            try
            {
                CalculateGrade(newScoreEntity);

                var scoreId = Interactor.CreateScore(newScoreEntity);

                scoreModel = (ScoreDomainModel)GetScore(scoreId);
            }
            catch (ObjectAlreadyExistsException oae)
            {
                var errorModel = new ErrorDomainModel(oae, true);

                return(errorModel);
            }

            return(scoreModel);
        }
Esempio n. 9
0
        public IDomainModel UpdateScore(ScoreDomainModel updatedScoreModel)
        {
            var returnModel = new ScoreDomainModel();

            try
            {
                var entityToUpdate = ConvertModelToEntity(updatedScoreModel);

                CalculateGrade(entityToUpdate);

                Interactor.UpdateScore(entityToUpdate);

                var updatedEntity = Interactor.GetScore(entityToUpdate.Id);

                returnModel = new ScoreDomainModel(updatedEntity);
            }
            catch (GradeTrackerException gte)
            {
                return(new ErrorDomainModel(gte, true));
            }

            return(returnModel);
        }
Esempio n. 10
0
        public async Task <IHttpActionResult> Post(ScoreDomainModel scoreDomainModel)
        {
            _logger.Info($"Start process of adding score to database.");

            try
            {
                await this._scoreService.CreateScoreAsync(scoreDomainModel);
            }
            catch (ArgumentException ex)
            {
                _logger.Info(ex, ex.ToString());
                return(this.BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, ex.ToString());
                return(this.InternalServerError());
            }

            string messageIfSuccess = $"Score has been successfully added.";

            _logger.Info(messageIfSuccess);
            return(this.Ok(scoreDomainModel));
        }
Esempio n. 11
0
 private static CreateOrEditScoreViewModel ConvertToCreateOrEditScoreViewModel(ScoreDomainModel domainModel)
 {
     return(new CreateOrEditScoreViewModel
     {
         Id = domainModel.Id,
         EvaluationId = domainModel.EvaluationId,
         Name = domainModel.Name,
         Date = domainModel.Date,
         PointsEarned = domainModel.PointsEarned,
         PointsPossible = domainModel.PointsPossible
     });
 }
Esempio n. 12
0
        public ActionResult Complete(ScoreDomainModel scoreModel)
        {
            var scoreViewModel = new ScoreViewModel(scoreModel);

            return(View("ScoreAdded", scoreViewModel));
        }