protected void Page_Load(object sender, EventArgs e)
        {
            Master.SelectedTab = tabID.tabTraining;

            if (!IsPostBack)
            {
                hdnStudent.Value = Page.User.Identity.Name; //default
                string            szStudent = util.GetStringParam(Request, "student");
                CFIStudentMap     sm        = new CFIStudentMap(Page.User.Identity.Name);
                InstructorStudent student   = CFIStudentMap.GetInstructorStudent(sm.Students, szStudent);
                if (student == null)
                {
                    lblErr.Text = Resources.SignOff.ViewStudentNoSuchStudent;
                }
                else
                {
                    if (!student.CanViewLogbook)
                    {
                        lblErr.Text = Master.Title = Resources.SignOff.ViewStudentLogbookUnauthorized;
                    }
                    else
                    {
                        // If we're here, we are authorized
                        lblHeader.Text   = String.Format(CultureInfo.CurrentCulture, Resources.SignOff.ViewStudentLogbookHeader, HttpUtility.HtmlEncode(student.UserFullName));
                        hdnStudent.Value = student.UserName;
                        Restriction      = new FlightQuery(student.UserName);

                        if (mfbLogbook1.CanResignValidFlights = student.CanAddLogbook)
                        {
                            mfbEditFlight.FlightUser = student.UserName;
                            mfbEditFlight.SetUpNewOrEdit(LogbookEntryBase.idFlightNew);
                        }
                        else
                        {
                            apcNewFlight.Container.Style["display"] = "none";
                        }

                        if (!String.IsNullOrEmpty(hdnStudent.Value))
                        {
                            UpdateForUser(hdnStudent.Value);
                        }

                        mfbSearchForm.Username = student.UserName;
                        ResolvePrintLink();
                    }
                }

                pnlLogbook.Visible = (lblErr.Text.Length == 0);
            }

            if (pnlLogbook.Visible && mfbChartTotals.Visible)
            {
                mfbChartTotals.HistogramManager = LogbookEntryDisplay.GetHistogramManager(mfbLogbook1.Data, hdnStudent.Value);   // do this every time, since charttotals doesn't persist its data.
            }
        }
Esempio n. 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Master.SelectedTab = tabID.tabTraining;
            Title = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.TitleProfile, Branding.CurrentBrand.AppName);

            pnlError.Visible = false;

            if (!IsPostBack)
            {
                try
                {
                    if (Request.PathInfo.Length > 0)
                    {
                        m_szTargetUser = Request.PathInfo.Substring(1);
                    }

                    bool fMemberEndorsement = util.GetIntParam(Request, "extern", 0) == 0;

                    if (m_szTargetUser.Length == 0 && fMemberEndorsement)
                    {
                        pnlEndorsement.Visible = false; // hide the new endorsement panel - just show all endorsements given
                    }
                    else
                    {
                        mfbEditEndorsement1.StudentType = fMemberEndorsement ? Endorsement.StudentTypes.Member : Endorsement.StudentTypes.External;

                        if (fMemberEndorsement)
                        {
                            CFIStudentMap sm = new CFIStudentMap(Page.User.Identity.Name);
                            if (!sm.IsInstructorOf(m_szTargetUser))
                            {
                                throw new MyFlightbookValidationException(Resources.Profile.errNotAuthorizedToEndorse);
                            }
                            InstructorStudent student = CFIStudentMap.GetInstructorStudent(sm.Students, m_szTargetUser);
                            if (student.CanViewLogbook)
                            {
                                pnlNonOwnedEndorsements.Visible           = true;
                                mfbNonOwnedEndorsements.Student           = m_szTargetUser;
                                mfbNonOwnedEndorsements.ExcludeInstructor = Page.User.Identity.Name;
                                mfbNonOwnedEndorsements.RefreshEndorsements();

                                mfbIlNonOwnedEndorsementScans.ImageClass = Image.MFBImageInfoBase.ImageClass.Endorsement;
                                mfbIlNonOwnedEndorsementScans.Key        = m_szTargetUser;
                                mfbIlNonOwnedEndorsementScans.Refresh();

                                // show unowned and uploaded endorsements as well
                                if (student.CanAddLogbook)
                                {
                                    // allow for upload of additional scanned endorsements.
                                    mfbMultiFileUpload.Visible  = true;
                                    mfbMultiFileUpload.ImageKey = m_szTargetUser;
                                }
                            }

                            Profile pfTarget      = Profile.GetUser(m_szTargetUser);
                            string  szTargetUser  = pfTarget.UserFullName;
                            string  szEncodedUser = HttpUtility.HtmlEncode(szTargetUser);

                            lblPageHeader.Text                = String.Format(CultureInfo.CurrentCulture, Resources.Profile.EndorsementsHeader, szEncodedUser);
                            lblNewEndorsementHeader.Text      = String.Format(CultureInfo.CurrentCulture, Resources.Profile.EndorsementsNewEndorsementHeader, szEncodedUser);
                            lblExistingEndorsementHeader.Text = String.Format(CultureInfo.CurrentCulture, Resources.Profile.EndorsementsExistingEndorsementHeader, szEncodedUser);
                            lblNonOwnedHeader.Text            = String.Format(CultureInfo.CurrentCulture, Resources.Profile.EndorsementsNotOwnedEndorsementHeader, szEncodedUser);
                            mfbEditEndorsement1.TargetUser    = pfTarget;
                            mfbEditEndorsement1.Mode          = EndorsementMode.InstructorPushAuthenticated;
                        }
                        else
                        {
                            mfbEditEndorsement1.Mode = EndorsementMode.InstructorOfflineStudent;
                        }

                        Profile pf = Profile.GetUser(User.Identity.Name);

                        if (pf.Certificate.Length == 0)
                        {
                            throw new MyFlightbookValidationException(Resources.Profile.errNoCFICertificate);
                        }

                        mfbEditEndorsement1.SourceUser = pf;

                        RefreshTemplateList();

                        ViewState[keyTargetUser] = m_szTargetUser;
                    }
                }
                catch (MyFlightbookValidationException ex)
                {
                    lblError.Text                   = ex.Message;
                    pnlError.Visible                = true;
                    pnlEndorsement.Visible          = false;
                    pnlExistingEndorsements.Visible = false;
                }
            }
            else
            {
                m_szTargetUser = (string)ViewState[keyTargetUser];
            }

            // need to reconstitute the form from the template every time to ensure postback works.
            if (!pnlError.Visible && pnlEndorsement.Visible)
            {
                mfbEditEndorsement1.EndorsementID = Convert.ToInt32(hdnLastTemplate.Value, CultureInfo.InvariantCulture);
            }

            mfbEndorsementList1.Instructor = Page.User.Identity.Name;
            mfbEndorsementList1.Student    = m_szTargetUser;
            mfbEndorsementList1.RefreshEndorsements();

            if (mfbMultiFileUpload.Visible)
            {
                mfbMultiFileUpload.ProcessUploadedImages();
                if (mfbIlNonOwnedEndorsementScans.Visible)
                {
                    mfbIlNonOwnedEndorsementScans.Refresh();
                }
            }
        }