private IActionResult ParseGetCompetitorResult( MotorsportResultAPI.Types.Domain.v1.Rally.Competitor subject) { switch (subject) { case null: return(BadRequest(new MotorsportResultAPI.Types.Domain.v1.Error("400", "Rally/v1/Competitor", "Competitor doesn't exists"))); default: return(Ok(subject)); } }
public MotorsportResultAPI.Types.Domain.v1.Rally.Competitor MapCompetitorToDomain( MotorsportResultAPI.Types.Data.v1.Rally.Competitor subject) { var x = new MotorsportResultAPI.Types.Domain.v1.Rally.Competitor( subject.Id, subject.EventId, subject.CarNumber, subject.Name, subject.Car, subject.Category, subject.StageResults.Select(stageResult => this.MapStageResultToDomain(stageResult)).ToList()); return(x); }
public MotorsportResultAPI.Types.Data.v1.Rally.Competitor MapCompetitorToData( MotorsportResultAPI.Types.Domain.v1.Rally.Competitor subject) { //TODO AM: Remove list return(new MotorsportResultAPI.Types.Data.v1.Rally.Competitor( subject.Id, subject.EventId, subject.CarNumber, subject.Name, subject.Car, subject.Category, Enumerable.Empty <MotorsportResultAPI.Types.Data.v1.Rally.StageResult>() .ToList <MotorsportResultAPI.Types.Data.v1.Rally.StageResult>())); }
public (MotorsportResultAPI.Types.Domain.v1.Rally.Competitor, MotorsportResultAPI.Types.Enumeration.Results) Execute( MotorsportResultAPI.Types.Domain.v1.Rally.Competitor subject) { var _competitor = this.c_competitorRepository.FetchById(subject.Id); if (_competitor == null) { var _dataCompetitor = this.c_mapper.MapCompetitorToData(subject); this.c_competitorRepository.Save(_dataCompetitor); return(subject, MotorsportResultAPI.Types.Enumeration.Results.Created); } return(subject, MotorsportResultAPI.Types.Enumeration.Results.AlreadyExists); }
private TimeSpan BuildOverallTime( MotorsportResultAPI.Types.Domain.v1.Rally.Competitor competitor, int stageId) { var _stageTotal = competitor.StageResults .Where(stageResult => stageResult.StageId <= stageId) .Aggregate( TimeSpan.Zero, (subStageTotal, stageResult) => subStageTotal.Add(stageResult.StageTime) ); var _penaltyTotal = competitor.StageResults .Where(stageResult => stageResult.StageId <= stageId) .Aggregate( TimeSpan.Zero, (subPenaltyTotal, stageResult) => subPenaltyTotal.Add(stageResult.PenaltyTime) ); return(_stageTotal.Add(_penaltyTotal)); }