private void SendStartProjectEmail(Project project, string serverUrl) { try { // get members and attach to the project mailer.AttachProjectMembers(project); // create body from the template ReportHelper.Report reports = new ReportHelper.Report(); ReportHelper.ReportConfig reportConfig = new ReportHelper.ReportConfig("EmailNotifications", "project_started", ""); reportConfig.ReportObjects.Add(project); reportConfig.ReportVars.Add("LastSprintUId", project.LastSprint.SprintUId); string body = reports.CreateReportXAML(serverUrl, reportConfig, true); // subject string subject = project.ProjectName + " STARTED !!"; // send it to all project members bool send = mailer.SendEmail(project, subject, body); if (!send) { ScrumFactory.Services.Logic.Helper.Log.LogMessage("Start project email was not send."); } } catch (System.Exception ex) { ScrumFactory.Services.Logic.Helper.Log.LogError(ex); } }
private void SendTicketEmail(BacklogItem ticket, Project project, bool PONotification) { try { // get members and attach to the project mailer.AttachProjectMembers(project); // create body from the template ReportHelper.Report reports = new ReportHelper.Report(); var template = "ticket_created"; if (PONotification) { template = "ticket_createdPO"; } // get project scrum masters string scrumMasterStr = ""; if (project.Roles != null && project.Memberships != null) { var scrumMasterRoles = project.Roles.Where(r => r.PermissionSet == (short)PermissionSets.SCRUM_MASTER).Select(r => r.RoleUId).ToArray(); var scrumMasters = project.Memberships.Where(m => m.IsActive && scrumMasterRoles.Contains(m.RoleUId)).Select(m => m.MemberUId).ToArray(); scrumMasterStr = string.Join(", ", scrumMasters); } ReportHelper.ReportConfig reportConfig = new ReportHelper.ReportConfig("EmailNotifications", template, Helper.ReportTemplate.ServerUrl); reportConfig.ReportObjects.Add(project); reportConfig.ReportObjects.Add(ticket); reportConfig.ReportVars.Add("ProjectScrumMasters", scrumMasterStr); string body = reports.CreateReportXAML(Helper.ReportTemplate.ServerUrl, reportConfig, true); // subject string subject = String.Format(TicketEmailSubject, project.ProjectNumber + "." + ticket.BacklogItemNumber); if (!String.IsNullOrEmpty(ticket.ExternalId)) { subject = String.Format(TicketEmailSubject, ticket.ExternalId); } // send it to all project members bool send = mailer.SendEmail(project, subject, body, PONotification); if (!send) { ScrumFactory.Services.Logic.Helper.Log.LogMessage("Ticket email was not send."); } } catch (System.Exception ex) { ScrumFactory.Services.Logic.Helper.Log.LogError(ex); } }
public System.Windows.Documents.FlowDocument CreateFlowDocument() { var report = new ReportHelper.Report(); var xaml = report.CreateReportXAML(serverUrl, config); xaml = CleanInvalidXmlChars(xaml); System.Windows.Documents.FlowDocument document = null; document = System.Windows.Markup.XamlReader.Parse(xaml) as System.Windows.Documents.FlowDocument; foreach (string name in config.ReportViewModels.Keys) { SetElementViewModel(name, config.ReportViewModels[name], document); } return(document); }
public DefaultReportViewModel( [Import] IEventAggregator aggregator, [Import] ReportHelper.Report reports, [Import] IBackgroundExecutor executor, [Import] IDialogService dialogs) { this.executor = executor; this.aggregator = aggregator; this.reports = reports; this.dialogs = dialogs; aggregator.Subscribe<Project>(ScrumFactoryEvent.ViewProjectDetails, p => { Project = p; }); aggregator.Subscribe<ReportHelper.ReportConfig>(ScrumFactoryEvent.ShowReport, Show); CloseWindowCommand = new DelegateCommand(CloseWindow); RefreshCommand = new DelegateCommand(Refresh); PrintCommand = new DelegateCommand(Print); SaveAsCommand = new DelegateCommand(SaveAs); }
private void SendInviteMemberEmail(ProjectMembership membership, string serverUrl) { try { Project project = GetProject_skipAuth(membership.ProjectUId); // get members and attach to the project mailer.AttachProjectMembers(project); MemberProfile member = project.Memberships.FirstOrDefault(ms => ms.MemberUId == membership.MemberUId).Member; if (member.IsContactMember) { return; } // create body from the template ReportHelper.Report reports = new ReportHelper.Report(); ReportHelper.ReportConfig reportConfig = new ReportHelper.ReportConfig("EmailNotifications", "member_invited", ""); reportConfig.ReportObjects.Add(project); reportConfig.ReportVars.Add("RoleName", membership.Role.RoleName); string body = reports.CreateReportXAML(serverUrl, reportConfig, true); // subject string subject = "Join project invitation"; // send it to all project members bool send = mailer.SendEmail(member.EmailAccount, subject, body); if (!send) { ScrumFactory.Services.Logic.Helper.Log.LogMessage("Invite project email was not send."); } } catch (System.Exception ex) { ScrumFactory.Services.Logic.Helper.Log.LogError(ex); } }
private void SendTicketEmail(BacklogItem ticket, string folder, Project project) { try { // get members and attach to the project mailer.AttachProjectMembers(project); // create body from the template ReportHelper.Report reports = new ReportHelper.Report(); ReportHelper.ReportConfig reportConfig = new ReportHelper.ReportConfig("EmailNotifications", "ticket_created", Helper.ReportTemplate.ServerUrl); reportConfig.ReportObjects.Add(project); reportConfig.ReportObjects.Add(ticket); reportConfig.ReportVars.Add("TicketFolder", folder); string body = reports.CreateReportXAML(Helper.ReportTemplate.ServerUrl, reportConfig); // subject string subject = "Ticket #" + project.ProjectNumber + "." + ticket.BacklogItemNumber; // send it to all project members bool send = mailer.SendEmail(project, subject, body); if (!send) ScrumFactory.Services.Logic.Helper.Log.LogMessage("Ticket email was not send."); } catch (System.Exception ex) { ScrumFactory.Services.Logic.Helper.Log.LogError(ex); } }
public void SetReportDocument(string xaml, string title, ReportHelper.Report reports, ReportHelper.ReportConfig config) { this.reportXaml = xaml; this.reports = reports; this.config = config; this.title = title; if (reportXaml == null) { documentReader.Document = null; return; } xaml = CleanInvalidXmlChars(xaml); var document = System.Windows.Markup.XamlReader.Parse(xaml) as System.Windows.Documents.FlowDocument; documentReader.Document = document; foreach (string name in config.ReportViewModels.Keys) SetElementViewModel(name, config.ReportViewModels[name]); ScrumFactory.ReportHelper.Paginator.LoadLogo(serverUrl.Url + "/images/companyLogo.png"); }
private void SendStartProjectEmail(Project project, string serverUrl) { try { // get members and attach to the project mailer.AttachProjectMembers(project); // create body from the template ReportHelper.Report reports = new ReportHelper.Report(); ReportHelper.ReportConfig reportConfig = new ReportHelper.ReportConfig("EmailNotifications", "project_started", ""); reportConfig.ReportObjects.Add(project); reportConfig.ReportVars.Add("LastSprintUId", project.LastSprint.SprintUId); string body = reports.CreateReportXAML(serverUrl, reportConfig); // subject string subject = project.ProjectName + " STARTED !!"; // send it to all project members bool send = mailer.SendEmail(project, subject, body); if (!send) ScrumFactory.Services.Logic.Helper.Log.LogMessage("Start project email was not send."); } catch (System.Exception ex) { ScrumFactory.Services.Logic.Helper.Log.LogError(ex); } }
private void SendInviteMemberEmail(ProjectMembership membership, string serverUrl) { try { Project project = GetProject_skipAuth(membership.ProjectUId); // get members and attach to the project mailer.AttachProjectMembers(project); MemberProfile member = project.Memberships.FirstOrDefault(ms => ms.MemberUId == membership.MemberUId).Member; if (member.IsContactMember) return; // create body from the template ReportHelper.Report reports = new ReportHelper.Report(); ReportHelper.ReportConfig reportConfig = new ReportHelper.ReportConfig("EmailNotifications", "member_invited", ""); reportConfig.ReportObjects.Add(project); reportConfig.ReportVars.Add("RoleName", membership.Role.RoleName); string body = reports.CreateReportXAML(serverUrl, reportConfig); // subject string subject = "Join project invitation"; // send it to all project members bool send = mailer.SendEmail(member.EmailAccount, subject, body); if (!send) ScrumFactory.Services.Logic.Helper.Log.LogMessage("Invite project email was not send."); } catch (System.Exception ex) { ScrumFactory.Services.Logic.Helper.Log.LogError(ex); } }
private void SendCloseProjectEmail(Project project, string serverUrl) { try { // get members and attach to the project mailer.AttachProjectMembers(project); // get vel indicator decimal velIndicator = backlogService.GetProjectVelocityIndicator_skipAuth(project.ProjectUId); decimal budgetIndicator = proposalsService.GetBudgetIndicator_skipAuth(project.ProjectUId); decimal qualityIndicator = tasksService.GetReworkIndicator_skipAuth(project.ProjectUId); // create body from the template ReportHelper.Report reports = new ReportHelper.Report(); ReportHelper.ReportConfig reportConfig = new ReportHelper.ReportConfig("EmailNotifications", "project_closed", ""); reportConfig.ReportObjects.Add(project); reportConfig.ReportVars.Add("VelIndicator", velIndicator.ToString("#0")); reportConfig.ReportVars.Add("BudgetIndicator", budgetIndicator.ToString("#0")); reportConfig.ReportVars.Add("QualityIndicator", qualityIndicator.ToString("#0")); string body = reports.CreateReportXAML(serverUrl, reportConfig); // subject string subject = project.ProjectName + " CLOSED !!"; // send it to all project members bool send = mailer.SendEmail(project, subject, body); if (!send) ScrumFactory.Services.Logic.Helper.Log.LogMessage("Close project email was not send."); } catch (System.Exception ex) { ScrumFactory.Services.Logic.Helper.Log.LogError(ex); } }
private void CreateReport(System.Windows.Documents.FlowDocument document) { if (document == null) return; var report = new ReportHelper.Report(); document.Tag = "sf-header:yes"; var paginator = report.CreatePaginator(document, title); try { if (format == "pdf") report.FlowDocumentToPDF(paginator, fileName, "report", true); else report.FlowDocumentToXps(paginator, fileName, "report", true); } catch(Exception ex) { errorMessage = ex.Message; return; } pdfBytes = File.ReadAllBytes(fileName); File.Delete(fileName); }
public string GetReportXAMLOnly(string templateGroup, string template, string projectUId, string proposalUId) { serverUrl = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath; var project = projectService.GetProject(projectUId); config = CreateReportConfig(project, templateGroup, template, "report"); if (templateGroup == "ProposalReport") { ProposalConfig(config, projectUId, proposalUId); } if (templateGroup == "SprintReview" && template == "default10") { BurndownConfig(config, project); } var report = new ReportHelper.Report(); var xaml = report.CreateReportXAML(serverUrl, config); xaml = CleanInvalidXmlChars(xaml); return xaml; }
public System.Windows.Documents.FlowDocument CreateFlowDocument() { var report = new ReportHelper.Report(); var xaml = report.CreateReportXAML(serverUrl, config); xaml = CleanInvalidXmlChars(xaml); System.Windows.Documents.FlowDocument document = null; document = System.Windows.Markup.XamlReader.Parse(xaml) as System.Windows.Documents.FlowDocument; foreach (string name in config.ReportViewModels.Keys) SetElementViewModel(name, config.ReportViewModels[name], document); return document; }