public async Task Kudos_Should_Return_Filtered_Excel_File() { var filter = new KudosLogsFilterDto { OrganizationId = 2, SearchUserId = "testUserId3", Status = BusinessLayerConstants.KudosStatusAllFilter, SortBy = "Created", SortOrder = "desc" }; var stream = await _kudosExportService.ExportToExcelAsync(filter); using (var excelReader = ExcelReaderFactory.CreateOpenXmlReader(new MemoryStream(stream))) { excelReader.IsFirstRowAsColumnNames = true; var excelData = excelReader.AsDataSet(); var excelRows = excelData.Tables[0].Rows; Assert.AreEqual("name5 surname5", excelRows[0].ItemArray[0]); Assert.AreEqual("name3 surname3", excelRows[0].ItemArray[1]); Assert.AreEqual(1, excelRows.Count); excelReader.Close(); } }
public async Task Kudos_GetKudosLog_Should_Return_View_Model() { // Arrange var filter = new KudosLogsFilterViewModel { Page = 1, SearchUserId = "1" }; IEnumerable <MainKudosLogDto> kudosLogs = new List <MainKudosLogDto> { new MainKudosLogDto { Id = 1 } }; var entries = new KudosLogsEntriesDto <MainKudosLogDto> { KudosLogs = kudosLogs }; var dto = new KudosLogsFilterDto(); _mapper.Map <KudosLogsFilterViewModel, KudosLogsFilterDto>(filter) .Returns(dto); _kudosService.GetKudosLogsAsync(null).ReturnsForAnyArgs(entries); // Act var response = await _kudosController.GetKudosLogs(filter); // Assert Assert.IsInstanceOf <PagedViewModel <KudosLogViewModel> >(response); }
public async Task <byte[]> ExportToExcelAsync(KudosLogsFilterDto filter) { var kudos = await _kudosLogsDbSet .Include(log => log.Employee) .Where(log => log.OrganizationId == filter.OrganizationId && log.KudosBasketId == null) .Where(KudosServiceHelper.StatusFilter(filter.Status)) .Where(KudosServiceHelper.UserFilter(filter.SearchUserId)) .GroupJoin(_userDbSet, log => log.CreatedBy, u => u.Id, KudosServiceHelper.MapKudosLogsToDto()) .OrderBy(string.Concat(filter.SortBy, " ", filter.SortOrder)) .ToListAsync(); var kudosLogs = kudos.Select(x => new List <object> { x.Sender.FullName, x.Receiver.FullName, x.Type.Name, x.Multiplier, x.Points, x.Created, x.Comment, x.Status, x.Type.Value, x.RejectionMessage }); var header = new List <string> { Resources.Models.Kudos.Kudos.ExportColumnSender, Resources.Models.Kudos.Kudos.ExportColumnReceiver, Resources.Models.Kudos.Kudos.ExportColumnKudosType, Resources.Models.Kudos.Kudos.ExportColumnMultiplyBy, Resources.Models.Kudos.Kudos.ExportColumnPointsInTotal, Resources.Models.Kudos.Kudos.ExportColumnCreated, Resources.Models.Kudos.Kudos.ExportColumnComment, Resources.Models.Kudos.Kudos.ExportColumnStatus, Resources.Models.Kudos.Kudos.ExportColumnKudosTypeValue, Resources.Models.Kudos.Kudos.ExportColumnRejectionMessage }; _excelBuilder.AddNewWorksheet(BusinessLayerConstants.KudosLogExcelSheetName, header, kudosLogs); return(_excelBuilder.GenerateByteArray()); }
public async Task <KudosLogsEntriesDto <MainKudosLogDto> > GetKudosLogsAsync(KudosLogsFilterDto options) { var kudosLogsQuery = _kudosLogsDbSet .Include(log => log.Employee) .Where(log => log.OrganizationId == options.OrganizationId && log.KudosBasketId == null) .Where(KudosServiceHelper.StatusFilter(options.Status)) .Where(KudosServiceHelper.UserFilter(options.SearchUserId)) .Where(KudosServiceHelper.TypeFilter(options.FilteringType)) .GroupJoin(_usersDbSet, log => log.CreatedBy, u => u.Id, KudosServiceHelper.MapKudosLogsToDto()) .OrderBy(string.Concat(options.SortBy, " ", options.SortOrder)); var logsTotalCount = await kudosLogsQuery.CountAsync(); var entriesCountToSkip = EntriesCountToSkip(options.Page); var kudosLogs = await kudosLogsQuery .Skip(() => entriesCountToSkip) .Take(() => BusinessLayerConstants.MaxKudosLogsPerPage) .ToListAsync(); var user = await _usersDbSet.FindAsync(options.UserId); if (user != null) { var culture = CultureInfo.GetCultureInfo(user.CultureCode); foreach (var kudosLog in kudosLogs) { if (IsTranslatableKudosType(kudosLog.Type.Type)) { kudosLog.Type.Name = TranslateKudos("KudosType" + kudosLog.Type.Name, culture); } } } return(new KudosLogsEntriesDto <MainKudosLogDto> { KudosLogs = kudosLogs, TotalKudosCount = logsTotalCount }); }