public static Endorsement EndorsementWithID(int id) { DBHelper dbh = new DBHelper("SELECT *, LENGTH(DigitizedSignature) AS FileSize FROM Endorsements WHERE id=?idEndorsement"); Endorsement en = null; dbh.ReadRow((comm) => { comm.Parameters.AddWithValue("idEndorsement", id); }, (dr) => { en = new Endorsement(dr); }); return(en); }
protected void gvExistingEndorsements_RowDataBound(object sender, GridViewRowEventArgs e) { if (e != null && e.Row.RowType == DataControlRowType.DataRow) { Endorsement endorsement = (Endorsement)e.Row.DataItem; Controls_mfbEndorsement mfbEndorsement = (Controls_mfbEndorsement)e.Row.FindControl("mfbEndorsement1"); mfbEndorsement.SetEndorsement(endorsement); } }
protected void btnAddEndorsement_Click(object sender, EventArgs e) { if (Page.IsValid && NewEndorsement != null) { Endorsement endorsement; switch (Mode) { default: case EndorsementMode.InstructorOfflineStudent: case EndorsementMode.InstructorPushAuthenticated: { Profile pf = MyFlightbook.Profile.GetUser(Page.User.Identity.Name); endorsement = new Endorsement(Page.User.Identity.Name) { CFICertificate = pf.Certificate, CFIExpirationDate = pf.CertificateExpiration }; if (!pf.CertificateExpiration.HasValue() && mfbDateCertExpiration.Date.HasValue()) { endorsement.CFIExpirationDate = pf.CertificateExpiration = mfbDateCertExpiration.Date; pf.FCommit(); // save it to the profile. } } break; case EndorsementMode.StudentPullAdHoc: endorsement = new Endorsement(string.Empty) { CFICachedName = txtCFI.Text, CFICertificate = txtCFICert.Text, CFIExpirationDate = mfbDateCertExpiration.Date }; endorsement.SetDigitizedSig(mfbScribbleSignature.Base64Data()); if (endorsement.GetDigitizedSig() == null) { return; } break; case EndorsementMode.StudentPullAuthenticated: endorsement = new Endorsement(SourceUser.UserName) { CFICertificate = SourceUser.Certificate, CFIExpirationDate = SourceUser.CertificateExpiration }; break; } endorsement.Date = mfbTypeInDate1.Date; endorsement.EndorsementText = TemplateText(); endorsement.StudentType = StudentType; endorsement.StudentName = StudentType == Endorsement.StudentTypes.Member ? TargetUser.UserName : txtOfflineStudent.Text; endorsement.Title = txtTitle.Text; endorsement.FARReference = lblEndorsementFAR.Text; NewEndorsement(this, new EndorsementEventArgs(endorsement)); } }
public void SetEndorsement(Endorsement e) { if (e == null) { throw new ArgumentNullException(nameof(e)); } int id = 1; // freeform hdnEndorsementID.Value = id.ToString(CultureInfo.InvariantCulture); UpdateFormForTemplate(id, true, e.EndorsementText); txtTitle.Text = e.Title; }
protected void lnkDownload_Click(object sender, EventArgs e) { gvDownload.DataSource = Endorsement.EndorsementsForUser(Student, Instructor, CurSortDirection, CurSortKey); gvDownload.DataBind(); Response.ContentType = "text/csv"; // Give it a name that is the brand name, user's name, and date. Convert spaces to dashes, and then strip out ANYTHING that is not alphanumeric or a dash. string szFilename = String.Format(CultureInfo.CurrentCulture, "{0}-{1}-{2}", Branding.CurrentBrand.AppName, Resources.SignOff.DownloadEndorsementsFilename, String.IsNullOrEmpty(Student) ? Resources.SignOff.DownloadEndorsementsAllStudents : MyFlightbook.Profile.GetUser(Student).UserFullName); string szDisposition = String.Format(CultureInfo.InvariantCulture, "attachment;filename={0}.csv", Regex.Replace(szFilename, "[^0-9a-zA-Z-]", "")); Response.AddHeader("Content-Disposition", szDisposition); gvDownload.ToCSV(Response.OutputStream); Response.End(); }
/// <summary> /// Refreshes (databinds) the list of endorsements /// </summary> /// <returns># of endorsements bound</returns> public int RefreshEndorsements() { IEnumerable <Endorsement> rg = Endorsement.RemoveEndorsementsByInstructor(Endorsement.EndorsementsForUser(Student, Instructor, CurSortDirection, CurSortKey), ExcludeInstructor); gvExistingEndorsements.DataSource = rg; gvExistingEndorsements.DataBind(); int cItems = rg.Count(); gvExistingEndorsements.ShowHeader = cItems > 0; if (cItems > 0) { LinkButton lbSortDate = (LinkButton)gvExistingEndorsements.HeaderRow.FindControl("lnkSortDate"); LinkButton lbSortTitle = (LinkButton)gvExistingEndorsements.HeaderRow.FindControl("lnkSortTitle"); lbSortDate.CssClass = String.Format(CultureInfo.InvariantCulture, "headerBase{0}", CurSortKey == EndorsementSortKey.Date ? (CurSortDirection == SortDirection.Ascending ? " headerSortAsc" : " headerSortDesc") : string.Empty); lbSortTitle.CssClass = String.Format(CultureInfo.InvariantCulture, "headerBase{0}", CurSortKey == EndorsementSortKey.Title ? (CurSortDirection == SortDirection.Ascending ? " headerSortAsc" : " headerSortDesc") : string.Empty); } lnkDownload.Visible = !String.IsNullOrEmpty(Instructor) && cItems > 0; return(cItems); }
public EndorsementEventArgs(Endorsement e = null) : base() { this.Endorsement = e; }
protected bool CanCopy(Endorsement e) { return(e != null && e.IsMemberEndorsement && e.StudentName.CompareCurrentCultureIgnoreCase(Page.User.Identity.Name) != 0); }
protected bool CanDelete(Endorsement e) { return(e != null && ShowDelete && e.StudentName.CompareCurrentCultureIgnoreCase(Page.User.Identity.Name) == 0); }
protected void gvExistingEndorsements_RowCommand(object sender, CommandEventArgs e) { if (e == null || String.IsNullOrEmpty(e.CommandArgument.ToString())) { return; } int id = Convert.ToInt32(e.CommandArgument, CultureInfo.InvariantCulture); try { if (id <= 0) { throw new MyFlightbookException("Invalid endorsement ID to delete"); } if (e.CommandName.CompareOrdinalIgnoreCase("_DeleteExternal") == 0 && !String.IsNullOrEmpty(e.CommandArgument.ToString())) { List <Endorsement> rgEndorsements = new List <Endorsement>(Endorsement.EndorsementsForUser(null, Page.User.Identity.Name)); Endorsement en = rgEndorsements.FirstOrDefault(en2 => en2.ID == id); if (en == null) { throw new MyFlightbookException("ID of endorsement to delete is not found in owners endorsements"); } if (en.StudentType == Endorsement.StudentTypes.Member) { throw new MyFlightbookException(Resources.SignOff.errCantDeleteMemberEndorsement); } en.FDelete(); RefreshEndorsements(); } else if (e.CommandName.CompareOrdinalIgnoreCase("_DeleteOwned") == 0 && !String.IsNullOrEmpty(e.CommandArgument.ToString())) { List <Endorsement> rgEndorsements = new List <Endorsement>(Endorsement.EndorsementsForUser(Page.User.Identity.Name, null)); Endorsement en = rgEndorsements.FirstOrDefault(en2 => en2.ID == id); if (en == null) { throw new MyFlightbookException("Can't find endorsement with ID=" + id.ToString(CultureInfo.InvariantCulture)); } if (en.StudentType == Endorsement.StudentTypes.External) { throw new MyFlightbookException("Can't delete external endorsement with ID=" + id.ToString(CultureInfo.InvariantCulture)); } en.FDelete(); RefreshEndorsements(); } else if (e.CommandName.CompareOrdinalIgnoreCase("_Copy") == 0 && !String.IsNullOrEmpty(e.CommandArgument.ToString())) { Endorsement en = Endorsement.EndorsementWithID(Convert.ToInt32(e.CommandArgument, CultureInfo.InvariantCulture)); if (en == null) { throw new MyFlightbookException("Can't find endorsement with ID=" + id.ToString(CultureInfo.InvariantCulture)); } if (en.StudentType == Endorsement.StudentTypes.External) { throw new MyFlightbookException("Can't copy external endorsement with ID=" + id.ToString(CultureInfo.InvariantCulture)); } CopyEndorsement?.Invoke(this, new EndorsementEventArgs(en)); } } catch (MyFlightbookException ex) { lblErr.Text = ex.Message; } }