예제 #1
0
        public PersonalInformation(User pUser, CARSPage page)
        {
            mUser = currentUser = pUser;

            InitializeComponent();

            ClientInstance.Get().UpdateEmployeeCompleted            += new EventHandler <UpdateEmployeeCompletedEventArgs>(client_UpdateEmployeeCompleted);
            ClientInstance.Get().CheckSupervisorValidationCompleted += new EventHandler <CheckSupervisorValidationCompletedEventArgs>(PersonalInformation_CheckSupervisorValidationCompleted);

            baseInfoControl = new BaseInfo(pUser, page);
            baseInfoControl.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
            baseInfoControl.VerticalAlignment   = System.Windows.VerticalAlignment.Top;
            sPanel.Children.Add(baseInfoControl);

            // not for now
            //MultipleSelection ms = new MultipleSelection();
            //ms.Width = 400;
            //ms.MaxHeight = 100;
            //ms.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
            //ms.VerticalAlignment = System.Windows.VerticalAlignment.Top;
            //sPanel.Children.Add(ms);
            updateButton         = new Button();
            updateButton.Height  = 23;
            updateButton.Width   = 80;
            updateButton.Content = "Update";
            updateButton.Margin  = new Thickness(0, 10, 0, 10);
            updateButton.Click  += new RoutedEventHandler(update_Click);
            sPanel.Children.Add(updateButton);
        }
예제 #2
0
 public void RefreshData(User user, CARSPage page)
 {
     mUser       = user;
     currentPage = page;
     ClientInstance.ShowSpinner("Get Managers");
     ClientInstance.Get().GetManagersAsync();
 }
예제 #3
0
        private void DoubleAnimation_Completed(object sender, EventArgs e)
        {
            leftArea.Background = CreateBackColor(nextPage);
            currentPage         = nextPage;

            // Do page content updating
            UpdatePageContent(nextPage);

            showNewPage.Begin();
        }
예제 #4
0
        public BaseInfo(User pUser, CARSPage page)
        {
            mUser       = pUser;
            currentPage = page;
            InitializeComponent();

            SetPage();

            ClientInstance.Get().GetManagersCompleted += new EventHandler <GetManagersCompletedEventArgs>(client_GetManagersCompleted);
            ClientInstance.Get().GetManagersAsync();
        }
예제 #5
0
        public SearchControl(CARSPage page, User rootManager)
        {
            InitializeComponent();

            SetPageAndUser(page, rootManager);

            chkShowAll.IsChecked = CarsConfig.Instance().ShowAllRecords;

            CARSServiceClient client = CARSServiceClientFactory.CreateCARSServiceClient();// leave this line, we cannot use a public static object here. Because it may already has handler of GetLeaveTypesCompleted

            client.GetLeaveTypesCompleted += new EventHandler <GetLeaveTypesCompletedEventArgs>(client_GetLeaveTypesCompleted);
            client.GetLeaveTypesAsync();
        }
예제 #6
0
        private LinearGradientBrush CreateBackColor(CARSPage page)
        {
            GradientStopCollection gsc    = new GradientStopCollection();
            GradientStop           color1 = new GradientStop();
            GradientStop           color2 = new GradientStop();

            color1.Color  = ColorUtil.WhiteSmoke;
            color2.Color  = PageToColor(page);
            color2.Offset = 1;
            gsc.Add(color1);
            gsc.Add(color2);
            return(new LinearGradientBrush(gsc, 45));
        }
예제 #7
0
        public LeaveRecords(CARSPage page, User pUser)
        {
            InitializeComponent();

            ClientInstance.Get().FindLeavesCompleted      += new EventHandler <FindLeavesCompletedEventArgs>(client_FindLeavesCompleted);
            ClientInstance.Get().GetMyLeavesCompleted     += new EventHandler <GetMyLeavesCompletedEventArgs>(client_GetMyLeavesCompleted);
            ClientInstance.Get().GetMyTeamLeavesCompleted += new EventHandler <GetMyTeamLeavesCompletedEventArgs>(client_GetMyTeamLeavesCompleted);

            mPage = page;

            if (pUser != null)
            {
                mUser = mUserRunAs = pUser;
                RefreshData(); // no change, current user, by default
            }

            RefreshUI();

            records.SelectionChanged += new SelectionChangedEventHandler(records_SelectionChanged);
        }
