コード例 #1
0
ファイル: EvaluationService.cs プロジェクト: r15h1/heyteam
        public Response CreateTerm(TermSetupRequest request)
        {
            var evaluationResult = setupRequestValidator.Validate(request);

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

            if (!request.TermId.IsEmpty())
            {
                return(Response.CreateResponse(new IllegalOperationException("No term id must be specified when creating new terms")));
            }

            if (HasOverlappingPeriods(request.ClubId, request.StartDate, request.EndDate))
            {
                return(Response.CreateResponse(new IllegalOperationException("This term overlaps with another one")));
            }

            if (HasExistingOpenTerms(request.ClubId))
            {
                return(Response.CreateResponse(new IllegalOperationException("There can only be one open term at any given time. Please close any existing open term.")));
            }

            try{
                evaluationRepository.AddTerm(request);
                termSearchEngine.UpdateCache();
                return(Response.CreateSuccessResponse());
            } catch (Exception ex) {
                return(Response.CreateResponse(ex));
            }
        }