コード例 #1
0
        /// <summary>
        /// Adds the item.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="processView">The process view.</param>
        /// <param name="sequence">The sequence.</param>
        public void AddItem(object item, ProcessViewInfo processView, double sequence)
        {
            EventHandler<AddedNewEventArgs<NavigationItemEdit>> eh = null;

            eh = (o, args) =>
                     {
                         if (item is PublishedProcessInfo)
                         {
                             var process = item as PublishedProcessInfo;

                             args.NewObject.Sequence = sequence;
                             args.NewObject.Name = processView == null ? process.Name : PublishedProcessViewModel.GetNavigationViewName(process.Name, processView.Name);
                             args.NewObject.SystemName = process.SystemName;
                             args.NewObject.PublishedProcessId = process.Id;
                             args.NewObject.ProcessViewGuid = processView == null ? (Guid?)null : processView.Guid;
                             args.NewObject.IconId = process.IconId;
                         }
                         else if (item is TitledCommandEx)
                         {
                             var systemFunction = item as TitledCommandEx;

                             args.NewObject.Sequence = sequence;
                             args.NewObject.Name = systemFunction.Title;
                             args.NewObject.IconURL = systemFunction.IconURL;
                         }
                         else if (item is NavigationItemViewModel)
                         {
                             var navigationItem = item as NavigationItemViewModel;
                             if (NavigationItems.Any(x => x.Model.Guid == navigationItem.Model.Guid))
                             {
                                 RemoveItem(navigationItem);
                             }
                             args.NewObject.Sequence = sequence;
                             args.NewObject.Name = navigationItem.Model.Name;
                             args.NewObject.SystemName = navigationItem.Model.SystemName;
                             args.NewObject.PublishedProcessId = navigationItem.Model.PublishedProcessId;
                             args.NewObject.IconId = navigationItem.Model.IconId;
                             args.NewObject.IconURL = navigationItem.Model.IconURL;
                             args.NewObject.Guid = navigationItem.Model.Guid;
                             foreach (var configuration in navigationItem.Model.SecurityConfigurations)
                             {
                                 args.NewObject.SetCanView(configuration.RoleId, configuration.CanView);
                             }
                             var a = args.NewObject.SecurityConfigurations;
                         }
                         else
                         {
                             var message = string.Format("Wrong type. Type {0} not supported.", item.GetType());
                             throw new ArgumentException(message, "item");
                         }

                         var vm = NavigationItemFactory.CreateExport().Value;

                         vm.Initialize(args.NewObject, this);

                         vm.SelectedRoleId = SelectedRoleId;

                         InsertItem(vm);

                         UpdateItemsCanMove();

                         Model.NavigationItems.AddedNew -= eh;

                         RaiseAddedNewItemEvent(args.NewObject);

                         Parent.AddItem(vm.Model.PublishedProcessId);
                     };

            Model.NavigationItems.AddedNew += eh;
            Model.NavigationItems.AddNew();
        }
コード例 #2
0
 /// <summary>
 /// Initializes the specified model.
 /// </summary>
 /// <param name="model">The model.</param>
 /// <param name="view">The view.</param>
 public void Initialize(PublishedProcessInfo model, ProcessViewInfo view = null)
 {
     PublishedProcess = model;
     ProcessView = view;
     LoadIcon();
 }