protected void ArchivePartnerReportBtn_Click(object sender, EventArgs e) { //Submit the report and and go back to the reports list try { partner_reports report = db.partner_reports.SingleOrDefault( data => data.partner_report_id == reportID); report.approved = false; report.archived = true; if (db.SaveChanges() > 0) { db.SaveChanges(); } //Redirect Response.Redirect("~/MRM/ApprovedPartnerReports.aspx", true); } catch (Exception ex) { //throw new Exception(); AlertLabel.Text = ex.Message + " : " + ex.InnerException; ScriptManager.RegisterStartupScript( Page, Page.GetType(), "alertModal", "$('#alertModal').modal('show');", true); } }
protected void SubmitPartnerReportBtn_Click(object sender, EventArgs e) { if (int.Parse(NumberOfSectionsFilled.Value) == 7) { //Submit the report and and go back to the reports list try { partner_reports report = db.partner_reports.SingleOrDefault( data => data.partner_report_id == reportID); report.saved = false; report.submitted = true; //Send and Email here. Pick overall assessment and conclusion //as email body. /* * 1. Check the user project * 2. Check for the pillar for the project * 3. Check all the users under that pillar * 4. Create email body and content * 5. Send report submission email to pillar users */ var userIds = from data in db.AspNetUserClaims where data.ClaimValue == report.project.pillar_id.ToString() && data.ClaimType == "Pillar" select data.UserId; UserManager <IdentityUser> manager = new UserManager <IdentityUser>( new UserStore <IdentityUser>()); foreach (var userId in userIds) { IdentityUser user = manager.FindById(userId); if (user.Email != null || !(string.IsNullOrEmpty(user.Email))) { //=============================== // send email | //=============================== //Create the mail message MailMessage mail = new MailMessage(); //Add the Addresses mail.To.Add(user.Email.Trim()); //Set the content mail.Subject = "MRM: Quarterly Report Submitted"; System.Text.StringBuilder sBuilder = new System.Text.StringBuilder(); sBuilder.Append("Dear " + report.project.pillar.name + " Team,") .AppendLine().AppendLine(); sBuilder.Append("Note that the "); sBuilder.Append(report.project.implementing_partner.Trim() + " " + report.report_periods.period_name.Trim() + " " + report.year.year1.ToString()); sBuilder.Append(" quarterly report has been submitted to you for review and approval.") .AppendLine().AppendLine(); var overallAss = (from data in db.project_overall_rating where data.partner_report_id == report.partner_report_id select new { data.project_rating.rating, data.comment }).SingleOrDefault(); if (overallAss != null) { sBuilder.Append("Project Rating : " + overallAss.rating).AppendLine(); sBuilder.Append("Commentary: " + overallAss.comment).AppendLine().AppendLine(); } sBuilder.Append("You can access the report here: http://results.fsdafrica.org ").AppendLine().AppendLine(); sBuilder.Append("*This email is automatically generated - please do not reply").AppendLine(); mail.Body = sBuilder.ToString(); //Preparation to send the message SmtpClient smtp = new SmtpClient(); /****SMTP Client should be defined in the Web.Config File****/ ServicePointManager.ServerCertificateValidationCallback = delegate( object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return(true); }; //Always Accept try { //Send the message smtp.Send(mail); } catch (Exception ex) { AlertLabel.Text = "Notification Mail not sent " + ex.Message; ScriptManager.RegisterStartupScript( Page, Page.GetType(), "alertModal", "$('#alertModal').modal('show');", true); return; } } } if (db.SaveChanges() > 0) { db.SaveChanges(); } //Redirect Response.Redirect("~/Partner/CreatedPartnerReports.aspx", true); } catch (Exception ex) { //throw new Exception(); AlertLabel.Text = ex.Message + " : " + ex.InnerException; ScriptManager.RegisterStartupScript( Page, Page.GetType(), "alertModal", "$('#alertModal').modal('show');", true); } } else { AlertLabel.Text = "You cannot Submit this report. It is incomplete"; ScriptManager.RegisterStartupScript( Page, Page.GetType(), "alertModal", "$('#alertModal').modal('show');", true); return; } }
protected void CreateReportButton_Click(object sender, EventArgs e) { int partner = int.Parse(Partner.SelectedValue); int reportPeriod = int.Parse(ReportPeriod.SelectedValue); int year = int.Parse(Year.SelectedValue); var report = from data in db.partner_reports where data.project_id == partner && data.report_period_id == reportPeriod && data.year_id == year select data; if (report.Count() == 0) { //======Add the Narrative Part of the report to the Database====== partner_reports myReport = new partner_reports(); myReport.project_id = partner; myReport.report_period_id = reportPeriod; myReport.year_id = year; myReport.draft = true; myReport.saved = true; db.partner_reports.Add(myReport); //=======Add the Risks part of the Report to the database============ var _theRisks = from data in db.project_risk where (data.is_general_risk == true || data.project_id == partner) && data.active == true select data; foreach (var theRisk in _theRisks) { project_risk_report risk = new project_risk_report(); risk.risk_id = theRisk.risk_id; risk.partner_reports = myReport; risk.project_id = partner; risk.report_period_id = reportPeriod; risk.year_id = year; db.project_risk_report.Add(risk); } //=======Add the Indicator part of the report to the database====== var reportIndicators = from data in db.partner_indicators where data.project_id == partner select data.partner_indicator_id; /* DataTable dt = new DataTable(); * dt.Columns.AddRange( * new DataColumn[3] * { * new DataColumn("partner_indicator_id"), * new DataColumn("report_period_id"), * new DataColumn("year_id") * });*/ foreach (var _reportIndicators in reportIndicators) { var filteredReportIndicators = from data in db.indicator_report_planner where data.report_period_id == reportPeriod && data.year_id == year && data.partner_indicator_id == _reportIndicators select data; foreach (var _filteredReportIndicators in filteredReportIndicators) { /*//Populate a data table that can be queried for an empty indicator results set * var row = dt.NewRow(); * row["partner_indicator_id"] = _filteredReportIndicators.partner_indicator_id; * row["report_period_id"] = _filteredReportIndicators.report_period_id; * row["year_id"] = _filteredReportIndicators.year_id; * dt.Rows.Add(row);*/ partner_indicator_results myResults = new partner_indicator_results(); myResults.partner_indicator_id = _filteredReportIndicators.partner_indicator_id; myResults.report_period_id = _filteredReportIndicators.report_period_id; myResults.year_id = _filteredReportIndicators.year_id; myResults.partner_reports = myReport; db.partner_indicator_results.Add(myResults); //================Added this peace of code to add disaggregated results===================== var indDisaggregation = from data in db.project_indicator_disaggregation where data.project_indicator_id == _filteredReportIndicators.partner_indicator_id select data; foreach (var _indDisaggregation in indDisaggregation) { project_indicator_disaggregation_result myDisaggregatedResults = new project_indicator_disaggregation_result(); myDisaggregatedResults.project_indicator_disaggregation_id = _indDisaggregation.id; myDisaggregatedResults.partner_reports = myReport; myDisaggregatedResults.report_period_id = _filteredReportIndicators.report_period_id; myDisaggregatedResults.year_id = _filteredReportIndicators.year_id; db.project_indicator_disaggregation_result.Add(myDisaggregatedResults); } //==================End added this peace of code======================= } } /*if(dt.Rows.Count <= 0) * { * AlertLabel.Text = "You cannot create that report, "+ * "there are no indicators assigned to that reporting period."+ * "Please contact the MRM Team"; * * ScriptManager.RegisterStartupScript( * Page, * Page.GetType(), * "alertModal", "$('#alertModal').modal('show');", * true); * * //End page execution * //Response.End();//ends execution like below * return; * } * else if(dt.Rows.Count > 0) * { * foreach (DataRow row in dt.Rows) * { * partner_indicator_results myResults = new partner_indicator_results(); * myResults.partner_indicator_id = int.Parse(row["partner_indicator_id"].ToString()); * myResults.report_period_id = int.Parse(row["report_period_id"].ToString()); * myResults.year_id = int.Parse(row["year_id"].ToString()); * myResults.partner_reports = myReport; * db.partner_indicator_results.Add(myResults); * } * }*/ //================================================================== try { if (db.SaveChanges() > 0) { db.SaveChanges(); alertDiv.Visible = true; } } catch (Exception ex) { AlertLabel.Text = "You cannot create that report, please check again" + ex.InnerException; ScriptManager.RegisterStartupScript( Page, Page.GetType(), "alertModal", "$('#alertModal').modal('show');", true); return; } } else { AlertLabel.Text = "That Report has Already Been Created"; ScriptManager.RegisterStartupScript( Page, Page.GetType(), "alertModal", "$('#alertModal').modal('show');", true); return; } }