Example #1
0
        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 btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (txtName.Text == "")
            {
                MessageBox.Show("نام");
                return;
            }
            if (lokFirstSideEntity.SelectedItem == null)
            {
                MessageBox.Show("موجودیت سمت اول انتخاب نشده است");
                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;
                    }
                }
            }

            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.ReportTitle = txtName.Text;
            if (lokFirstDataMenu.SelectedItem != null)
            {
                Message.FirstSideDataMenuID = (int)lokFirstDataMenu.SelectedValue;
            }
            Message.TableDrivedEntityID = (int)lokFirstSideEntity.SelectedValue;
            Message.NotJointEntities    = chkNotJoint.IsChecked == true;
            Message.ID = bizGraph.UpdateGraph(Message);
            MessageBox.Show("اطلاعات ثبت شد");
            if (Updated != null)
            {
                Updated(this, new MyProject_WPF.UpdatedEventArg()
                {
                    ID = Message.ID
                });
            }
        }