private async Task <ActionResult> ShowMasterClaimListForGroup(CharacterGroup characterGroup, string export, string title, IReadOnlyCollection <Claim> claims, GroupNavigationPage page) { if (characterGroup == null) { return(NotFound()); } var view = new ClaimListForGroupViewModel(CurrentUserId, claims, characterGroup, page); var exportType = ExportTypeNameParserHelper.ToExportType(export); if (exportType == null) { ViewBag.MasterAccessColumn = true; ViewBag.Title = title + " " + characterGroup.CharacterGroupName; return(View("ByGroup", view)); } else { return (await ExportWithCustomFrontend(view.Items, title, exportType.Value, new ClaimListItemViewModelExporter(characterGroup.Project, UriService), characterGroup.Project.ProjectName)); } }
public async Task <ActionResult> ByGroup(int projectId, int characterGroupId, string export) { var characterGroup = await ProjectRepository.GetGroupAsync(projectId, characterGroupId); var groupIds = await GetChildrenGroupIds(projectId, characterGroupId); var characters = (await ProjectRepository.GetCharacterByGroups(projectId, groupIds)).Where(ch => ch.IsActive).ToList(); if (characterGroup == null) { return(NotFound()); } var plots = await PlotRepository.GetPlotsWithTargets(projectId); var list = new CharacterListByGroupViewModel(CurrentUserId, characters, characterGroup); var exportType = ExportTypeNameParserHelper.ToExportType(export); if (exportType == null) { return(View("ByGroup", list)); } return(await Export(list, exportType)); }
public async Task <ActionResult> My(string?export) { var user = await GetCurrentUserAsync(); var title = "Мои заявки"; ViewBag.Title = title; var viewModel = new ClaimListViewModel( CurrentUserId, user.Claims.ToList(), projectId: null, showCount: false, showUserColumn: false); var exportType = ExportTypeNameParserHelper.ToExportType(export); if (exportType == null) { return(base.View("Index", viewModel)); } else { return(await ExportWithCustomFrontend( viewModel.Items, title, exportType.Value, new MyClaimListItemViewModelExporter(UriService), user.PrefferedName)); } }
private async Task <ActionResult> GetFinanceOperationsList(int projectid, string export, Func <FinanceOperation, bool> predicate) { var project = await ProjectRepository.GetProjectWithFinances(projectid); var viewModel = new FinOperationListViewModel(project, UriService, project.FinanceOperations.Where(predicate).ToArray()); var exportType = ExportTypeNameParserHelper.ToExportType(export); if (exportType == null) { return(View("Operations", viewModel)); } else { var frontend = new FinanceOperationExporter(project, UriService); var generator = ExportDataService.GetGenerator(exportType.Value, viewModel.Items, frontend); var fileName = project.ProjectName + ": Финансы"; return(File(await generator.Generate(), generator.ContentType, Path.ChangeExtension(fileName.ToSafeFileName(), generator.FileExtension))); } }
private async Task <ActionResult> MasterCharacterList(int projectId, Func <Character, bool> predicate, string export, string title) { var characters = (await ProjectRepository.GetCharacters(projectId)).Where(predicate).ToList(); var project = await GetProjectFromList(projectId, characters); var list = new CharacterListViewModel(CurrentUserId, title, characters, project); var exportType = ExportTypeNameParserHelper.ToExportType(export); if (exportType == null) { return(View("Index", list)); } return(await Export(list, exportType)); }
public async Task <ActionResult> MainReport(int projectId, string export) { var project = await ProjectRepository.GetProjectWithDetailsAsync(projectId) .ConfigureAwait(false); if (project == null) { return(NotFound()); } if (!project.Details.EnableAccommodation) { return(RedirectToAction("Edit", "Game")); } var accommodations = (await AccommodationRepository.GetClaimAccommodationReport(projectId)).Select(row => new AccomodationReportListItemViewModel { ProjectId = project.ProjectId, ClaimId = row.ClaimId, AccomodationType = row.AccomodationType, RoomName = row.RoomName, DisplayName = row.User.GetDisplayName(), FullName = row.User.FullName, Phone = row.User.Extra?.PhoneNumber, }); var exportType = ExportTypeNameParserHelper.ToExportType(export); if (exportType == null) { return(NotFound()); } else { var generator = ExportDataService.GetGenerator(exportType.Value, accommodations, new AccomodationReportExporter(UriService)); return(await ReturnExportResult(project.ProjectName + ": " + "Отчет по расселению", generator)); } }
private async Task <ActionResult> ShowMasterClaimList(int projectId, string export, string title, [AspMvcView] string viewName, IReadOnlyCollection <Claim> claims) { var view = new ClaimListViewModel(CurrentUserId, claims, projectId); var exportType = ExportTypeNameParserHelper.ToExportType(export); if (exportType == null) { ViewBag.MasterAccessColumn = true; ViewBag.Title = title; return(View(viewName, view)); } else { var project = await GetProjectFromList(projectId, claims); return (await ExportWithCustomFrontend(view.Items, title, exportType.Value, new ClaimListItemViewModelExporter(project, UriService), project.ProjectName)); } }
private async Task <ActionResult> GetFinanceOperationsList(int projectid, string export, Func <FinanceOperation, bool> predicate) { var project = await ProjectRepository.GetProjectWithFinances(projectid); var viewModel = new FinOperationListViewModel(project, UriService, project.FinanceOperations.Where(predicate).ToArray()); var exportType = ExportTypeNameParserHelper.ToExportType(export); if (exportType == null) { return(View("Operations", viewModel)); } else { ExportDataService.BindDisplay <User>(user => user?.GetDisplayName()); var generator = ExportDataService.GetGenerator(exportType.Value, viewModel.Items); return(File( await generator.Generate(), generator.ContentType, Path.ChangeExtension("finance-export", generator.FileExtension) )); } }
protected static ExportType?GetExportTypeByName(string export) => ExportTypeNameParserHelper.ToExportType(export);