private void SetVisibleParams(Y_NORM_NORMATIVE_CELL cellDataContext)
        {
            InitializeBtnTooltips(cellDataContext);

            btnParam.Content = cellDataContext.ID_PARAM != 0 ? cellDataContext.Y_NORM_PARAMETERS.DESC_RU : "...";

            InitializeParamValues(cellDataContext);
        }
        private void InitializeParamValues(Y_NORM_NORMATIVE_CELL cellDataContext)
        {
            _parameterValues = new ObservableCollection<Y_NORM_MANAGEMENT_GET_PARAMETER_VALUES_Result>();
            if (cellDataContext.ID_PARAM == 0) return;
            _parameterValues = GenericRepository.GetValues((Int32) cellDataContext.ID_PARAM, cellDataContext.PARAM_VALUE);

            lblParamValues.Content = string.Join(",", _parameterValues.Select(y => y.NAME));
            _ttValue.Content = string.Join(",", _parameterValues.Select(y => y.NAME));
        }
 public WindowEditParameters(Y_NORM_NORMATIVE_CELL currentCell)
 {
     InitializeComponent();
     Parameters = GenericRepository.GetAllList<Y_NORM_PARAMETERS>();
     foreach (Y_NORM_NORMATIVE_CELL cell in currentCell.Y_NORM_NORMATIVE_ROW.Y_NORM_NORMATIVE_CELL)
     {
         Parameters.Remove(cell.Y_NORM_PARAMETERS);
     }
     paramGridControl.ItemsSource = Parameters;
 }
        private void InitializeBtnTooltips(Y_NORM_NORMATIVE_CELL cellDataContext)
        {
            if (cellDataContext.ID_PARAM != 0)
                _ttParam = new ToolTip {Content = cellDataContext.Y_NORM_PARAMETERS.DESC_RU};

            _ttValue = new ToolTip();
            lblParamValues.ToolTip = _ttValue;

            btnParam.ToolTip = _ttParam;
        }
        private void SetCellController(Y_NORM_NORMATIVE_CELL cellDataContext)
        {
            if (cellDataContext.CONTROLLER == null)
            {
                cellDataContext.CONTROLLER = 0;
            }

            if (Controllers.CellControllers.ContainsKey(cellDataContext.CONTROLLER))
            {
                CellController = Controllers.CellControllers[cellDataContext.CONTROLLER];
            }
            else
            {
                int? newController = cellDataContext.CONTROLLER == 0 ? Controllers.NewKey() : cellDataContext.CONTROLLER;
                CellController = new GroupCellController();
                if (cellDataContext.CONTROLLER == 0) cellDataContext.CONTROLLER = newController;
                Controllers.CellControllers.Add(newController, CellController);
            }
            CellController.CellAdd(this);
        }
        private void BtnPlusPlusClick(object sender, RoutedEventArgs e)
        {
            try
            {
                if (rowPanel.Children[rowPanel.Children.Count - 2].GetType() == typeof (CellControl))
                {
                    var currentCellControl = (CellControl) rowPanel.Children[rowPanel.Children.Count - 2];
                    if (((Y_NORM_NORMATIVE_CELL) currentCellControl.DataContext).ID_PARAM == 0 ||
                        ((Y_NORM_NORMATIVE_CELL) currentCellControl.DataContext).PARAM_VALUE == null)
                    {
                        MessageBox.Show("Заполните предыдущую ячейку", "Ошибка", MessageBoxButton.OK,
                                        MessageBoxImage.Warning);
                        return;
                    }
                }
                var cell = new Y_NORM_NORMATIVE_CELL
                               {
                                   ID_COLUMN =
                                       IdGenerator.GetId(((Y_NORM_NORMATIVE_ROW) DataContext).Y_NORM_NORMATIVE_CELL)
                               };
                ((Y_NORM_NORMATIVE_ROW) DataContext).Y_NORM_NORMATIVE_CELL.Add(cell);
                ((Y_NORM_NORMATIVE_ROW) DataContext).MAX_COLUMN =
                    (short) ((Y_NORM_NORMATIVE_ROW) DataContext).Y_NORM_NORMATIVE_CELL.Count;
                var cellControl = new CellControl {DataContext = cell};
                if (rowPanel.Children[rowPanel.Children.Count - 2].GetType() == typeof (CellControl))
                {
                    ((CellControl) rowPanel.Children[rowPanel.Children.Count - 2]).CellController.IsUnLocked = false;
                }

                rowPanel.Children.Insert(rowPanel.Children.Count - 1, cellControl);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
 /// <summary>
 /// Устаревший метод для добавления новых объектов в набор EntitySet Y_NORM_NORMATIVE_CELL. Взамен можно использовать метод .Add связанного свойства ObjectSet&lt;T&gt;.
 /// </summary>
 public void AddToY_NORM_NORMATIVE_CELL(Y_NORM_NORMATIVE_CELL y_NORM_NORMATIVE_CELL)
 {
     base.AddObject("Y_NORM_NORMATIVE_CELL", y_NORM_NORMATIVE_CELL);
 }
 /// <summary>
 /// Создание нового объекта Y_NORM_NORMATIVE_CELL.
 /// </summary>
 /// <param name="id">Исходное значение свойства ID.</param>
 /// <param name="iD_ROW">Исходное значение свойства ID_ROW.</param>
 /// <param name="iD_COLUMN">Исходное значение свойства ID_COLUMN.</param>
 /// <param name="iD_PARAM">Исходное значение свойства ID_PARAM.</param>
 /// <param name="pARAM_VALUE">Исходное значение свойства PARAM_VALUE.</param>
 public static Y_NORM_NORMATIVE_CELL CreateY_NORM_NORMATIVE_CELL(global::System.Int64 id, global::System.Int64 iD_ROW, global::System.Int64 iD_COLUMN, global::System.Int64 iD_PARAM, global::System.String pARAM_VALUE)
 {
     Y_NORM_NORMATIVE_CELL y_NORM_NORMATIVE_CELL = new Y_NORM_NORMATIVE_CELL();
     y_NORM_NORMATIVE_CELL.ID = id;
     y_NORM_NORMATIVE_CELL.ID_ROW = iD_ROW;
     y_NORM_NORMATIVE_CELL.ID_COLUMN = iD_COLUMN;
     y_NORM_NORMATIVE_CELL.ID_PARAM = iD_PARAM;
     y_NORM_NORMATIVE_CELL.PARAM_VALUE = pARAM_VALUE;
     return y_NORM_NORMATIVE_CELL;
 }
 private string CreateClause(Y_NORM_NORMATIVE_CELL cellDataContext, Func<Y_NORM_NORMATIVE_CELL, bool> predicate)
 {
     string clause = "";
     foreach (
         Y_NORM_NORMATIVE_CELL cell in
             cellDataContext.Y_NORM_NORMATIVE_ROW.Y_NORM_NORMATIVE_CELL.Where(predicate))
     {
         if (cell == cellDataContext) continue;
         if (clause == "")
         {
             clause = cell.Y_NORM_PARAMETERS.DESCRIPTION + " in (" + cell.PARAM_VALUE + ")";
         }
         else
         {
             clause += " and " + cell.Y_NORM_PARAMETERS.DESCRIPTION + " in (" + cell.PARAM_VALUE + ")";
         }
     }
     return clause;
 }
 public object Clone(RowViewModel row)
 {
     var cellEntity = new Y_NORM_NORMATIVE_CELL
     {
         ID = _entity.ID,
         ID_ROW = _entity.ID_ROW,
         ID_COLUMN = _entity.ID_COLUMN,
         ID_PARAM = _entity.ID_PARAM,
         PARAM_VALUE = _entity.PARAM_VALUE,
         CONTROLLER = _entity.CONTROLLER,
         Y_NORM_NORMATIVE_CONTROLLER = _entity.Y_NORM_NORMATIVE_CONTROLLER,
         Y_NORM_NORMATIVE_ROW = row.Entity,
         Y_NORM_PARAMETERS = _entity.Y_NORM_PARAMETERS
     };
     row.Entity.Y_NORM_NORMATIVE_CELL.Add(cellEntity);
     var cell = new CellViewModel(cellEntity, row);
     return cell;
 }
        public CellViewModel(Y_NORM_NORMATIVE_CELL cell, RowViewModel rowViewModel)
        {
            _entity = cell;
            Row = rowViewModel;

            Messenger.Default.Register<GenericMessage<MessageArgsParameterCallback>>(this, MessageEditParameterCallbackHandler);
            Messenger.Default.Register<GenericMessage<MessageArgsParameterValuesCallback>>(this, MessageEditParameterValuesCallbackHandler);
            CommandEditParameter = new RelayCommand(CommandEditParameterRelease);
            CommandEditParameterValues = new RelayCommand(CommandEditParameterValuesRelease);
            CommandRemoveController = new RelayCommand(CommandRemoveControllerRelease);

            if (Controller == null)
            {
                if (_entity.CONTROLLER == null)
                {
                    _entity.CONTROLLER = HeadViewModel.Controllers.NewKey();
                    _entity.Y_NORM_NORMATIVE_CONTROLLER = new Y_NORM_NORMATIVE_CONTROLLER { CONTROLLER = (int)_entity.CONTROLLER };
                }
                _entity.CONTROLLER = _entity.CONTROLLER ?? HeadViewModel.Controllers.NewKey();
                if (!HeadViewModel.Controllers.ContainsKey(_entity.CONTROLLER))
                {
                    Controller = new Controller();
                    HeadViewModel.Controllers.Add(_entity.CONTROLLER, Controller);
                }
                else
                {
                    Controller = HeadViewModel.Controllers[_entity.CONTROLLER];
                }
            }
            Controller.Add(this);
        }