//public List<ActionDTO> GetActions(DatabaseObjectCategory objectCategory, string objectIdentity, RoleOrRoleGroupDTO roleOrRoleGroup)
        //{
        //    List<ActionDTO> result = new List<ActionDTO>();
        //    var actions = SecurityHelper.GetActionsByCategory(objectCategory);
        //    using (var context = new MyProjectEntities())
        //    {
        //        foreach (var action in actions)
        //        {
        //            ActionDTO item = new ActionDTO();
        //            if (roleOrRoleGroup.Type == RoleOrRoleGroupType.Role)
        //                item.Selected = context.Role_Action_Object.Any(x => x.Action == action.ToString() && x.GeneralObjectIdentity == objectIdentity && x.ObjectCategory == objectCategory.ToString() && x.RoleID == roleOrRoleGroup.ID);
        //            else
        //                item.Selected = context.Role_Action_Object.Any(x => x.Action == action.ToString() && x.GeneralObjectIdentity == objectIdentity && x.ObjectCategory == objectCategory.ToString() && x.SecurityRoleGroupID == roleOrRoleGroup.ID);
        //            item.Action = action;
        //            //item.ID = dbItem.ID;
        //            result.Add(item);
        //        }
        //    }
        //    return result;
        //}

        public BaseResult SavePermission(DR_Requester requester, PermissionDTO permission)
        {
            BaseResult result = new BaseResult();

            try
            {
                using (var context = new MyProjectEntities())
                {
                    if (permission.SecurityObjectCategory == DatabaseObjectCategory.Relationship)
                    {
                        BizTableDrivedEntity bizTableDrivedEntity = new MyModelManager.BizTableDrivedEntity();
                        var relationship = bizRelationship.GetRelationship(permission.SecurityObjectID);
                        //TableDrivedEntityDTO fkEntity = null;
                        List <ColumnDTO> listFKColumns = null;
                        if (relationship.MastertTypeEnum == Enum_MasterRelationshipType.FromForeignToPrimary)
                        {
                            //fkEntity = bizTableDrivedEntity.GetTableDrivedEntity(requester, relationship.EntityID1, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithoutRelationships);
                            listFKColumns = relationship.RelationshipColumns.Select(x => x.FirstSideColumn).ToList();
                        }
                        else
                        {
                            //fkEntity = bizTableDrivedEntity.GetTableDrivedEntity(requester, relationship.EntityID2, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithoutRelationships);
                            listFKColumns = relationship.RelationshipColumns.Select(x => x.SecondSideColumn).ToList();
                        }
                        foreach (var fkColumn in listFKColumns)
                        {
                            PermissionDTO colPermission = new PermissionDTO();
                            colPermission.SecurityObjectCategory = DatabaseObjectCategory.Column;
                            colPermission.Actions = permission.Actions;
                            var currentPermission = context.Permission.FirstOrDefault(x => x.SecurityObjectID == fkColumn.ID && x.SecuritySubjectID == permission.SecuritySubjectID);
                            if (currentPermission != null)
                            {
                                colPermission.ID = currentPermission.ID;
                            }
                            colPermission.SecurityObjectID  = fkColumn.ID;
                            colPermission.SecuritySubjectID = permission.SecuritySubjectID;
                            SavePermission(context, colPermission);
                        }
                    }
                    else
                    {
                        SavePermission(context, permission);
                    }
                    context.SaveChanges();
                    result.Result = Enum_DR_ResultType.SeccessfullyDone;
                }
            }
            catch (Exception ex)
            {
                result.Result  = Enum_DR_ResultType.ExceptionThrown;
                result.Message = "خطا در ثبت" + Environment.NewLine + ex.Message;
            }
            return(result);
        }
 private void btnSave_Click(object sender, RoutedEventArgs e)
 {
     if (txtViewName.Text == "")
     {
         MessageBox.Show("عنوان مناسب تعریف نشده است");
         return;
     }
     foreach (var item in Message.EntitySearchAllColumns)
     {
         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(), EntityID);;
             var linkedServerMessage = bizEntityRelationshipTail.CheckLinkedServers(entity, relationshipTail);
             if (linkedServerMessage != "")
             {
                 var message = "اشکال در تعریف لینک سرور برای ستون" + " " + (string.IsNullOrEmpty(item.Alias) ? item.ColumnID.ToString() : item.Alias);
                 message += Environment.NewLine + linkedServerMessage;
                 MessageBox.Show(message);
                 return;
             }
         }
     }
     foreach (var item in Message.EntitySearchAllColumns)
     {
         if (item.RelationshipTailID != 0)
         {
             if (item.ColumnID == 0)
             {
                 BizTableDrivedEntity biz = new BizTableDrivedEntity();
                 var relationshipTail     = bizEntityRelationshipTail.GetEntityRelationshipTail(MyProjectManager.GetMyProjectManager.GetRequester(), item.RelationshipTailID);
                 var entity = biz.GetTableDrivedEntity(MyProjectManager.GetMyProjectManager.GetRequester(), relationshipTail.TargetEntityID, EntityColumnInfoType.WithoutColumn, EntityRelationshipInfoType.WithoutRelationships);
                 if (entity.IsView)
                 {
                     MessageBox.Show("به منظور استفاده از رشته رابطه" + " " + relationshipTail.EntityPath + " " + "، به علت منتهی شدن با نما، انتخاب ستون هدف اجباری می باشد");
                     return;
                 }
             }
         }
     }
     Message.TableDrivedEntityID = EntityID;
     Message.Title = txtViewName.Text;
     Message.ID    = bizEntitySearch.UpdateEntitySearchs(Message);
     if (EntitySearchUpdated != null)
     {
         EntitySearchUpdated(this, new MyProject_WPF.EntitySearchUpdatedArg()
         {
             ID = Message.ID
         });
     }
     MessageBox.Show("اطلاعات ثبت شد");
 }
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (txtViewName.Text == "")
            {
                MessageBox.Show("عنوان مناسب تعریف نشده است");
                return;
            }

            foreach (var item in Message.EntityListViewAllColumns)
            {
                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(), EntityID);
                    var linkedServerMessage = bizEntityRelationshipTail.CheckLinkedServers(entity, relationshipTail);
                    if (linkedServerMessage != "")
                    {
                        var message = "اشکال در تعریف لینک سرور برای ستون" + " " + (string.IsNullOrEmpty(item.Alias) ? item.ColumnID.ToString() : item.Alias);
                        message += Environment.NewLine + linkedServerMessage;
                        MessageBox.Show(message);
                        return;
                    }
                    if (relationshipTail.IsOneToManyTail)
                    {
                        var message = "رشته رابطه برای ستون" + " " + (string.IsNullOrEmpty(item.Alias) ? item.ColumnID.ToString() : item.Alias) + " " + "نمی تواند یک به چند باشد";
                        MessageBox.Show(message);
                        return;
                    }
                }
            }

            Message.TableDrivedEntityID = EntityID;
            Message.Title = txtViewName.Text;
            Message.ID    = bizEntityListView.UpdateEntityListViews(Message);
            if (EntityListViewUpdated != null)
            {
                EntityListViewUpdated(this, new MyProject_WPF.EntityListViewUpdatedArg()
                {
                    ID = Message.ID
                });
            }
            MessageBox.Show("اطلاعات ثبت شد");
        }
