private void UpdateState(string pOid, bool pNewValue) { //UserProfile _currentXPObject = (UserProfile)_dataSource.Lookup(new Guid("" + TreeView.Model.GetValue(_treeIter, _modelFirstCustomFieldIndex))); SYS_UserProfile _currentXPObject = (SYS_UserProfile)FrameworkUtils.GetXPGuidObject(GlobalFramework.SessionXpo, typeof(SYS_UserProfile), new Guid("" + TreeView.Model.GetValue(_treeIter, _modelFirstCustomFieldIndex))); SYS_UserPermissionProfile tmpUserPermissionProfileUpdate = null;// (UserPermissionProfile)_xpCollection2.Lookup(new Guid("" + pOid)); bool needToInsert = true; for (int i = 0; i < _xpCollectionUserPermissionItem.Count; i++) { SYS_UserPermissionItem tmpUserPermissionItem = ((SYS_UserPermissionItem)_xpCollectionUserPermissionItem[i]); try { if (tmpUserPermissionItem.Oid == new Guid("" + pOid)) { for (int j = 0; j < _xpCollectionUserPermissionProfile.Count; j++) { SYS_UserPermissionProfile tmpUserPermissionProfile = ((SYS_UserPermissionProfile)_xpCollectionUserPermissionProfile[j]); if ((tmpUserPermissionProfile.UserProfile != null) && (tmpUserPermissionProfile.PermissionItem != null)) { if ((tmpUserPermissionProfile.UserProfile.Oid == _currentXPObject.Oid) && (tmpUserPermissionProfile.PermissionItem.Oid == tmpUserPermissionItem.Oid)) { needToInsert = true; //((UserPermissionProfile)_xpCollection3[j]).Disabled = !pNewValue; //((UserPermissionProfile)_xpCollectionUserPermissionProfile[j]).Delete(); //Mario Fix: Get Fresh Object else Gives Object Deleted Stress tmpUserPermissionProfile = (SYS_UserPermissionProfile)FrameworkUtils.GetXPGuidObject(GlobalFramework.SessionXpo, typeof(SYS_UserPermissionProfile), tmpUserPermissionProfile.Oid); tmpUserPermissionProfile.Delete(); _xpCollectionUserPermissionProfile.Reload(); } } } if (needToInsert) { tmpUserPermissionProfileUpdate = (SYS_UserPermissionProfile)Activator.CreateInstance(_xpObjectTypeUserPermissionProfile, GlobalFramework.SessionXpo); tmpUserPermissionProfileUpdate.Reload(); tmpUserPermissionProfileUpdate.UserProfile = _currentXPObject; //Mario Fix: Get Fresh Object else Gives Object Deleted Stress tmpUserPermissionItem = (SYS_UserPermissionItem)FrameworkUtils.GetXPGuidObject(GlobalFramework.SessionXpo, typeof(SYS_UserPermissionItem), tmpUserPermissionItem.Oid); tmpUserPermissionProfileUpdate.PermissionItem = tmpUserPermissionItem; tmpUserPermissionProfileUpdate.Granted = !pNewValue; tmpUserPermissionProfileUpdate.Save(); _xpCollectionUserPermissionProfile.Reload(); } else { } } } catch (Exception ex) { _log.Error(ex.Message, ex); } } }
private void LoadRefreshView() { _listStoreModelPermissionItem.Clear(); //UserProfile _currentXPObject = (UserProfile)_dataSource.Lookup(new Guid("" + TreeView.Model.GetValue(_treeIter, _modelFirstCustomFieldIndex))); SYS_UserProfile _currentXPObject = (SYS_UserProfile)FrameworkUtils.GetXPGuidObject(GlobalFramework.SessionXpo, typeof(SYS_UserProfile), new Guid("" + TreeView.Model.GetValue(_treeIter, _modelFirstCustomFieldIndex))); for (int i = 0; i < _xpCollectionUserPermissionItem.Count; i++) { bool tmpCurrentValue = false; SYS_UserPermissionItem tmpUserPermissionItem = ((SYS_UserPermissionItem)_xpCollectionUserPermissionItem[i]); try { for (int j = 0; j < _xpCollectionUserPermissionProfile.Count; j++) { SYS_UserPermissionProfile tmpUserPermissionProfile = ((SYS_UserPermissionProfile)_xpCollectionUserPermissionProfile[j]); if (tmpUserPermissionProfile.UserProfile != null && tmpUserPermissionProfile.PermissionItem != null) { if ((tmpUserPermissionProfile.UserProfile.Oid == _currentXPObject.Oid) && (tmpUserPermissionProfile.PermissionItem.Oid == tmpUserPermissionItem.Oid)) { tmpCurrentValue = tmpUserPermissionProfile.Granted; } } } } catch (Exception ex) { _log.Error(ex.Message, ex); } _listStoreModelPermissionItem.AppendValues("" + tmpUserPermissionItem.Oid, tmpUserPermissionItem.Designation, tmpCurrentValue); } }
//XpoMode public TreeViewUserProfile(Window pSourceWindow, XPGuidObject defaultValue, CriteriaOperator pXpoCriteria, Type pDialogType, GenericTreeViewMode pGenericTreeViewMode = GenericTreeViewMode.Default, GenericTreeViewNavigatorMode pGenericTreeViewNavigatorMode = GenericTreeViewNavigatorMode.Default) { Type xpoGuidObjectType = typeof(SYS_UserProfile); //Override Default Value with Parameter Default Value, this way we can have diferent Default Values for GenericTreeView SYS_UserProfile xpoDefaultValue = (defaultValue != null) ? defaultValue as SYS_UserProfile : null; //Override Default DialogType with Parameter Dialog Type, this way we can have diferent DialogTypes for GenericTreeView Type typeDialogClass = (pDialogType != null) ? pDialogType : typeof(DialogUserProfile); // XPO column properties List <GenericTreeViewColumnProperty> columnProperties = new List <GenericTreeViewColumnProperty>(); columnProperties.Add(new GenericTreeViewColumnProperty("Code") { Title = Resx.global_record_code, MinWidth = 100 }); columnProperties.Add(new GenericTreeViewColumnProperty("Designation") { Title = Resx.global_profile, Expand = true }); //configure criteria/xpcollection/model CriteriaOperator criteria = pXpoCriteria; XPCollection xpoCollection = new XPCollection(GlobalFramework.SessionXpo, xpoGuidObjectType, criteria); //Call Base Initializer base.InitObject( pSourceWindow, //Pass parameter defaultValue, //Pass parameter pGenericTreeViewMode, //Pass parameter pGenericTreeViewNavigatorMode, //Pass parameter columnProperties, //Created Here xpoCollection, //Created Here typeDialogClass //Created Here ); }