コード例 #1
0
ファイル: EvaluationRepository.cs プロジェクト: r15h1/heyteam
        public void UpdatePlayerReportCard(UpdateReportCardRequest request)
        {
            ThrowIf.ArgumentIsNull(request);
            var command = GetReportCardUpdateCommand(request);

            using (var connection = connectionFactory.Connect()) {
                connection.Open();
                using (var transaction = connection.BeginTransaction()) {
                    try {
                        connection.Execute(command.Sql, command.Parameters, transaction);
                        transaction.Commit();
                    } catch (Exception ex) {
                        transaction.Rollback();
                        throw ex;
                    }
                }
            }
        }
コード例 #2
0
ファイル: EvaluationService.cs プロジェクト: r15h1/heyteam
        public Response UpdatePlayerReportCard(UpdateReportCardRequest request)
        {
            var evaluationResult = updateReportCardRequestValidator.Validate(request);

            if (!evaluationResult.IsValid)
            {
                return(Response.CreateResponse(evaluationResult.Messages));
            }

            var response = CheckReportCardRequestIntegrity(request.ClubId, request.SquadId, request.TermId, request.PlayerId);

            if (response.Errors.Any())
            {
                return(response);
            }

            var reportCard = evaluationQuery.GetPlayerReportCard(request.ClubId, request.ReportCardId);

            if (reportCard == null || !reportCard.ReportCardExists)
            {
                return(Response.CreateResponse(new EntityNotFoundException("The specified report card does not exist")));
            }
            else if (reportCard.PlayerId != request.PlayerId)
            {
                return(Response.CreateResponse(new IllegalOperationException("The specified report card does not belong to this player")));
            }

            try
            {
                evaluationRepository.UpdatePlayerReportCard(request);
                return(Response.CreateSuccessResponse());
            }catch (Exception ex)
            {
                return(Response.CreateResponse(ex));
            }
        }
コード例 #3
0
ファイル: EvaluationRepository.cs プロジェクト: r15h1/heyteam
        private (string Sql, DynamicParameters Parameters) GetReportCardUpdateCommand(UpdateReportCardRequest request)
        {
            string            sql        = null;
            DynamicParameters parameters = new DynamicParameters();

            parameters.Add("@PlayerReportCardId", request.ReportCardId.ToString());

            if (request.SkillId.HasValue)
            {
                sql = $@"DELETE PlayerReportCardGrades 
                            WHERE PlayerReportCardId = (SELECT PlayerReportCardId FROM PlayerReportCards WHERE Guid = @PlayerReportCardId)
                                AND ReportCardSkillId = (SELECT ReportCardSkillId FROM ReportCardSkills WHERE Guid = @ReportCardSkillId);
                            {(request.ReportCardGrade.HasValue ?
								@"INSERT INTO PlayerReportCardGrades (PlayerReportCardId, ReportCardSkillId, ReportCardGradeId)
							    VALUES( (SELECT PlayerReportCardId FROM PlayerReportCards WHERE Guid = @PlayerReportCardId), 
                                        (SELECT ReportCardSkillId FROM ReportCardSkills WHERE Guid = @ReportCardSkillId), 
                                        @ReportCardGradeId)"
												: "")
											};"                                            ;

                parameters.Add("@ReportCardSkillId", request.SkillId.ToString());
                parameters.Add("@ReportCardGradeId", (request.ReportCardGrade.HasValue ? (int?)request.ReportCardGrade : null));
            }
            else if (request.Facet != null && !request.Facet.Key.IsEmpty())
            {
                sql = $@"DELETE PlayerReportCardFacets 
                            WHERE PlayerReportCardId = (SELECT PlayerReportCardId FROM PlayerReportCards WHERE Guid = @PlayerReportCardId)
                                AND FacetKey = @FacetKey;
                            {(!request.Facet.Value.IsEmpty() ?
								@"INSERT INTO PlayerReportCardFacets (PlayerReportCardId, FacetKey, FacetValue)
							    VALUES( (SELECT PlayerReportCardId FROM PlayerReportCards WHERE Guid = @PlayerReportCardId), 
                                        @FacetKey, @FacetValue)"
												: "")
											};"                                            ;

                parameters.Add("@FacetKey", request.Facet.Key);
                parameters.Add("@FacetValue", request.Facet?.Value);
            }
            return(sql, parameters);
        }