Ejemplo n.º 4
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 AddFile_Click(object sender, RoutedEventArgs e)
        //{
        //    OpenFileDialog openFileDialog = new OpenFileDialog();
        //    openFileDialog.Filter = "Icons (*.png,*.ico)|*.png;*.ico|All files (*.*)|*.*";
        //    openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        //    //if (openFileDialog.ShowDialog() == true)
        //    //{
        //    //    txtFilePath.Text = openFileDialog.FileName;
        //    //}
        //}

        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            foreach (var item in Message.DataViewRelationships)
            {
                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 linkedServerMessage = bizEntityRelationshipTail.CheckLinkedServers(entity, relationshipTail.ReverseRelationshipTail);
                    if (linkedServerMessage != "")
                    {
                        var message = "اشکال در تعریف نمایش داده و لینک سرور برای موجودیت" + " " + string.IsNullOrEmpty(relationshipTail.TargetEntityAlias);
                        message += Environment.NewLine + linkedServerMessage;
                        MessageBox.Show(message);
                        return;
                    }
                }
            }
            foreach (var item in Message.GridViewRelationships)
            {
                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 linkedServerMessage = bizEntityRelationshipTail.CheckLinkedServers(entity, relationshipTail.ReverseRelationshipTail);
                    if (linkedServerMessage != "")
                    {
                        var message = "اشکال در تعریف گرید داده و لینک سرور برای موجودیت" + " " + string.IsNullOrEmpty(relationshipTail.TargetEntityAlias);
                        message += Environment.NewLine + linkedServerMessage;
                        MessageBox.Show(message);
                        return;
                    }
                }
            }
            foreach (var item in Message.SearchableReportRelationships)
            {
                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 linkedServerMessage = bizEntityRelationshipTail.CheckLinkedServers(entity, relationshipTail.ReverseRelationshipTail);
                    if (linkedServerMessage != "")
                    {
                        var message = "اشکال در تعریف گزارشات مرتبط و لینک سرور برای موجودیت" + " " + string.IsNullOrEmpty(relationshipTail.TargetEntityAlias);
                        message += Environment.NewLine + linkedServerMessage;
                        MessageBox.Show(message);
                        return;
                    }
                }
                if (item.EntitySearchableReportID == 0)
                {
                    var message = "اشکال در تعریف گزارشات مرتبط";
                    message += Environment.NewLine + "گزارش مرتبط اجباری می باشد";
                    MessageBox.Show(message);
                    return;
                }
            }
            if (Entity.IsView)
            {
                if (lokRelationship.SelectedItem != null)
                {
                    if (lokDataMenuSetting.SelectedItem == null)
                    {
                        MessageBox.Show("تنظیمات منوی رابطه مشخص نشده است");
                        return;
                    }
                }
            }
            if (Message.SearchableReportRelationships.Any(x => x.RelationshipTailID == 0))
            {
                MessageBox.Show("انتخاب رابطه و گزارش برای لیست گزارشات اجباری می باشد");
                return;
            }
            if (txtFilePath.Text != "")
            {
                Message.IconContent = File.ReadAllBytes(txtFilePath.Text);
            }
            if (lokEntityDataView.SelectedItem != null)
            {
                Message.EntityListViewID = (int)lokEntityDataView.SelectedValue;
            }
            else
            {
                Message.EntityListViewID = 0;
            }
            Message.EntityID = EntityID;
            Message.Name     = txtName.Text;

            if (lokRelationship.SelectedItem != null)
            {
                Message.RelationshipID = (int)lokRelationship.SelectedValue;
            }
            if (lokDataMenuSetting.SelectedItem != null)
            {
                Message.TargetDataMenuSettingID = (int)lokDataMenuSetting.SelectedValue;
            }


            bizDataMenuSetting.UpdateEntityReportDataMenuSettings(Message);
            MessageBox.Show("اطلاعات ثبت شد");
        }
        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
                });
            }
        }