Esempio n. 1
0
        private void ButtonLoad_Click(object sender, RoutedEventArgs e)
        {
            try {
                CSelectUserWindow selectUserWindow = new CSelectUserWindow(SelectQuery("SELECT * FROM USER"));
                selectUserWindow.ShowDialog();
                if (selectUserWindow.Accept)
                {
                    if (_basketUserControls[1].PriorityDirection != null)
                    {
                        _basketUserControls[1].Clear();
                    }

                    _user                  = selectUserWindow.GetUser();
                    textBoxName.Text       = _user.ID + " " + _user.Name;
                    textBoxName.IsReadOnly = true;

                    DataTable dataTableDirection = SelectQuery($"SELECT DIRECTION_SELECTION.ID, DIRECTION_SELECTION.PRIORITY, DIRECTION.NAME, DIRECTION.CODE, " +
                                                               $"DIRECTION.ID AS DIRECTION_ID FROM DIRECTION_SELECTION, DIRECTION WHERE DIRECTION_SELECTION.ID_USER = { _user.ID} AND " +
                                                               $"DIRECTION.ID = DIRECTION_SELECTION.ID_DIRECTION");
                    DataTable dataTableProfile = SelectQuery($"SELECT PROFILE_SELECTION.ID, PROFILE_SELECTION.PRIORITY, PROFILE.NAME AS PROFILE_NAME, " +
                                                             $"FACULTY.NAME AS FACULTY_NAME, PROFILE.ID AS PROFILE_ID, DIRECTION_SELECTION.ID AS DIRECTION_SELECTION_ID  FROM DIRECTION_SELECTION, " +
                                                             $"PROFILE_SELECTION, PROFILE, FACULTY WHERE DIRECTION_SELECTION.ID_USER = { _user.ID} AND DIRECTION_SELECTION.ID = PROFILE_SELECTION.ID_SELECTION AND " +
                                                             $"PROFILE_SELECTION.ID_PROFILE = PROFILE.ID AND PROFILE.ID_FACULTY = FACULTY.ID");

                    int iCount = 0;
                    foreach (DataRow dataRow in dataTableDirection.Rows)
                    {
                        CDirection            direction            = new CDirection((string)dataRow[2], (string)dataRow[3]);
                        DataRow               row                  = dataTableProfile.Rows[iCount];
                        CProfile              profile              = new CProfile((string)row[2], (string)row[3], Convert.ToInt32(row[4]));
                        CDirectionWithProfile directionWithProfile = new CDirectionWithProfile(direction, profile, Convert.ToInt32(dataRow[4]));

                        while (iCount < dataTableProfile.Rows.Count - 1)
                        {
                            if (Convert.ToInt32(dataRow[0]) == Convert.ToInt32(dataTableProfile.Rows[iCount + 1].ItemArray[5]))
                            {
                                iCount++;
                                row     = dataTableProfile.Rows[iCount];
                                profile = new CProfile((string)row[2], (string)row[3], Convert.ToInt32(row[4]));
                                directionWithProfile.PriorityProfile.AddProfile(profile);
                            }
                            else
                            {
                                iCount++;
                                break;
                            }
                        }

                        _basketUserControls[1].Add(directionWithProfile, false);
                    }
                }
            } catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
Esempio n. 2
0
        public CDirectoryUserControl(CDirectionWithProfile directionWithProfile, int priority, EMove move, bool added)
        {
            InitializeComponent();

            Priority             = priority;
            DirectionWithProfile = directionWithProfile;
            textBoxName.Text     = DirectionWithProfile.Direction.Code + " «" + DirectionWithProfile.Direction.Name + "»";
            Added = added;
            Load(DirectionWithProfile.PriorityProfile, Added);
            Move = move;
        }
Esempio n. 3
0
        private void TransferDirectionWithProfile(CDirectionWithProfile directionWithProfile)
        {
            if (_basketUserControls[1].PriorityDirection != null)
            {
                for (int i = 0; i < _basketUserControls[1].PriorityDirection.GetCount(); i++)
                {
                    if (_basketUserControls[1].PriorityDirection.GetDirectionWithProfile(i + 1).ID == directionWithProfile.ID)
                    {
                        throw new Exception("Данное направление уже лежит в корзине!");
                    }
                }
            }

            _basketUserControls[1].Add(directionWithProfile, false);
        }
Esempio n. 4
0
        private void Load()
        {
            DataTable dataTableDirection = SelectQuery("SELECT DIRECTION.ID, DIRECTION.NAME, DIRECTION.CODE FROM DIRECTION");
            DataTable dataTableProfile   = SelectQuery("SELECT DIRECTION.ID, PROFILE.NAME, FACULTY.NAME, PROFILE.ID  FROM CATALOG " +
                                                       "JOIN DIRECTION ON CATALOG.ID_DIRECTION = DIRECTION.ID " +
                                                       "JOIN PROFILE ON CATALOG.ID_PROFILE = PROFILE.ID " +
                                                       "JOIN FACULTY ON PROFILE.ID_FACULTY = FACULTY.ID");

            CPriorityDirection priorityDirection;
            List <CDirection>  directions = new List <CDirection>();
            List <CProfile>    profiles   = new List <CProfile>();

            foreach (DataRow dataRowDirection in dataTableDirection.Rows)
            {
                directions.Add(new CDirection((string)dataRowDirection[1], (string)dataRowDirection[2]));
            }
            foreach (DataRow dataRowProfile in dataTableProfile.Rows)
            {
                profiles.Add(new CProfile((string)dataRowProfile[1], (string)dataRowProfile[2], Convert.ToInt32(dataRowProfile[3])));
            }

            List <CDirectionWithProfile> directionWithProfiles = new List <CDirectionWithProfile>();

            for (int i = 0; i < profiles.Count; i++)
            {
                if (directionWithProfiles.Count != 0)
                {
                    if (directionWithProfiles[directionWithProfiles.Count - 1].ID == Convert.ToInt32(dataTableProfile.Rows[i].ItemArray[0]))
                    {
                        directionWithProfiles[directionWithProfiles.Count - 1].PriorityProfile.AddProfile(profiles[i]);
                        continue;
                    }
                }
                CDirection            direction            = directions[Convert.ToInt32(dataTableProfile.Rows[i].ItemArray[0])];
                CProfile              profile              = profiles[i];
                int                   id                   = Convert.ToInt32(dataTableProfile.Rows[i].ItemArray[0]);
                CDirectionWithProfile directionWithProfile = new CDirectionWithProfile(direction, profile, id);
                directionWithProfiles.Add(directionWithProfile);
            }

            priorityDirection = new CPriorityDirection(directionWithProfiles[0]);
            for (int i = 1; i < directionWithProfiles.Count; i++)
            {
                priorityDirection.AddDirection(directionWithProfiles[i]);
            }

            СBasketUserControl basketUserControl = new СBasketUserControl(priorityDirection, true);

            basketUserControl.HorizontalAlignment = HorizontalAlignment.Left;
            basketUserControl.VerticalAlignment   = VerticalAlignment.Top;
            basketUserControl.Margin = new Thickness(0, 79, 0, 0);

            basketUserControl.SetSizeHorizontsly(390);
            basketUserControl.SetSizeVerticals(Height - 150);

            basketUserControl.ButtonAdd += TransferDirectionWithProfile;
            _basketUserControls.Add(basketUserControl);
            ((Grid)this.Content).Children.Add(basketUserControl);

            basketUserControl = new СBasketUserControl();
            basketUserControl.HorizontalAlignment = HorizontalAlignment.Left;
            basketUserControl.VerticalAlignment   = VerticalAlignment.Top;
            basketUserControl.Margin = new Thickness(390, 79, 0, 0);

            basketUserControl.SetSizeHorizontsly(390);
            basketUserControl.SetSizeVerticals(Height - 150);

            basketUserControl.ButtonAdd += TransferDirectionWithProfile;
            _basketUserControls.Add(basketUserControl);
            ((Grid)this.Content).Children.Add(basketUserControl);
        }
Esempio n. 5
0
        public void Add(CDirectionWithProfile directionWithProfile, bool notModify)
        {
            _heightDirectoryUserControls = 0;
            NotModify = notModify;

            if (PriorityDirection == null)
            {
                PriorityDirection = new CPriorityDirection(directionWithProfile);
            }
            else
            {
                PriorityDirection.AddDirection(directionWithProfile);

                foreach (CDirectoryUserControl directoryUserControl in _directoryUserControls)
                {
                    ((Grid)this.Content).Children.Remove(directoryUserControl);
                }
                _directoryUserControls.Clear();
            }

            double height = 0;

            for (int i = 0; i < PriorityDirection.GetCount(); i++)
            {
                CDirectionWithProfile localDirectionWithProfile = PriorityDirection.GetDirectionWithProfile(i + 1);
                CDirectoryUserControl directoryUserControl;
                if (NotModify)
                {
                    directoryUserControl = new CDirectoryUserControl(localDirectionWithProfile, -1, EMove.Null, NotModify);
                }
                else
                {
                    if (PriorityDirection.GetCount() == 1)
                    {
                        directoryUserControl = new CDirectoryUserControl(localDirectionWithProfile, i + 1, EMove.Null, NotModify);
                    }
                    else
                    {
                        if (i == 0)
                        {
                            directoryUserControl = new CDirectoryUserControl(localDirectionWithProfile, i + 1, EMove.Down, NotModify);
                        }
                        else if (i == PriorityDirection.GetCount() - 1)
                        {
                            directoryUserControl = new CDirectoryUserControl(localDirectionWithProfile, i + 1, EMove.Up, NotModify);
                        }
                        else
                        {
                            directoryUserControl = new CDirectoryUserControl(localDirectionWithProfile, i + 1, EMove.DownUp, NotModify);
                        }
                    }
                }

                directoryUserControl.HorizontalAlignment = HorizontalAlignment.Left;
                directoryUserControl.VerticalAlignment   = VerticalAlignment.Top;
                directoryUserControl.Margin = new Thickness(0, height, 0, 0);
                height = height + directoryUserControl.Height;
                directoryUserControl.ButtonMoveUp   += DirectoryUserControlMoveUp;
                directoryUserControl.ButtonMoveDown += DirectoryUserControlMoveDown;

                if (Width > 0)
                {
                    directoryUserControl.SetResizeWidth(Width - scrollBar.Width);;
                }
                _directoryUserControls.Add(directoryUserControl);
                _heightDirectoryUserControls    = _heightDirectoryUserControls + directoryUserControl.Height;
                directoryUserControl.ButtonAdd += AddIntoBasket;
                ((Grid)this.Content).Children.Add(directoryUserControl);
            }

            if (_heightDirectoryUserControls > Height)
            {
                scrollBar.Maximum = _heightDirectoryUserControls - Height;
            }
        }