protected void btnAddStudent_Click(object sender, EventArgs e) { if (!Page.IsValid) { return; } try { Profile pf = Profile.GetUser(Page.User.Identity.Name); if (String.IsNullOrEmpty(pf.Certificate) && !String.IsNullOrEmpty(txtCertificate.Text)) { pf.Certificate = txtCertificate.Text.LimitTo(30); pf.CertificateExpiration = mfbTypeInDateCFIExpiration.Date; pf.FCommit(); } CFIStudentMapRequest smr = m_sm.GetRequest(CFIStudentMapRequest.RoleType.RoleStudent, txtStudentEmail.Text); smr.Send(); lblAddStudentSuccess.Text = String.Format(CultureInfo.CurrentCulture, Resources.Profile.EditProfileRequestHasBeenSent, HttpUtility.HtmlEncode(txtStudentEmail.Text)); lblAddStudentSuccess.CssClass = "success"; txtStudentEmail.Text = ""; } catch (MyFlightbookException ex) { lblAddStudentSuccess.Text = ex.Message; lblAddStudentSuccess.CssClass = "error"; } }
protected void btnAddInstructor_Click(object sender, EventArgs e) { if (!Page.IsValid) { return; } try { CFIStudentMapRequest smr = m_sm.GetRequest(CFIStudentMapRequest.RoleType.RoleCFI, txtInstructorEmail.Text); smr.Send(); lblAddInstructorSuccess.Text = String.Format(CultureInfo.CurrentCulture, Resources.Profile.EditProfileRequestHasBeenSent, HttpUtility.HtmlEncode(txtInstructorEmail.Text)); lblAddInstructorSuccess.CssClass = "success"; txtInstructorEmail.Text = ""; } catch (MyFlightbookException ex) { lblAddInstructorSuccess.Text = ex.Message; lblAddInstructorSuccess.CssClass = "error"; } }
protected void Page_Load(object sender, EventArgs e) { Master.SelectedTab = tabID.tabTraining; Master.Title = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.TitleProfile, Branding.CurrentBrand.AppName); string szReq = util.GetStringParam(Request, "req"); try { if (szReq.Length == 0) { throw new MyFlightbookValidationException(Resources.LocalizedText.AddRelationshipErrInvalidRequest); } m_smr = new CFIStudentMapRequest(); m_smr.DecryptRequest(szReq); Profile pfRequestor = Profile.GetUser(m_smr.RequestingUser); if (!pfRequestor.IsValid()) { throw new MyFlightbookValidationException(Resources.LocalizedText.AddRelationshipErrInvalidUser); } Profile pfCurrent = Profile.GetUser(User.Identity.Name); if (pfCurrent.Email.CompareCurrentCultureIgnoreCase(m_smr.TargetUser) != 0 && !pfCurrent.IsVerifiedEmail(m_smr.TargetUser)) { throw new MyFlightbookValidationException(String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.AddRelationshipErrNotTargetUser, m_smr.TargetUser, pfCurrent.Email)); } m_sm = new CFIStudentMap(User.Identity.Name); switch (m_smr.Requestedrole) { case CFIStudentMapRequest.RoleType.RoleStudent: lblRequestDesc.Text = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.AddRelationshipRequestStudent, Branding.CurrentBrand.AppName, HttpUtility.HtmlEncode(pfRequestor.UserFullName)); if (m_sm.IsStudentOf(m_smr.RequestingUser)) { throw new MyFlightbookValidationException(String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.AddRelationshipErrAlreadyStudent, pfRequestor.UserFullName)); } break; case CFIStudentMapRequest.RoleType.RoleCFI: lblRequestDesc.Text = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.AddRelationshipRequestInstructor, Branding.CurrentBrand.AppName, HttpUtility.HtmlEncode(pfRequestor.UserFullName)); if (m_sm.IsInstructorOf(m_smr.RequestingUser)) { throw new MyFlightbookValidationException(String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.AddRelationshipErrAlreadyInstructor, pfRequestor.UserFullName)); } break; case CFIStudentMapRequest.RoleType.RoleInviteJoinClub: if (m_smr.ClubToJoin == null) { throw new MyFlightbookValidationException(Resources.Club.errNoClubInRequest); } if (m_smr.ClubToJoin.HasMember(pfCurrent.UserName)) { throw new MyFlightbookValidationException(String.Format(CultureInfo.CurrentCulture, Resources.Club.errAlreadyMember, m_smr.ClubToJoin.Name)); } lblRequestDesc.Text = String.Format(CultureInfo.CurrentCulture, Resources.Club.AddMemberFromInvitation, m_smr.ClubToJoin.Name); break; case CFIStudentMapRequest.RoleType.RoleRequestJoinClub: if (m_smr.ClubToJoin == null) { throw new MyFlightbookValidationException(Resources.Club.errNoClubInRequest); } if (m_smr.ClubToJoin.HasMember(pfRequestor.UserName)) { throw new MyFlightbookValidationException(String.Format(CultureInfo.CurrentCulture, Resources.Club.errAlreadyAddedMember, pfRequestor.UserFullName, m_smr.ClubToJoin.Name)); } lblRequestDesc.Text = String.Format(CultureInfo.CurrentCulture, Resources.Club.AddMemberFromRequest, HttpUtility.HtmlEncode(pfRequestor.UserFullName), m_smr.ClubToJoin.Name); break; } } catch (MyFlightbookValidationException ex) { pnlReviewRequest.Visible = false; lblError.Text = ex.Message; pnlConfirm.Visible = false; } }
protected void wzRequestSigs_FinishButtonClick(object sender, WizardNavigationEventArgs e) { IEnumerable <LogbookEntry> lstFlights = SelectedFlights; string szCFIUsername = String.Empty; string szCFIEmail = String.Empty; MyFlightbook.Profile pfCFI = null; bool fIsNewCFI = String.IsNullOrEmpty(cmbInstructors.SelectedValue); // Check In case the named email is already an instructor. CFIStudentMap sm = new CFIStudentMap(User.Identity.Name); if (fIsNewCFI && sm.IsStudentOf(txtCFIEmail.Text)) { fIsNewCFI = false; foreach (InstructorStudent inst in sm.Instructors) { if (String.Compare(inst.Email, txtCFIEmail.Text, StringComparison.CurrentCultureIgnoreCase) == 0) { pfCFI = inst; break; } } } else { pfCFI = MyFlightbook.Profile.GetUser(cmbInstructors.SelectedValue); } if (fIsNewCFI) { szCFIEmail = txtCFIEmail.Text; } else { szCFIUsername = pfCFI.UserName; } // check if we already know the email foreach (LogbookEntry le in lstFlights) { le.RequestSignature(szCFIUsername, szCFIEmail); } // Now send the email if (fIsNewCFI) { CFIStudentMapRequest smr = sm.GetRequest(CFIStudentMapRequest.RoleType.RoleCFI, szCFIEmail); smr.Send(); } else { Profile pf = MyFlightbook.Profile.GetUser(User.Identity.Name); using (MailMessage msg = new MailMessage()) { msg.From = new MailAddress(Branding.CurrentBrand.EmailAddress, String.Format(System.Globalization.CultureInfo.CurrentCulture, Resources.SignOff.EmailSenderAddress, Branding.CurrentBrand.AppName, pf.UserFullName)); msg.ReplyToList.Add(new MailAddress(pf.Email, pf.UserFullName)); msg.To.Add(new MailAddress(pfCFI.Email, pfCFI.UserFullName)); msg.Subject = String.Format(System.Globalization.CultureInfo.CurrentCulture, Resources.SignOff.SignRequestSubject, pf.UserFullName, Branding.CurrentBrand.AppName); string szURL = String.Format(System.Globalization.CultureInfo.InvariantCulture, "https://{0}{1}/{2}", Request.Url.Host, ResolveUrl("~/Member/Training.aspx"), tabID.instStudents.ToString()); msg.Body = Branding.ReBrand(Resources.SignOff.SignInvitationExisting).Replace("<% SignPendingFlightsLink %>", szURL).Replace("<% Requestor %>", pf.UserFullName); util.SendMessage(msg); } } Response.Redirect(String.Format(System.Globalization.CultureInfo.InvariantCulture, "~/Member/Training.aspx/{0}", tabID.instSignFlights)); }