예제 #8
0
        internal void SetPageAndUser(CARSPage page, User rootManager)
        {
            mUser = rootManager;
            if (page == CARSPage.ApproveLeave)
            {
                applyGrid.Visibility    = System.Windows.Visibility.Collapsed;
                approvalGrid.Visibility = System.Windows.Visibility.Visible;
                historyGrid.Visibility  = System.Windows.Visibility.Collapsed;
            }

            if (page == CARSPage.LeaveHistory)
            {
                UpdateDropDownList();

                approvalGrid.Visibility = System.Windows.Visibility.Collapsed;
                historyGrid.Visibility  = System.Windows.Visibility.Visible;
                applyGrid.Visibility    = System.Windows.Visibility.Collapsed;
            }

            if (page == CARSPage.ApplyLeave || page == CARSPage.PersonalInfo)
            {
                approvalGrid.Visibility = System.Windows.Visibility.Collapsed;
                historyGrid.Visibility  = System.Windows.Visibility.Collapsed;
                applyGrid.Visibility    = System.Windows.Visibility.Visible;
            }

            if (rac == null)
            {
                rac = new RunAsControl(mUser);
                rac.SelectRunAsEvent += new EventHandler(rac_SelectRunAsEvent);
            }
            else
            {
                rac.SetRootManager(mUser);
            }

            leaveType.SelectedIndex = leaveStatus.SelectedIndex = 0;
            start.SelectedDate      = DateTime.Now.AddDays(-DateTime.Now.Day + 1); // first day of current month
            end.SelectedDate        = DateTime.Now;
        }
예제 #9
0
        private Color PageToColor(CARSPage page)
        {
            Color color = ColorUtil.WhiteSmoke;

            switch (page)
            {
            case CARSPage.ApplyLeave:
                color = ColorUtil.LightBrightBlue;                         //(use blue now)
                break;

            case CARSPage.PersonalInfo:
                //color = ColorUtil.LightBrightBlue; //(use blue now)
                color = ColorUtil.LightBrightGreen;     // use green
                break;

            case CARSPage.ApproveLeave:
                //color = ColorUtil.LightBrightBlue; //(use blue now)
                color = ColorUtil.LightBrightRed;     // use red
                break;

            case CARSPage.EmployeeInfo:
                //color = ColorUtil.LightBrightBlue; //(use blue now)
                color = ColorUtil.LightBrightGreen;     // use green
                break;

            case CARSPage.VacationRules:
                //color = ColorUtil.LightBrightBlue; //(use blue now)
                // TODO
                break;

            case CARSPage.LeaveHistory:
                //color = ColorUtil.LightBrightBlue; //(use blue now)
                color = ColorUtil.LightBrightYellow;     // use yellow
                break;

            default:
                break;
            }
            return(color);
        }
예제 #10
0
        public ApplyControl(CARSPage page, User pUser)
        {
            InitializeComponent();

            if (pUser != null)
            {
                mUser = mUserRunAs = pUser;
            }

            mPage = page;
            this.recallButton.Visibility = System.Windows.Visibility.Collapsed;             // by default, hide this button

            ClientInstance.Get().GetAnnualLeaveEarnedHoursCompleted += new EventHandler <GetAnnualLeaveEarnedHoursCompletedEventArgs>(client_GetAnnualLeaveEarnedHoursCompleted);
            ClientInstance.Get().GetAnnualLeaveUsedHoursCompleted   += new EventHandler <GetAnnualLeaveUsedHoursCompletedEventArgs>(client_GetAnnualLeaveUsedHoursCompleted);
            ClientInstance.Get().GetSickLeaveUsedHoursCompleted     += new EventHandler <GetSickLeaveUsedHoursCompletedEventArgs>(client_GetSickLeaveUsedHoursCompleted);
            ClientInstance.Get().ApproveLeaveCompleted  += new EventHandler <ApproveLeaveCompletedEventArgs>(client_ApproveLeaveCompleted);
            ClientInstance.Get().GetLeaveTypesCompleted += new EventHandler <GetLeaveTypesCompletedEventArgs>(client_GetLeaveTypesCompleted);
            ClientInstance.Get().GetFrozenDateCompleted += new EventHandler <GetFrozenDateCompletedEventArgs>(ApplyControl_GetFrozenDateCompleted);
            ClientInstance.Get().RecallLeaveCompleted   += ApplyControl_RecallLeaveCompleted;

            ClientInstance.Get().GetLeaveTypesAsync();
            ClientInstance.Get().GetFrozenDateAsync();
        }
예제 #11
0
        private void ChangePageTo(CARSPage page)
        {
            if (currentPage == page)
            {
                return;
            }
            else
            {
                nextPage = page;
            }

            // following four lines are used to remove whole page vertical scrollbar on Approve leave page.
            if (nextPage == CARSPage.ApproveLeave)
            {
                this.Height = this.ActualHeight - 2d;
            }
            else if (currentPage == CARSPage.ApproveLeave)
            {
                this.Height = this.ActualHeight + 2d;
            }

            leftArea.Background = CreateBackColor(currentPage);
            hideOldPage.Begin();
        }
예제 #12
0
 public BaseInfo(CARSPage page) : this(null, page)
 {
 }
