| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Dynamic;
 
- using System.Linq;
 
- using System.Windows;
 
- using System.Windows.Controls;
 
- using System.Windows.Data;
 
- using Aitex.Core.Account;
 
- namespace MECF.Framework.UI.Core.Accounts
 
- {
 
-     /// <summary>
 
-     /// Interaction logic for RoleEditView.xaml
 
-     /// </summary>
 
-     public partial class RoleEditView : Window
 
-     {
 
-         public RoleEditView()
 
-         {
 
-             InitializeComponent();
 
-             Loaded += new RoutedEventHandler(RoleEditView_Loaded);
 
-             dataGrid1.CanUserAddRows = false;
 
-             dataGrid1.RowHeight = 25;
 
-         }
 
-         public class PermissionClass
 
-         {
 
-             public static Dictionary<Permission_CN, string> ViewPermissionCheck = new Dictionary<Permission_CN, string>();
 
-             static IEnumerable<Permission_CN> permissions = Enum.GetValues(typeof(Permission_CN)).Cast<Permission_CN>();
 
-             static PermissionClass()
 
-             {
 
-             
 
-                foreach (Permission_CN p in permissions)
 
-                {
 
-                    if (p == Permission_CN.ProcessHidden)
 
-                    {
 
-                        //只针对ReactorProcess相关界面
 
-                        ViewPermissionCheck.Add(p, "RecipeMonitor"); //"ProcessView"
 
-                    }
 
-                    else
 
-                    {
 
-                        ViewPermissionCheck.Add(p, "");
 
-                    }
 
-                }
 
-             }
 
-             public static List<Permission_CN> GetPermissions(string viewName)
 
-             {
 
-                 List<Permission_CN> permissionInfos = new List<Permission_CN>();
 
-                 foreach (Permission_CN p in ViewPermissionCheck.Keys)
 
-                 {
 
-                     if (ViewPermissionCheck[p] == "")
 
-                         permissionInfos.Add(p);
 
-                     else if(viewName.IndexOf(ViewPermissionCheck[p])>=0)
 
-                         permissionInfos.Add(p);
 
-                 }
 
-                 return permissionInfos;
 
-             }
 
-         }
 
-         public enum Permission_CN
 
-         {
 
-             Hidden,
 
-             ReadOnly,
 
-             Partial,
 
-             Full,
 
-             ProcessHidden
 
-         }
 
-         public List<ExpandoObject> DataSource = new List<ExpandoObject>();
 
-         void RoleEditView_Loaded(object sender, RoutedEventArgs e)
 
-         {
 
-             var viewList = AccountClient.Instance.Service.GetAllViewList();           
 
-             var viewPermission = AccountClient.Instance.Service.GetAllRolesPermission();
 
-             //Dynamically do data binding function here
 
-             foreach (var role in viewPermission.Keys)
 
-             {
 
-                 dynamic singleViewPermission = new ExpandoObject();
 
-                 ((IDictionary<String, object>)singleViewPermission).Add(new KeyValuePair<string, object>("RoleName", role));
 
-                 foreach (var view in viewPermission[role].Keys)
 
-                 {
 
-                     switch (viewPermission[role][view])
 
-                     {
 
-                         case ViewPermission.Invisiable:
 
-                             ((IDictionary<String, object>)singleViewPermission).Add(new KeyValuePair<string, object>(view, Permission_CN.Hidden));
 
-                             break;
 
-                         case ViewPermission.Readonly:
 
-                             ((IDictionary<String, object>)singleViewPermission).Add(new KeyValuePair<string, object>(view, Permission_CN.ReadOnly));
 
-                             break;
 
-                         case ViewPermission.PartlyControl:
 
-                             ((IDictionary<String, object>)singleViewPermission).Add(new KeyValuePair<string, object>(view, Permission_CN.Partial));
 
-                             break;
 
-                         case ViewPermission.FullyControl:
 
-                             ((IDictionary<String, object>)singleViewPermission).Add(new KeyValuePair<string, object>(view, Permission_CN.Full));
 
-                             break;
 
-                         case ViewPermission.ProcessOPControl:
 
-                             ((IDictionary<String, object>)singleViewPermission).Add(new KeyValuePair<string, object>(view, Permission_CN.ProcessHidden));
 
-                             break;
 
-                     }
 
-                 }
 
-                 DataSource.Add(singleViewPermission);
 
-             }
 
-             dataGrid1.DataContext = DataSource;
 
-             //dynamically creating data grid column
 
-             foreach (var view in viewList)
 
-             {
 
-                 var datagGridColumn = new DataGridComboBoxColumn() { Header = view.Value, Width = 100 };
 
-                 dataGrid1.Columns.Add(datagGridColumn);
 
-                 datagGridColumn.SelectedItemBinding = new Binding() { Path = new PropertyPath(view.Key) };
 
-                 datagGridColumn.ItemsSource = PermissionClass.GetPermissions(view.Key);
 
-             }
 
-         }
 
-         private void btnClose_Click(object sender, RoutedEventArgs e)
 
-         {
 
-             Close();
 
-         }
 
-         private void btnAddNew_Click(object sender, RoutedEventArgs e)
 
-         {
 
-             dynamic singleViewPermission = new ExpandoObject();
 
-             ((IDictionary<String, object>)singleViewPermission).Add(new KeyValuePair<string, object>("RoleName", "New Role"));
 
-             var viewList = AccountClient.Instance.Service.GetAllViewList();
 
-             foreach (var view in viewList.Keys)
 
-             {
 
-                 ((IDictionary<String, object>)singleViewPermission).Add(new KeyValuePair<string, object>(view, Permission_CN.Hidden));
 
-             }
 
-             DataSource.Add(singleViewPermission);
 
-             dataGrid1.DataContext = null;
 
-             dataGrid1.DataContext = DataSource;
 
-         }
 
-         /// <summary>
 
-         /// Save role to xml file
 
-         /// </summary>
 
-         /// <param name="sender"></param>
 
-         /// <param name="e"></param>
 
-         private void btnSave_Click(object sender, RoutedEventArgs e)
 
-         {
 
-             for (int i = 0; i < DataSource.Count - 1; i++)
 
-             {
 
-                 for (int j = i + 1; j < DataSource.Count; j++)
 
-                 {
 
-                     dynamic obj1 = DataSource[i];
 
-                     dynamic obj2 = DataSource[j];
 
-                     if (String.Compare(obj1.RoleName, obj2.RoleName) == 0)
 
-                     {
 
-                         MessageBox.Show(string.Format("\"{0}\" Existed,modify to save!", obj1.RoleName), "Role Editor Error", MessageBoxButton.OK, MessageBoxImage.Warning);
 
-                         return;
 
-                     }
 
-                 }
 
-             }
 
-             var permissionDic = new Dictionary<string, Dictionary<string,ViewPermission>>();
 
-             foreach (dynamic role in DataSource)
 
-             {
 
-                 permissionDic.Add(role.RoleName, new Dictionary<string, ViewPermission>());
 
-                 foreach (var item in ((IDictionary<String, object>)role).Keys)
 
-                 {
 
-                     if (item == "RoleName") continue;
 
-                     var perm = (Permission_CN)((IDictionary<String, object>)role)[item];
 
-                     switch (perm)
 
-                     {
 
-                         case Permission_CN.Full:
 
-                             permissionDic[role.RoleName].Add(item, ViewPermission.FullyControl);
 
-                             break;
 
-                         case Permission_CN.Partial:
 
-                             permissionDic[role.RoleName].Add(item, ViewPermission.PartlyControl);
 
-                             break;
 
-                         case Permission_CN.ReadOnly:
 
-                             permissionDic[role.RoleName].Add(item, ViewPermission.Readonly);
 
-                             break;
 
-                         case Permission_CN.Hidden:
 
-                             permissionDic[role.RoleName].Add(item, ViewPermission.Invisiable);
 
-                             break;
 
-                         case Permission_CN.ProcessHidden:
 
-                             permissionDic[role.RoleName].Add(item, ViewPermission.ProcessOPControl);
 
-                             break;
 
-                         
 
-                     }
 
-                 }
 
-             }
 
-             if (AccountClient.Instance.Service.SaveAllRolesPermission(permissionDic))
 
-             {
 
-                 MessageBox.Show(Application.Current.Resources["GlobalLableAccountViewSaveRoleOk"].ToString());
 
-             }
 
-             else
 
-             {
 
-                 MessageBox.Show(Application.Current.Resources["GlobalLableAccountViewSaveRoleFailed"].ToString());
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Delete current selecte role
 
-         /// </summary>
 
-         /// <param name="sender"></param>
 
-         /// <param name="e"></param>
 
-         private void btnRoleDelete_Click(object sender, RoutedEventArgs e)
 
-         {
 
-             dynamic obj = dataGrid1.SelectedItem;
 
-             if (obj != null)
 
-             {
 
-                 if (MessageBox.Show(string.Format(Application.Current.Resources["GlobalLableAccountViewDeleteRoleInfo"].ToString(), obj.RoleName), Application.Current.Resources["GlobalLableAccountViewMsgTitle"].ToString(), MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
 
-                 {
 
-                     foreach (dynamic role in DataSource)
 
-                     {
 
-                         if (role.RoleName == obj.RoleName)
 
-                         {
 
-                             DataSource.Remove(role);
 
-                             break;
 
-                         }
 
-                     }
 
-                     dataGrid1.DataContext = null;
 
-                     dataGrid1.DataContext = DataSource;
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |