示例#1
0
 /// <summary>
 /// The open pdp.
 /// </summary>
 /// <param name="row">
 /// The row.
 /// </param>
 public void OpenPdp(PdpGridRow row)
 {
     if (EnabledPdpGrid != null)
     {
         EnabledPdpGrid(false);
     }
     SetPdpDetailCaption("Редактирование пункта выдачи");
     SetPdpViewStateValues(row.Id, row.IsNew);
     AssignControlValuesFromPdp(row);
     SetEnableControls(true);
     tbShortName.Focus();
 }
示例#2
0
 /// <summary>
 /// Смена выбранного пдп в гриде
 /// </summary>
 /// <param name="row">
 /// The row.
 /// </param>
 /// <param name="gridView">
 /// </param>
 public void ChangePdp(PdpGridRow row, GridView gridView)
 {
     SetPdpViewStateValues(row.Id, null);
     SetEnableControls(false);
     if (gridView.SelectedIndex < 0)
     {
         ClearControlValues();
     }
     else
     {
         var list = (IList <PdpGridRow>)Session[SessionConsts.CPdpList];
         workstationDetailControl.ClearControlValues();
         AssignControlValuesFromPdp(list.Where(r => r.Id == (Guid)gridView.SelectedDataKey.Value).First());
     }
 }
示例#3
0
        /// <summary>
        /// The delete pdp.
        /// </summary>
        /// <param name="row">
        /// The row.
        /// </param>
        /// <param name="gridView">
        /// The grid view.
        /// </param>
        public void DeletePdp(PdpGridRow row, GridView gridView)
        {
            var list = (IList <PdpGridRow>)Session[SessionConsts.CPdpList];

            list.Remove(row);
            Session[SessionConsts.CPdpList] = list;
            var dict = (Dictionary <Guid, IList <WorkstationGridRow> >)Session[SessionConsts.CWorkstationDict];

            if (dict.ContainsKey(row.Id))
            {
                dict.Remove(row.Id);
            }

            Session[SessionConsts.CWorkstationDict] = dict;
            gridView.SelectedIndex = -1;
            gridView.DataSource    = list;
            gridView.DataBind();
            ClearControlValues();
        }
示例#4
0
        /// <summary>
        /// The assign control values from pdp.
        /// </summary>
        /// <param name="row">
        /// The row.
        /// </param>
        public void AssignControlValuesFromPdp(PdpGridRow row)
        {
            // заполняем данные пункта выдачи
            tbFullName.Text   = row.FullName;
            tbShortName.Text  = row.ShortName;
            tbCode.Text       = row.Code;
            tbFirstName.Text  = row.FirstName;
            tbLastName.Text   = row.LastName;
            tbMiddleName.Text = row.MiddleName;
            tbPhone.Text      = row.Phone;
            tbFax.Text        = row.Fax;
            tbEmail.Text      = row.EMail;

            // заполняем рабочие станции, соответствующие пункту выдачи
            var workstations = (Dictionary <Guid, IList <WorkstationGridRow> >)Session[SessionConsts.CWorkstationDict];

            if (workstations.ContainsKey(row.Id))
            {
                gridView.DataSource = workstations[row.Id];
                gridView.DataBind();
            }
            else if (!row.IsNew)
            {
                var list = regulatoryService.GetWorkstationsByPvp(row.Id);
                IList <WorkstationGridRow> rows;
                if (list != null)
                {
                    rows = list.Select(p => new WorkstationGridRow(p)).ToList();
                }
                else
                {
                    rows = new List <WorkstationGridRow>();
                }

                workstations.Add(row.Id, rows);
                Session[SessionConsts.CWorkstationDict] = workstations;
                gridView.DataSource = rows;
                gridView.DataBind();
            }
        }
示例#5
0
        // сохранение пдп
        /// <summary>
        /// The btn save_ click.
        /// </summary>
        /// <param name="sender">
        /// The sender.
        /// </param>
        /// <param name="e">
        /// The e.
        /// </param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (CurrentPdpId == null)
            {
                return;
            }

            if (!ValidatePdp())
            {
                return;
            }

            var addNew = (bool)ViewState["pdpIsNew"];
            var pdp    = new Organisation();

            if (!addNew)
            {
                // нам нужен объект который не будет привязан к сессии, так как при endrequest session.Flush() в Global.asax изменения попадают в базу
                // все остальные поля присвоятся в AssignWorkstationValuesFromControls
                pdp.Id = (Guid)CurrentPdpId;
            }

            AssignPdpValuesFromControls(pdp, addNew);

            // для всех рабочих станций пдп проставляем новый pdp_id(существующий или сгенерированный в зависимости от операции)
            // и сохраняем в сессию
            workstationDetailControl.SetPdpIdForWorkstations((Guid)CurrentPdpId, pdp.Id);

            var list = (IList <PdpGridRow>)Session[SessionConsts.CPdpList];

            // добавляем новый элемент
            if (addNew && (Guid)CurrentPdpId == Guid.Empty)
            {
                var addedRow = new PdpGridRow(pdp);
                addedRow.IsNew = true;
                list.Add(addedRow);
            }
            else
            {
                var editedRow = list.Where(r => r.Id == (Guid)CurrentPdpId).FirstOrDefault();
                editedRow.AssignFrom(pdp);
            }

            Session[SessionConsts.CPdpList] = list;

            if (BindParentList != null)
            {
                BindParentList(list);
            }

            // если было добавление то очищаем контролы
            if (addNew)
            {
                ClearControlValues();
            }

            SetEnableControls(false);
            SetPdpViewStateValues(null, null);

            if (EnabledPdpGrid != null)
            {
                EnabledPdpGrid(true);
            }
        }