예제 #13
0
 public LeaveRecords(CARSPage page) : this(page, null)
 {
 }
예제 #14
0
 public void RefreshData(User user, CARSPage page)
 {
     currentUser            = user;
     updateButton.IsEnabled = (user != null);
     baseInfoControl.RefreshData(user, page);
 }
예제 #15
0
        private void UpdatePageContent(CARSPage page)
        {
            leftArea.Children.Clear();

            switch (page)
            {
            case CARSPage.ApplyLeave:
                rightArea.Children.Clear();
                applyControl.IsViewMode  = false;                        // update data
                applyControl.CurrentPage = CARSPage.ApplyLeave;
                leaveRecords.CurrentPage = CARSPage.ApplyLeave;
                leaveRecords.RefreshData();                         // update data, current user's
                leftArea.Children.Add(applyControl);
                rightArea.Children.Add(leaveRecords);
                break;

            case CARSPage.PersonalInfo:
                rightArea.Children.Clear();
                if (personnalInfomation == null)
                {
                    personnalInfomation = new PersonalInformation(user, CARSPage.PersonalInfo);
                    personnalInfomation.UpdateListEvent += new PersonalInformation.UpdateListEventHandler(personnalInfomation_UpdateListEvent);
                }
                personnalInfomation.RefreshData(user, CARSPage.PersonalInfo); // update data
                leaveRecords.CurrentPage = CARSPage.PersonalInfo;
                leaveRecords.RefreshData();                                   // update data, current user's
                leftArea.Children.Add(personnalInfomation);
                rightArea.Children.Add(leaveRecords);
                break;

            case CARSPage.ApproveLeave:
                rightArea.Children.Clear();
                applyControl.CurrentPage = CARSPage.ApproveLeave;
                if (leaveRecords.CurrentFrozenDate == DateTime.MinValue)
                {
                    leaveRecords.CurrentFrozenDate = applyControl.CurrentFrozenDate;
                }
                leaveRecords.CurrentPage = CARSPage.ApproveLeave;
                leaveRecords.RefreshData(CarsConfig.Instance().ShowAllRecords);                         // update data, by default, don't show other leaves, only applying leaves.
                leftArea.Children.Add(applyControl);
                rightArea.Children.Add(leaveRecords);
                break;

            case CARSPage.EmployeeInfo:
                rightArea.Children.Clear();
                if (personnalInfomation == null)
                {
                    personnalInfomation = new PersonalInformation(user, CARSPage.PersonalInfo);
                    personnalInfomation.UpdateListEvent += new PersonalInformation.UpdateListEventHandler(personnalInfomation_UpdateListEvent);
                }
                personnalInfomation.RefreshData(null, CARSPage.EmployeeInfo);                         // update data
                if (employeeRecords == null)
                {
                    employeeRecords = new EmployeeRecords();
                    employeeRecords.SelectionChanged += new SelectionChangedEventHandler(employeeRecords_EmployeeSelectionChanged);
                }
                leftArea.Children.Add(personnalInfomation);
                rightArea.Children.Add(employeeRecords);
                break;

            case CARSPage.VacationRules:
                //TODO Don't need for now.
                //StackPanel sp = new StackPanel();
                //sp.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
                //sp.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
                //sp.Width = double.NaN;
                //sp.Height = double.NaN;
                //TextBox tb = new TextBox();
                //tb.Width = 450;
                //tb.Height = 480;
                //tb.Margin = new Thickness(20, 20, 20, 20);
                //tb.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
                //tb.VerticalAlignment = System.Windows.VerticalAlignment.Top;
                //tb.Text = "Here is vacation rules";
                //sp.Children.Add(tb);
                //if (user.Type == UserType.Employee || user.Type == UserType.Manager)
                //{
                //    tb.IsReadOnly = true;
                //    tb.Background = new SolidColorBrush(Colors.Transparent);
                //}
                //else
                //{
                //    Button ub = new Button();
                //    ub.Content = "Update";
                //    ub.Width = 80;
                //    ub.Height = 30;
                //    ub.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
                //    ub.Click += new RoutedEventHandler(ub_Click);
                //    sp.Children.Add(ub);
                //}
                //leftArea.Children.Add(sp);
                //rightArea.Children.Clear();
                //rightArea.Children.Add(new HolidayConfigControl(user));
                break;

            case CARSPage.LeaveHistory:
                rightArea.Children.Clear();
                applyControl.CurrentPage = CARSPage.LeaveHistory;
                leaveRecords.CurrentPage = CARSPage.LeaveHistory;
                leaveRecords.RefreshData(CarsConfig.Instance().ShowAllRecords);                         // update data, show all
                leftArea.Children.Add(applyControl);
                rightArea.Children.Add(leaveRecords);
                break;

            default:
                break;
            }
        }