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)); } }
public Response UpdateTerm(TermSetupRequest request) { var evaluationResult = setupRequestValidator.Validate(request); if (!evaluationResult.IsValid) { return(Response.CreateResponse(evaluationResult.Messages)); } if (request.TermId.IsEmpty()) { return(Response.CreateResponse(new IllegalOperationException("TermId must be specified"))); } var term = evaluationQuery.GetTerm(request.TermId.Value); if (term == null) { return(Response.CreateResponse(new EntityNotFoundException("The specified term does not exist"))); } else if (term.ClubId != request.ClubId) { return(Response.CreateResponse(new IllegalOperationException("The specified term does not belong to this club"))); } if (IsTermClosed(term)) { return(Response.CreateResponse(new IllegalOperationException("A closed term cannot be updated"))); } if (HasOverlappingPeriods(request.ClubId, request.StartDate, request.EndDate, request.TermId)) { return(Response.CreateResponse(new IllegalOperationException("This term overlaps with another one"))); } throw new NotImplementedException(); }
public void AddTerm(TermSetupRequest request) { ThrowIf.ArgumentIsNull(request); string sql = @"INSERT INTO EvaluationTerms (Guid, ClubId, Title, TermStatusId, StartDate, EndDate) VALUES( @TermGuid, (SELECT ClubId FROM Clubs WHERE Guid = @ClubGuid), @Title, 1, @StartDate, @EndDate )" ; DynamicParameters p = new DynamicParameters(); p.Add("@TermGuid", Guid.NewGuid().ToString()); p.Add("@ClubGuid", request.ClubId.ToString()); p.Add("@Title", request.Title); p.Add("@StartDate", request.StartDate); p.Add("@EndDate", request.EndDate); using (var connection = connectionFactory.Connect()) { connection.Open(); connection.Execute(sql, p); } }
public void UpdateTerm(TermSetupRequest request) { throw new System.NotImplementedException(); }