/// <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(); }
/// <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()); } }
/// <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(); }
/// <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(); } }
// сохранение пдп /// <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); } }