private void btnSave_Click(object sender, RoutedEventArgs e) { if (txtName.Text == "") { MessageBox.Show("نام"); return; } if (lokFirstSideEntity.SelectedItem == null) { MessageBox.Show("موجودیت سمت اول انتخاب نشده است"); return; } if (lokSecondSideEntity.SelectedItem == null) { MessageBox.Show("موجودیت سمت دوم انتخاب نشده است"); return; } if (lokFirstDataMenu.SelectedItem != null) { Message.FirstSideDataMenuID = (int)lokFirstDataMenu.SelectedValue; } if (lokSecondDataMenu.SelectedItem != null) { Message.SecondSideDataMenuID = (int)lokSecondDataMenu.SelectedValue; } foreach (var item in Message.RelationshipsTails) { if (colRelationshipTail.ItemsSource != null && colRelationshipTail.ItemsSource is List <EntityRelationshipTailDTO> ) { var tail = (colRelationshipTail.ItemsSource as List <EntityRelationshipTailDTO>).FirstOrDefault(x => x.ID == item.RelationshipTailID); if (tail != null) { TableDrivedEntityDTO sEntity = lokSecondSideEntity.SelectedItem as TableDrivedEntityDTO; if (tail.TargetEntityID != sEntity.ID) { MessageBox.Show("رشته رابطه" + " " + tail.EntityPath + " " + "با موجودیت" + " " + sEntity.Alias + " " + "در ارتباط نمی باشد"); return; } } } } foreach (var item in Message.RelationshipsTails) { if (item.RelationshipTailID != 0) { var relationshipTail = bizEntityRelationshipTail.GetEntityRelationshipTail(MyProjectManager.GetMyProjectManager.GetRequester(), item.RelationshipTailID); BizTableDrivedEntity bizTableDrivedEntity = new MyModelManager.BizTableDrivedEntity(); var entity = bizTableDrivedEntity.GetSimpleEntity(MyProjectManager.GetMyProjectManager.GetRequester(), relationshipTail.TargetEntityID); var viewMessage = bizEntityRelationshipTail.CheckTailHasRelationshipWithView(relationshipTail); if (viewMessage != "") { var message = "اشکال در تعریف لینک داده با موجودیت" + " " + string.IsNullOrEmpty(relationshipTail.TargetEntityAlias); message += Environment.NewLine + "در رشته رابطه ارتباط با نمای" + " " + viewMessage + " " + "امکان پذیر نمی باشد"; MessageBox.Show(message); return; } } } var firstEntity = lokFirstSideEntity.SelectedItem as TableDrivedEntityDTO; var secondEntity = lokSecondSideEntity.SelectedItem as TableDrivedEntityDTO; if (firstEntity.ServerID != secondEntity.ServerID) { BizDatabase bizDatabase = new BizDatabase(); if (!bizDatabase.LinkedServerExists(firstEntity.ServerID, secondEntity.ServerID)) { MessageBox.Show("ارتباط لینک سرور بین موجودیت طرف اول و دوم وجود ندارد"); return; } } foreach (var item in Message.RelationshipsTails) { if (item.RelationshipTailID != 0) { var relationshipTail = bizEntityRelationshipTail.GetEntityRelationshipTail(MyProjectManager.GetMyProjectManager.GetRequester(), item.RelationshipTailID); var linkedServerMessage = bizEntityRelationshipTail.CheckRelationshipsLinkedServers(relationshipTail); if (linkedServerMessage != "") { var message = "اشکال در رشته رابطه" + " " + string.IsNullOrEmpty(relationshipTail.EntityPath); message += Environment.NewLine + linkedServerMessage; MessageBox.Show(message); return; } } } Message.NotJointEntities = chkNotJoint.IsChecked == true; Message.ReportTitle = txtName.Text; if (Message.ID == 0) { Message.TableDrivedEntityID = (int)lokFirstSideEntity.SelectedValue; Message.SecondSideEntityID = (int)lokSecondSideEntity.SelectedValue; } Message.ID = bizDataLink.UpdateDataLink(Message); MessageBox.Show("اطلاعات ثبت شد"); if (Updated != null) { Updated(this, new MyProject_WPF.UpdatedEventArg() { ID = Message.ID }); } }
//private void GetRelationship(int ID) //{ //} private void btnSaveAndSelect_Click(object sender, RoutedEventArgs e) { //در صورت ایجاد اولیه باید چک شود که طرف اول پرایمری کی باشد if (txtName.Text == "") { MessageBox.Show("نام رابطه"); return; } if (cmbFirstEntity.SelectedItem == null) { MessageBox.Show("موجودیت سمت اول"); return; } if (cmbSecondEntity.SelectedItem == null) { MessageBox.Show("موجودیت سمت دوم"); return; } if (Message.RelationshipColumns.Count == 0) { MessageBox.Show("ستونها"); return; } string linkedServerMessage = ""; BizDatabase bizDatabase = new BizDatabase(); var firstEntity = bizTableDrivedEntity.GetTableDrivedEntity(MyProjectManager.GetMyProjectManager.GetRequester(), (int)cmbFirstEntity.SelectedValue, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithoutRelationships); var secondEntity = bizTableDrivedEntity.GetTableDrivedEntity(MyProjectManager.GetMyProjectManager.GetRequester(), (int)cmbSecondEntity.SelectedValue, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithoutRelationships); if (firstEntity.ServerID != secondEntity.ServerID) { if (!bizDatabase.LinkedServerExists(firstEntity.ServerID, secondEntity.ServerID)) { linkedServerMessage += (linkedServerMessage == "" ? "" : Environment.NewLine) + "لینک سرور از طرف موجودیت" + " '" + firstEntity.Alias + "' " + "به موجودیت" + " '" + secondEntity.Alias + "' " + "تعریف نشده است"; } if (!bizDatabase.LinkedServerExists(secondEntity.ServerID, firstEntity.ServerID)) { linkedServerMessage += (linkedServerMessage == "" ? "" : Environment.NewLine) + "لینک سرور از طرف موجودیت" + " '" + secondEntity.Alias + "' " + "به موجودیت" + " '" + firstEntity.Alias + "' " + "تعریف نشده است"; } } if (!string.IsNullOrEmpty(linkedServerMessage)) { var message = linkedServerMessage; message += Environment.NewLine + "به منظور استفاده از این رابطه در نمایش و جستجوی داده ها و عدم بروز خطا لینک سرورها تعریف شوند"; MessageBox.Show(message); // return; } if (!firstEntity.IsView && !secondEntity.IsView) { foreach (var relCol in Message.RelationshipColumns) { var firstSideColumn = firstEntity.Columns.First(x => x.ID == relCol.FirstSideColumnID); if (!firstSideColumn.PrimaryKey) { MessageBox.Show("ستون" + " " + firstSideColumn.Name + " " + "کلید اصلی نمی باشد"); return; } } } Message.Name = txtName.Text; Message.EntityID1 = (int)cmbFirstEntity.SelectedValue; Message.EntityID2 = (int)cmbSecondEntity.SelectedValue; Message.CreateType = (CreateRelationshipType)cmbRelationshipType.SelectedItem; var id = bizRelationship.CreateUpdateRelationship(MyProjectManager.GetMyProjectManager.GetRequester(), Message, chkSecondSideDataEntry.IsChecked == true); MessageBox.Show("اطلاعات ثبت شد"); GetRelationship(id); }