public СBasketUserControl(CPriorityDirection priorityDirection, bool notModify) { InitializeComponent(); for (int i = 0; i < priorityDirection.GetCount(); i++) { Add(priorityDirection.GetDirectionWithProfile(i + 1), notModify); } }
public void Clear() { if (_directoryUserControls.Count == 0) { throw new Exception("Корзина уже пуста!"); } foreach (CDirectoryUserControl directoryUserControl in _directoryUserControls) { ((Grid)this.Content).Children.Remove(directoryUserControl); } _directoryUserControls.Clear(); PriorityDirection = null; }
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); }
/// <summary> /// Конструктор класса при создании и загрузки в БД /// </summary> /// <param name="name">Именование пользователя</param> /// <param name="priorityDirection">Список направлений с приоритетами</param> public CUser(string name, CPriorityDirection priorityDirection) { Name = name; PriorityDirection = priorityDirection; }
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; } }