public void GetReportsTest() { // Arrange ReportFilterDTO reportFilterDTO = new ReportFilterDTO { Month = 1, UserId = 1, Year = 2020 }; var serviceMoq = new Mock <IReportService>(); serviceMoq.Setup(repo => repo.Get( reportFilterDTO)) .Returns( new GetReportsByDateDTO(GetTestReportDTOs())); ReportController reportController = new ReportController(serviceMoq.Object, AutomapperSingleton.Mapper); // Act var result = reportController.Get(reportFilterDTO); // Assert var viewResult = Assert.IsType <OkObjectResult>(result); var model = Assert.IsAssignableFrom <IEnumerable <ReportViewModel> >(viewResult.Value); Assert.Equal(GetTestReportViewModels().Count, model.Count()); }
public IActionResult Get([FromQuery] ReportFilterDTO reportFilterDTO) { try { if (ModelState.IsValid) { GetReportsByDateDTO getReportsByDateDTO = reportService.Get(reportFilterDTO); if (getReportsByDateDTO.ServiceResultDTO.IsValid == true) { IEnumerable <ReportViewModel> reports = _mapper.Map <IEnumerable <ReportViewModel> >(getReportsByDateDTO.Reports); return(Ok(reports)); } else { Log.Error(getReportsByDateDTO.ServiceResultDTO.ErrorMessage + reportFilterDTO.GetValueString()); return(BadRequest(getReportsByDateDTO.ServiceResultDTO.ErrorMessage)); } } else { return(BadRequest(ModelState)); } } catch (Exception ex) { Log.Error(ex.Message + reportFilterDTO.GetValueString()); return(BadRequest("Произошла неизвестная ошибка")); } }
public IList <ReportDTO> ObterTarefasExecutadas(ReportFilterDTO reportFilter) { using (IssueContext db = new IssueContext()) { var resultado = db.IssueExecutions.AsQueryable(); if (reportFilter.IssueId > 0) { resultado = resultado.Where(c => c.Issue.Id == reportFilter.IssueId); } var listaTarefas = resultado.ToList(); if (reportFilter.StartDateTime != null) { listaTarefas = listaTarefas.Where(c => c.StartDateTime.Value.Date >= reportFilter.StartDateTime.Value.Date).ToList(); } if (reportFilter.EndDateTime != null) { listaTarefas = listaTarefas.Where(c => c.EndDateTime != null && c.EndDateTime.Value.Date <= reportFilter.EndDateTime.Value.Date).ToList(); } IList <ReportDTO> listaResultado = listaTarefas.Select(c => new { CodigoJira = c.Issue.IssueName, TempoGasto = ((TimeSpan)(c.EndDateTime.Value - c.StartDateTime.Value)).TotalHours }) .GroupBy(g => new { g.CodigoJira, g.TempoGasto }) .Select(g => new ReportDTO() { CodigoJira = g.Key.CodigoJira, TempoTotal = g.Sum(z => z.TempoGasto) }).OrderBy(c => c.CodigoJira).ToList(); return(listaResultado); } }
/// <summary> /// Метод получения списка отчетов пользователя за указанный месяц. /// </summary> public GetReportsByDateDTO Get(ReportFilterDTO reportFilterDTO) { if (reportFilterDTO.UserId == null) { var allReports = Database.Reports.GetAllReports(); return(new GetReportsByDateDTO(_mapper.Map <IEnumerable <ReportDTO> >(allReports))); } else if (reportFilterDTO.Month == null || reportFilterDTO.Year == null) { User user = Database.Users.Get(reportFilterDTO.UserId.Value); if (user == null) { return(new GetReportsByDateDTO("Пользователь не найден.")); } var userReports = Database.Reports.GetByUserId(reportFilterDTO.UserId); return(new GetReportsByDateDTO(_mapper.Map <IEnumerable <ReportDTO> >(userReports))); } else { var reports = Database.Reports.GetByUserAndDate(reportFilterDTO.UserId.Value, reportFilterDTO.Month.Value, reportFilterDTO.Year.Value); return(new GetReportsByDateDTO(_mapper.Map <IEnumerable <ReportDTO> >(reports))); } }
public ServiceResult <List <ReportDTO> > GetReportList(ReportFilterDTO model) { string errorMessage = string.Empty; EnumServiceResultType serviceResultType = EnumServiceResultType.Unspecified; List <ReportDTO> result = null; try { Expression <Func <Contracts.Entities.EF.Report, bool> > expReport = p => true; if (model.YonDerId != null) { expReport = expReport.And(p => p.YonDerId == model.YonDerId); } if (model.ScholarshipHolderId != null) { expReport = expReport.And(p => p.ScholarshipHolderId == model.ScholarshipHolderId); } if (!string.IsNullOrEmpty(model.Subject)) { expReport = expReport.And(p => p.Subject.Contains(model.Subject)); } if (model.ReportDate != null) { expReport = expReport.And(p => p.ReportDate == model.ReportDate); } if (!string.IsNullOrEmpty(model.ReportText)) { expReport = expReport.And(p => p.Subject.Contains(model.ReportText)); } var reportList = _reportRepository.Entities.Where(expReport).ToList(); result = reportList.Select(p => new ReportDTO { Id = p.Id, YonDerId = p.YonDerId, YonDerName = $"{p.YonDer.FirstName} {p.YonDer.LastName}", ScholarshipHolderId = p.ScholarshipHolderId, ScholarshipHolderName = $"{p.ScholarshipHolder.FirstName} {p.ScholarshipHolder.LastName}", Subject = p.Subject, ReportDate = p.ReportDate, ReportText = p.ReportText, }).ToList(); serviceResultType = EnumServiceResultType.Success; } catch (Exception ex) { errorMessage = ex.Message; serviceResultType = EnumServiceResultType.Error; } return(new ServiceResult <List <ReportDTO> > { ErrorMessage = errorMessage, Result = result, ServiceResultType = serviceResultType }); }
private ReportFilterDTO GetTestReportFilterDTO() { var reportFilterDTO = new ReportFilterDTO { UserId = 1, Month = 1, Year = 2020 }; return(reportFilterDTO); }
private void FilterReportList() { try { var filter = new ReportFilterDTO(); filter.YonDerName = YonderName.Text; filter.ScholarshipHolderName = ScholarshipHolderName.Text; filter.Subject = Subject.Text; filter.ReportDate = ReportDate.SelectedDate; ServiceResult <List <ReportDTO> > serviceResult = new ServiceResult <List <ReportDTO> >(); var queryString = new Dictionary <string, string>(); var response = ApiHelper.CallSendApiMethod(ApiKeys.ReportApiUrl, "GetReportList", queryString, filter); if (!response.IsSuccessStatusCode) { throw new Exception("Hata oluştu!"); } var data = response.Content.ReadAsStringAsync().Result; serviceResult = JsonConvert.DeserializeObject <ServiceResult <List <ReportDTO> > >(data); if (serviceResult.ServiceResultType != EnumServiceResultType.Success) { throw new Exception(serviceResult.ErrorMessage); } if (serviceResult.Result == null) { throw new Exception(serviceResult.ErrorMessage); } ReportListGrid.DataSource = serviceResult.Result; ReportListGrid.DataBind(); } catch (Exception ex) { } }
public IHttpActionResult GetReportList(ReportFilterDTO filter) { if (!Request.Headers.Contains("apiKey")) { return(Unauthorized()); } string apiKey = Request.Headers.GetValues("apiKey").First(); if (!ApiHelper.CheckKey(apiKey)) { return(Unauthorized()); } try { var serviceResult = _reportService.GetReportList(filter); return(Ok(serviceResult)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }