public override void CreateLink(CreateLinkParams createParams) { DbCommonCommand command = m_createLinkCommand.Value; command["ID"].Value = createParams.Id; command["CODE"].Value = createParams.Code; command["LEFT_RELATION"].Value = (int)createParams.LeftRelation; command["RIGHT_RELATION"].Value = (int)createParams.RightRelation; command["ID_LEFT_OBJECT"].Value = createParams.LeftObject.Id; command["ID_RIGHT_OBJECT"].Value = createParams.RightObject.Id; command["LINK_TABLE_NAME"].Value = createParams.LinkTable; command["LEFT_ID_FIELD"].Value = createParams.LeftObjectIdField; command["RIGHT_ID_FIELD"].Value = createParams.RightObjectIdField; command.ExecuteNonQuery(SessionIdentifier.SHARED_SESSION); }
private void btnSave_Click(object sender, EventArgs e) { try { if (m_link == null) { CreateLinkParams createParams = new CreateLinkParams(); createParams.Code = txtLinkCode.Text.Trim(); createParams.LeftObject = viewLeftObject.GetFocusedRow() as DomainObjectConfig; createParams.RightObject = viewRightObject.GetFocusedRow() as DomainObjectConfig; createParams.LeftRelation = rgLeftRelation.SelectedIndex == 0 ? eRelation.One : eRelation.Many; createParams.RightRelation = rgRightRelation.SelectedIndex == 0 ? eRelation.One : eRelation.Many; createParams.LeftObjectIdField = txtLeftIdField.Text.Trim(); createParams.RightObjectIdField = txtRightIdField.Text.Trim(); createParams.LinkTable = txtLinkTableName.Text.Trim(); m_link = m_inquiry.CreateLink(createParams); } EditLinkParams editParams = new EditLinkParams(); editParams.IsLeftToRightActive = cbIsLeftToRight.Checked; editParams.IsRightToLeftActive = cbIsRightToLeft.Checked; editParams.LeftCollectionName = txtLeftCollectionName.Text.Trim(); editParams.RightCollectionName = txtRightCollectionName.Text.Trim(); editParams.LeftToRightDescription = txtLeftToRightDescription.Text.Trim(); editParams.RightToLeftDescription = txtRightToLeftDescription.Text.Trim(); m_inquiry.SaveLink(m_link, editParams); DialogResult = DialogResult.OK; } catch (Exception ex) { XtraMessageBox.Show(ex.Message); } }
internal DomainLinkConfig(CreateLinkParams createParams, EditLinkParams editParams = null) { Id = createParams.Id; Code = createParams.Code; LeftRelation = createParams.LeftRelation; RightRelation = createParams.RightRelation; LeftObject = createParams.LeftObject; RightObject = createParams.RightObject; LinkTable = createParams.LinkTable; LeftObjectIdField = createParams.LeftObjectIdField; RightObjectIdField = createParams.RightObjectIdField; if (editParams != null) Update(editParams); Key = new DomainLinkKey(this); }
public override void CreateLink(CreateLinkParams createParams) { throw new NotImplementedException(); }
public override List<DomainLinkConfig> LoadLink() { List<DomainLinkConfig> result = new List<DomainLinkConfig>(); DbCommonCommand command = m_loadLinkCommand.Value; using (IDbCommonDataReader reader = command.ExecuteReader(SessionIdentifier.SHARED_SESSION)) { while (reader.Read()) { CreateLinkParams createParams = new CreateLinkParams(); createParams.Id = reader.GetValue<long>(0); createParams.Code = reader.GetValue<String>(1); createParams.LeftRelation = (eRelation)reader.GetValue<Int32>(2); createParams.RightRelation = (eRelation)reader.GetValue<Int32>(3); string leftObjectCode = reader.GetValue<string>(4); createParams.LeftObject = m_objectConfig[leftObjectCode]; string rightObjectCode = reader.GetValue<string>(5); createParams.RightObject = m_objectConfig[rightObjectCode]; createParams.LinkTable = reader.GetValue<string>(6); createParams.LeftObjectIdField = reader.GetValue<string>(7); createParams.RightObjectIdField = reader.GetValue<string>(8); EditLinkParams editParams = new EditLinkParams(); editParams.IsLeftToRightActive = reader.GetValue<bool>(9); editParams.IsRightToLeftActive = reader.GetValue<bool>(10); editParams.LeftToRightDescription = reader.GetValue<string>(11); editParams.RightToLeftDescription = reader.GetValue<string>(12); editParams.LeftCollectionName = reader.GetValue<string>(13); editParams.RightCollectionName = reader.GetValue<string>(14); DomainLinkConfig loadLink = new DomainLinkConfig(createParams, editParams); result.Add(loadLink); } reader.Close(); } return result; }
public abstract void CreateLink(CreateLinkParams createParams);
bool IsLinkExist(CreateLinkParams createparams) { return false; //throw new NotImplementedException(); return ALinks.FirstOrDefault(l => l.Code == createparams.Code && ((l.LeftObject == createparams.LeftObject && l.RightObject == createparams.RightObject) || (l.LeftObject == createparams.RightObject && l.RightObject == createparams.LeftObject))) != null; }
public DomainLinkConfig CreateLink(CreateLinkParams createParams) { if (createParams == null) throw new ArgumentNullException("createParams"); if (String.IsNullOrEmpty(createParams.Code)) throw new ArgumentNullException("createParams.Code", Resources.EmptyLinkCode); if (!Utils.CheckEnglishString(createParams.Code)) { throw new ArgumentOutOfRangeException("createParams.Code", Resources.OnlyLatinString); } if (createParams.LeftObject == null) throw new ArgumentNullException("createParams.LeftObject", Resources.LeftObjectNotAssigned); if (createParams.RightObject == null) throw new ArgumentNullException("createParams.RightObject", Resources.RightObjectNotAssigned); if (createParams.LeftRelation == eRelation.One && createParams.RightRelation == eRelation.One) throw new NotSupportedException(); if (IsLinkExist(createParams)) throw new ArgumentException("link with this params already exists"); if (createParams.LeftRelation == eRelation.Many && createParams.RightRelation == eRelation.Many) { Connection.CreateLinkTable(createParams.LinkTable, createParams.LeftObjectIdField, createParams.RightObjectIdField); } else { if (createParams.LeftRelation == eRelation.One) { Connection.AddTableField(createParams.RightObject.TableName, createParams.LeftObjectIdField, typeof(long)); } else { Connection.AddTableField(createParams.LeftObject.TableName, createParams.RightObjectIdField, typeof(long)); } } long newId = Connection.NewSequence(); createParams.Id = newId; m_provider.CreateLink(createParams); DomainLinkConfig newLink = new DomainLinkConfig(createParams); ALinks.Add(newLink); if (CreateLinkCompleted != null) CreateLinkCompleted(this, new LinkConfigArgs(newLink)); IsModified = true; return newLink; }