Example #1
0
        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("Произошла неизвестная ошибка"));
            }
        }
Example #3
0
        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)));
            }
        }
Example #5
0
        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);
        }
Example #7
0
        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));
            }
        }