public MediatorResponse <byte[]> GetVacanciesListReportBytes(ReportVacanciesParameters parameters)
 {
     try
     {
         var reportResult = _reportingRepo.ReportVacanciesList(parameters.FromDate.Date,
                                                               parameters.ToDate.Date);
         var bytes = GetCsvBytes <ReportVacanciesResultItem, ReportVacanciesResultItemClassMap>(reportResult, "");
         return(GetMediatorResponse(ReportingMediatorCodes.ReportCodes.Ok, bytes));
     }
     catch (Exception ex)
     {
         _logService.Warn(ex);
         return(GetMediatorResponse(ReportingMediatorCodes.ReportCodes.Error, new byte[0]));
     }
 }
        public ActionResult ValidateVacanciesListCsv(ReportVacanciesParameters parameters)
        {
            var validationResponse = _reportingMediator.Validate(parameters);

            switch (validationResponse.Code)
            {
            case ReportingMediatorCodes.ReportCodes.Ok:
                return(View("VacanciesListCsv", validationResponse.ViewModel));

            case ReportingMediatorCodes.ReportCodes.ValidationError:
            default:
                ModelState.Clear();
                validationResponse.ValidationResult.AddToModelStateWithSeverity(ModelState, string.Empty);
                return(View("VacanciesListCsv", validationResponse.ViewModel));
            }
        }
        public ActionResult DownloadVacanciesListCsv(ReportVacanciesParameters parameters)
        {
            var response = _reportingMediator.GetVacanciesListReportBytes(parameters);

            return(File(response.ViewModel, "text/csv", "VacanciesList.csv"));
        }