private List <ReportTemplateProjectModel> GetListOfProjectModels() { var listOfModels = new List <ReportTemplateProjectModel>(); var projectsList = HttpRequestStorage.DatabaseEntities.Projects.Where(x => SelectedModelIDs.Contains(x.ProjectID)).ToList(); var orderedProjectList = projectsList.OrderBy(p => SelectedModelIDs.IndexOf(p.ProjectID)).ToList(); orderedProjectList.ForEach(x => listOfModels.Add(new ReportTemplateProjectModel(x))); return(listOfModels); }
/// <summary> /// Because Sharpdocx uses directories for images we need to save the images that can be used with the chosen model into a directory that can be accessed /// when the report generates. This allows us to create a helper on the ReportTemplateProjectImage model that can then call Image() and pass in the /// same file name (that uses the file resource unique GUID) /// </summary> private void SaveImageFilesToTempDirectory() { switch (ReportTemplateModelEnum) { case ReportTemplateModelEnum.Project: var projectsList = HttpRequestStorage.DatabaseEntities.Projects.Where(x => SelectedModelIDs.Contains(x.ProjectID)).ToList(); var projectImages = projectsList.SelectMany(x => x.ProjectImages).ToList(); foreach (var projectImage in projectImages) { var imagePath = $"{FullTemplateTempImageDirectory}\\{projectImage.FileResourceInfo.GetFullGuidBasedFilename()}"; CorrectImageProblemsAndSaveToDisk(projectImage, imagePath); } break; default: throw new ArgumentOutOfRangeException(); } }