예제 #1
0
        public override List <Command> GetCommandsForObjectSet(List <int> objectIds, LookupType type)
        {
            var list = new List <Command>();

            switch (type)
            {
            case LookupType.Material:
                list.Add(new Command("Darwin Core report for material", (dataobj) => {
                    PluginManager.RunReport(this, new MaterialSetDarwinCoreReport(User, dataobj as List <int>));
                }));

                list.Add(new Command(String.Format("Delete material", objectIds.Count), (dataobj) => {
                    if (_explorer.Question(String.Format("Are you sure you wish to permanently delete these {0} pieces of material?", objectIds.Count), "Delete material set?", System.Windows.MessageBoxImage.Exclamation))
                    {
                        StringBuilder sb          = new StringBuilder();
                        var serviceMessageHandler = new ServiceMessageDelegate((msg) => {
                            sb.Append(msg).Append(" ");
                        });

                        var service             = new MaterialService(User);
                        service.ServiceMessage += serviceMessageHandler;
                        var count = 0;
                        using (new OverrideCursor(Cursors.Wait)) {
                            count = service.DeleteMaterialSet(objectIds);
                        }

                        if (count == 0)
                        {
                            ErrorMessage.Show("Something went wrong trying to delete {0} material items. {1}", objectIds.Count, sb.ToString());
                        }
                        else
                        {
                            InfoBox.Show(String.Format("{0} material records deleted.", count), "Material deleted", PluginManager.ParentWindow);
                        }
                    }
                }));
                break;
            }

            return(list);
        }