public bool DeleteEntitySecurityDirect(int id) { EntitySecurityDirectDTO result = new EntitySecurityDirectDTO(); using (var projectContext = new DataAccess.MyProjectEntities()) { var item = projectContext.EntitySecurityDirect.FirstOrDefault(x => x.ID == id); //foreach (var child in item.EntitySecurityDirectStates.ToList()) // projectContext.EntitySecurityDirectStates.Remove(child); projectContext.EntitySecurityDirect.Remove(item); projectContext.SaveChanges(); return(true); } }
private void GetDirectSecurity() { if (lokEntities.SelectedItem != null && cmbMode.SelectedItem != null) { Message = bizRoleSecurity.GetEntitySecurityDirectByEntityID(MyProjectManager.GetMyProjectManager.GetRequester(), (int)lokEntities.SelectedValue, (DataDirectSecurityMode)cmbMode.SelectedItem, false); if (Message == null) { Message = new EntitySecurityDirectDTO(); Message.TableDrivedEntityID = (int)lokEntities.SelectedValue; Message.Mode = (DataDirectSecurityMode)cmbMode.SelectedItem; } ShowMessage(); } }
//public bool EntityHasInDirectSecurityWithDirectSecurity(DR_Requester requester, int entityID, DataDirectSecurityMode mode) //{ // using (var context = new MyProjectEntities()) // { // if (mode == DataDirectSecurityMode.FetchData) // { // if (context.EntitySecurityInDirect.Any(x => x.TableDrivedEntityID == entityID && // (x.Mode == (short)DataInDirectSecurityMode.OnlyFetchData || x.Mode == (short)DataInDirectSecurityMode.Full))) // { // var indirect = context.EntitySecurityInDirect.First(x => x.TableDrivedEntityID == entityID && // (x.Mode == (short)DataInDirectSecurityMode.OnlyFetchData || x.Mode == (short)DataInDirectSecurityMode.Full)); // return context.EntitySecurityDirect.Any(x => x.TableDrivedEntityID == indirect.EntityRelationshipTail.TargetEntityID && x.Mode == (short)mode); // } // else // return false; // } // else if (mode == DataDirectSecurityMode.ReadonlyData) // { // if (context.EntitySecurityInDirect.Any(x => x.TableDrivedEntityID == entityID && x.Mode == (short)DataInDirectSecurityMode.Full)) // { // var indirect = context.EntitySecurityInDirect.First(x => x.TableDrivedEntityID == entityID && x.Mode == (short)DataInDirectSecurityMode.Full); // return context.EntitySecurityDirect.Any(x => x.TableDrivedEntityID == indirect.EntityRelationshipTail.TargetEntityID && x.Mode == (short)mode); // } // else // return false; // } // } // return false; //} //public bool EntityHasInDirectSecurities(DR_Requester requester, int entityID) //{ // using (var context = new MyProjectEntities()) // { // if (context.EntitySecurityInDirect.Any(x => x.TableDrivedEntityID == entityID)) // { // var indirect = context.EntitySecurityInDirect.First(x => x.TableDrivedEntityID == entityID); // return context.EntitySecurityDirect.Any(x => x.TableDrivedEntityID == indirect.EntityRelationshipTail.TargetEntityID); // } // else // return false; // } //} public EntitySecurityDirectDTO GetEntitySecurityDirectByEntityID(DR_Requester requester, int entityID, DataDirectSecurityMode mode, bool withDetails) { EntitySecurityDirectDTO result = new EntitySecurityDirectDTO(); using (var projectContext = new DataAccess.MyProjectEntities()) { var item = projectContext.EntitySecurityDirect.FirstOrDefault(x => x.TableDrivedEntityID == entityID && x.Mode == (short)mode); if (item != null) { return(ToEntitySecurityDirectDTO(requester, item, withDetails)); } else { return(null); } } }
public frmEntitySecurityDirect(int entityID) { InitializeComponent(); // cmbInOrNotIn.ItemsSource = Enum.GetValues(typeof(InORNotIn)).Cast<InORNotIn>(); SetEntites(); // SetSecuritySubjects(); // SetAndOrType(); // SetDatabaseFunctions(); // SetOperators(); // SetReservedValues(); SetMode(); cmbMode.SelectionChanged += CmbMode_SelectionChanged; //lokFormula.EditItemEnabled = true; //lokFormula.NewItemEnabled = true; //lokFormula.EditItemClicked += LokFormula_EditItemClicked; // dtgConditions.RowLoaded += DtgConditions_RowLoaded; // dtgConditions.CellEditEnded += DtgConditions_CellEditEnded; lokState.EditItemClicked += colEntityState_EditItemClicked; lokState.EditItemEnabled = true; lokState.NewItemEnabled = true; // ControlHelper.GenerateContextMenu(dtgStates); // ControlHelper.GenerateContextMenu(dtgSecuritySubjects); if (entityID != 0) { Message = new EntitySecurityDirectDTO(); Message.TableDrivedEntityID = entityID; ShowMessage(); } //ControlHelper.GenerateContextMenu(dtgColumnValue); //ControlHelper.GenerateContextMenu(dtgFormulaValue); //lokRelationshipTail.SelectionChanged += LokRelationshipTail_SelectionChanged; //lokRelationshipTail.EditItemClicked += LokRelationshipTail_EditItemClicked; //cmbOperator.ItemsSource = Enum.GetValues(typeof(Enum_EntityStateOperator)).Cast<Enum_EntityStateOperator>(); //colReservedValue.ItemsSource = Enum.GetValues(typeof(SecurityReservedValue)); }
//private EntitySecurityConditionDTO ToEntitySecurityConditionDTO(EntitySecurityCondition item, bool withDetails) //{ // var result = new EntitySecurityConditionDTO(); // result.ColumnID = item.ColumnID; // result.Value = item.Value; // if (item.DatabaseFunctionID != null) // result.DBFunctionID = item.DatabaseFunctionID.Value; // if (item.EntityRelationshipTailID != null) // { // result.RelationshipTailID = item.EntityRelationshipTailID.Value; // } // if (withDetails) // { // BizEntityRelationshipTail bizEntityRelationshipTail = new BizEntityRelationshipTail(); // if (item.EntityRelationshipTailID != null) // result.RelationshipTail = bizEntityRelationshipTail.ToEntityRelationshipTailDTO(item.EntityRelationshipTail); // BizColumn bizColumn = new BizColumn(); // result.Column = bizColumn.ToColumnDTO(item.Column, true); // } // result.ReservedValue = (SecurityReservedValue)item.ReservedValue; // result.Operator = (EntitySecurityOperator)item.Operator; // return result; //} //public EntitySecurityInDirectDTO GetEntitySecurityInDirect(DR_Requester requester, int entityID, bool withDetails) //{ // EntitySecurityInDirectDTO result = new EntitySecurityInDirectDTO(); // using (var projectContext = new DataAccess.MyProjectEntities()) // { // var item = projectContext.EntitySecurityInDirect.FirstOrDefault(x => x.TableDrivedEntityID == entityID); // if (item != null) // return ToEntitySecurityInDirectDTO(item, withDetails); // else // return null; // } //} //public EntitySecurityInDirectDTO GetEntitySecurityInDirect(DR_Requester requester, int entityID, bool withDetails) //{ // EntitySecurityInDirectDTO result = new EntitySecurityInDirectDTO(); // using (var projectContext = new DataAccess.MyProjectEntities()) // { // var item = projectContext.EntitySecurityInDirect.FirstOrDefault(x => x.TableDrivedEntityID == entityID); // if (item != null) // return ToEntitySecurityInDirectDTO(item, withDetails); // else // return null; // } //} //public EntitySecurityInDirectDTO ToEntitySecurityInDirectDTO(EntitySecurityInDirect item, bool withDetails) //{ // EntitySecurityInDirectDTO result = new EntitySecurityInDirectDTO(); // result.ID = item.ID; // //result.DirectRoleSecurityID = item.EntitySecurityDirectID; // result.RelationshipTailID = item.EntityRelationshipTailID; // result.TableDrivedEntityID = item.TableDrivedEntityID; // if (item.Mode != null) // result.Mode = (DataInDirectSecurityMode)item.Mode; // if (withDetails) // { // BizEntityRelationshipTail bizEntityRelationshipTail = new BizEntityRelationshipTail(); // result.RelationshipTail = bizEntityRelationshipTail.ToEntityRelationshipTailDTO(item.EntityRelationshipTail); // //result.DirectRoleSecurity = ToEntitySecurityDirectDTO(item.EntitySecurityDirect, withDetails); // } // return result; //} public int UpdateEntitySecurityDirect(EntitySecurityDirectDTO message) { using (var projectContext = new DataAccess.MyProjectEntities()) { var dbItem = projectContext.EntitySecurityDirect.FirstOrDefault(x => x.ID == message.TableDrivedEntityID && x.Mode == (short)message.Mode); if (dbItem == null) { dbItem = new DataAccess.EntitySecurityDirect(); projectContext.EntitySecurityDirect.Add(dbItem); } dbItem.TableDrivedEntityID = message.TableDrivedEntityID; //if (message.SecuritySubjectID != 0) // dbItem.SecuritySubjectID = message.SecuritySubjectID; //else // dbItem.SecuritySubjectID = null; //dbItem.SecuritySubjectOperator = (short)message.SecuritySubjectInORNotIn; //while (dbItem.EntitySecurityDirectSecuritySubject.Any()) // projectContext.EntitySecurityDirectSecuritySubject.Remove(dbItem.EntitySecurityDirectSecuritySubject.First()); //foreach (var nItem in message.SecuritySubjects) //{ // dbItem.EntitySecurityDirectSecuritySubject.Add(new EntitySecurityDirectSecuritySubject() { SecuritySubjectID = nItem.SecuritySubjectID });//, SecuritySubjectOperator = (short)nItem.SecuritySubjectOperator }); //} dbItem.Description = message.Description; dbItem.Mode = (short)message.Mode; // dbItem.IgnoreSecurity = message.IgnoreSecurity; //dbItem.ConditionsAndOrType = (short)message.ConditionAndORType; dbItem.TableDrivedEntityStateID = message.EntityStateID; //if (message.FormulaID != 0) // dbItem.FormulaID = message.FormulaID; //else // dbItem.FormulaID = null; //if (message.ColumnID != 0) //{ // dbItem.ColumnID = message.ColumnID; // if (message.RelationshipTailID == 0) // dbItem.EntityRelationshipTailID = null; // else // dbItem.EntityRelationshipTailID = message.RelationshipTailID; //} //else //{ // dbItem.ColumnID = null; // dbItem.EntityRelationshipTailID = null; //} //dbItem.ValueOperator = (short)message.ValueOperator; //while (dbItem.EntitySecurityDirectValues.Any()) // projectContext.EntitySecurityDirectValues.Remove(dbItem.EntitySecurityDirectValues.First()); //foreach (var nItem in message.Values) //{ // dbItem.EntitySecurityDirectValues.Add(new EntitySecurityDirectValues() { Value = nItem.Value, ReservedValue = (short)nItem.SecurityReservedValue }); //} //while (dbItem.EntitySecurityDirectStates.Any()) // projectContext.EntitySecurityDirectStates.Remove(dbItem.EntitySecurityDirectStates.First()); //foreach (var securityState in message.EntityStates) //{ // var dbCondition = new EntitySecurityDirectStates(); // dbCondition.TableDrivedEntityStateID = securityState.EntityStateID; // dbItem.EntitySecurityDirectStates.Add(dbCondition); //} //while (dbItem.EntitySecurityCondition.Any()) // projectContext.EntitySecurityCondition.Remove(dbItem.EntitySecurityCondition.First()); //foreach (var conditoin in message.Conditions) //{ // var dbCondition = new EntitySecurityCondition(); // dbCondition.ColumnID = conditoin.ColumnID; // dbCondition.Value = conditoin.Value; // if (conditoin.DBFunctionID != 0) // dbCondition.DatabaseFunctionID = conditoin.DBFunctionID; // else // dbCondition.DatabaseFunctionID = null; // if (conditoin.RelationshipTailID != 0) // dbCondition.EntityRelationshipTailID = conditoin.RelationshipTailID; // else // dbCondition.EntityRelationshipTailID = null; // dbCondition.ReservedValue = (short)conditoin.ReservedValue; // dbCondition.Operator = (short)conditoin.Operator; // dbItem.EntitySecurityCondition.Add(dbCondition); //} projectContext.SaveChanges(); return(dbItem.ID); } }
public EntitySecurityDirectDTO ToEntitySecurityDirectDTO(DR_Requester requester, EntitySecurityDirect item, bool withDetails) { EntitySecurityDirectDTO result = new EntitySecurityDirectDTO(); result.ID = item.ID; //if (item.SecuritySubjectID != null) // result.SecuritySubjectID = item.SecuritySubjectID.Value; //else // result.SecuritySubjectID = 0; if (item.Mode != null) { result.Mode = (DataDirectSecurityMode)item.Mode; } //result.IgnoreSecurity = item.IgnoreSecurity; result.Description = item.Description; result.TableDrivedEntityID = item.TableDrivedEntityID; //if (item.SecuritySubjectOperator != null) // result.SecuritySubjectInORNotIn = (InORNotIn)item.SecuritySubjectOperator; //foreach (var valItem in item.EntitySecurityDirectSecuritySubject) //{ // result.SecuritySubjects.Add(new ChildSecuritySubjectDTO { SecuritySubjectID = valItem.SecuritySubjectID });//, SecuritySubjectOperator = (Enum_SecuritySubjectOperator)valItem.SecuritySubjectOperator }); //} // EntitySecurityDirectStatesDTO securityState = new EntitySecurityDirectStatesDTO(); result.EntityStateID = item.TableDrivedEntityStateID; if (withDetails && result.EntityStateID != 0) { BizEntityState bizEntityState = new BizEntityState(); result.EntityState = bizEntityState.ToEntityStateDTO(requester, item.TableDrivedEntityState, withDetails); } //foreach (var valItem in item.EntitySecurityDirectValues) //{ // result.Values.Add(new ModelEntites.EntityStateValueDTO() { Value = valItem.Value, SecurityReservedValue = valItem.ReservedValue == null ? SecurityReservedValue.None : (SecurityReservedValue)valItem.ReservedValue }); //} //result.FormulaID = item.FormulaID ?? 0; //if (result.FormulaID != 0 && withDetails) //{ //??با جزئیات؟؟........................................................................ // var bizFormula = new BizFormula(); // result.Formula = bizFormula.GetFormula(requester, item.FormulaID.Value, withDetails); //} //result.ColumnID = item.ColumnID ?? 0; //if (item.Column != null) //{ // BizColumn bizColumn = new BizColumn(); // result.Column = bizColumn.ToColumnDTO(item.Column, true); //} //result.RelationshipTailID = item.EntityRelationshipTailID ?? 0; //if (item.EntityRelationshipTail != null) //{ // BizEntityRelationshipTail bizEntityRelationshipTail = new BizEntityRelationshipTail(); // result.RelationshipTail = bizEntityRelationshipTail.ToEntityRelationshipTailDTO(item.EntityRelationshipTail); //} //if (item.ValueOperator != null) // result.ValueOperator = (Enum_EntityStateOperator)item.ValueOperator; //result.EntityStates.Add(securityState); return(result); }
//private void optFormula_Checked(object sender, RoutedEventArgs e) //{ // tabColumn.Visibility = Visibility.Collapsed; // tabFormula.Visibility = Visibility.Visible; // tabFormula.IsSelected = true; //} //private void optColumn_Checked(object sender, RoutedEventArgs e) //{ // tabFormula.Visibility = Visibility.Collapsed; // tabColumn.Visibility = Visibility.Visible; // tabColumn.IsSelected = true; //} //private void btnReturn_Click(object sender, RoutedEventArgs e) //{ // MyProjectManager.GetMyProjectManager.CloseDialog(this); //} //private void optValue_Checked(object sender, RoutedEventArgs e) //{ // cmbDatabaseFunction.IsEnabled = false; // txtValue.IsEnabled = true; //} //private void optDBFunction_Checked(object sender, RoutedEventArgs e) //{ // txtValue.IsEnabled = false; // cmbDatabaseFunction.IsEnabled = true; //} //frmEntitySecurityDirectSelect searchView = null; //private void btnSearch_Click(object sender, RoutedEventArgs e) //{ // if (searchView == null) // { // searchView = new frmEntitySecurityDirectSelect(); // searchView.EntitySecurityDirectSelected += View_EntitySecurityDirectSelected; // } // MyProjectManager.GetMyProjectManager.ShowDialog(searchView, "جستجوی دسترسی داده"); //} //private void View_EntitySecurityDirectSelected(object sender, EntitySecurityDirectSelectArg e) //{ // if (e.ID != 0) // { // MyProjectManager.GetMyProjectManager.CloseDialog(sender); // GetEntitySecurityDirect(MyProjectManager.GetMyProjectManager.GetRequester(), e.ID); // } //} private void btnNew_Click(object sender, RoutedEventArgs e) { Message = new EntitySecurityDirectDTO(); ShowMessage(); }