public async Task <CreateReportResponse> Execute(CreateReportRequest request)
        {
            var validationErrors = _validationService.Validate(request);

            if (validationErrors.Any())
            {
                return(new CreateReportResponse
                {
                    Data = new Either <Dtos.ReportDto, IEnumerable <KeyValuePair <string, string> > >(validationErrors)
                });
            }

            var report = new Entities.Report();

            _reportRepository.AddEntity(report);

            report.ReportTypeId    = (int)request.Model.ReportTypeId;
            report.AverageSpeed    = request.Model.AverageSpeed;
            report.InstructedSpeed = request.Model.InstructedSpeed;

            await _reportRepository.SaveChangesAsync();

            return(new CreateReportResponse
            {
                Data = new Either <Dtos.ReportDto, IEnumerable <KeyValuePair <string, string> > >(new Dtos.ReportDto
                {
                    ReportId = report.ReportId,
                    AverageSpeed = report.AverageSpeed,
                    InstructedSpeed = report.InstructedSpeed,
                    ReportTypeId = report.ReportTypeId
                })
            });
        }
 public Report AddEntity(Report entity)
 {
     return(reportRepository.AddEntity(entity));
 }