Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
        }
Example #5
0
        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);
            }
        }
Example #6
0
        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);
            }
        }
Example #10
0
        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);
            }
        }
Example #11
0
        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);
        }
Example #12
0
        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;
        }
Example #13
0
        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;
        }