Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
            }
        }
Exemplo n.º 4
0
        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)));
            }
        }
Exemplo n.º 5
0
        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));
            }
        }
Exemplo n.º 7
0
        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));
            }
        }
Exemplo n.º 8
0
        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)
                           ));
            }
        }
Exemplo n.º 9
0
 protected static ExportType?GetExportTypeByName(string export) => ExportTypeNameParserHelper.ToExportType(export);