示例#1
0
        public ViewModelUploader()
        {
            UploadCommand         = new UploadCommand(this);
            ContinueUploadCommand = new ContinueUploadCommand(this);
            HideInfoCommand       = new HideInfoCommand(this);
            ShowInfoCommand       = new ShowInfoCommand(this);

            try
            {
                _dal        = new DataAccessLayer();
                UploadQueue = _dal.GetNotUploaded();
            }
            catch (Exception ex)
            {
                ShowMessage(ex.Message);
            }
        }
示例#2
0
文件: Program.cs 项目: amis92/wham
        public static Parser CreateParser()
        {
            var infoOption = new Option("--info", "Display product information: name, configuration, various versions");

            return(new CommandLineBuilder()
                   .AddOption(infoOption)
                   .UseMiddlewareOrdered(MiddlewareOrder.Preprocessing, async(ctx, next) =>
            {
                if (ctx.ParseResult.HasOption(infoOption))
                {
                    ShowInfoCommand.Run(ctx.Console);
                }
                else
                {
                    await next(ctx);
                }
            })
                   .UseDefaults()
                   .AddCommand(
                       new Command("convertxml", "[WIP] Converts BattleScribe XML files into Gitree directory structure.")
            {
                new Option(new[] { "-s", "--source" }, "Directory in which to look for XML files.")
                {
                    Argument = new Argument <DirectoryInfo>(GetCurrentDirectoryInfo).ExistingOnly()
                },
                new Option(new[] { "-o", "--output" }, "Root directory in which to save Gitree files and folders.")
                {
                    Argument = new Argument <DirectoryInfo>(GetCurrentDirectoryInfo).LegalFilePathsOnly()
                },
                CreateVerbosityOption()
            }
                       .Hidden()
                       .Runs(typeof(ConvertXmlCommand).GetMethod(nameof(ConvertXmlCommand.Run))))
                   .AddCommand(
                       new Command("convertgitree", "[WIP] Converts Gitree directory structure into BattleScribe XML files.")
            {
                new Option(new[] { "-s", "--source" }, "Root directory of Gitree to convert.")
                {
                    Argument = new Argument <DirectoryInfo>(GetCurrentDirectoryInfo).ExistingOnly()
                },
                new Option(new[] { "-o", "--output" }, "Directory in which to save XML files.")
                {
                    Argument = new Argument <DirectoryInfo>(GetCurrentDirectoryInfo).LegalFilePathsOnly()
                },
                CreateVerbosityOption()
            }
                       .Hidden()
                       .Runs(typeof(ConvertGitreeCommand).GetMethod(nameof(ConvertGitreeCommand.Run))))
                   .AddCommand(
                       new Command("publish", "Publishes given workspace in selected formats, by default a .bsr file.")
            {
                new Option(
                    new[] { "-a", "--artifacts" },
                    "Kinds of artifacts to publish to output (multiple values allowed):" +
                    " XML - uncompressed cat/gst XML files;" +
                    " ZIP - zipped catz/gstz XML files;" +
                    " INDEX - index.xml datafile index for hosting on the web;" +
                    " BSI - index.bsi zipped datafile index for hosting on the web;" +
                    " BSR - zipped cat/gst datafile container with index.")
                {
                    Argument = new Argument <string>()
                    {
                        Arity = ArgumentArity.OneOrMore
                    }
                    .WithDefaultValue("bsr")
                    .FromAmong(PublishCommand.ArtifactNames)
                },
                new Option(new[] { "-s", "--source" }, "Directory in which to look for datafiles.")
                {
                    Argument = new Argument <DirectoryInfo>(GetCurrentDirectoryInfo).ExistingOnly()
                },
                new Option(new[] { "-o", "--output" }, "Directory to save artifacts to.")
                {
                    Argument = new Argument <DirectoryInfo>(GetCurrentDirectoryInfo).LegalFilePathsOnly()
                },
                new Option("--url", "Url of the index that gets included in indexes and bsr.")
                {
                    Argument = new Argument <Uri>().RequireAbsoluteUrl()
                },
                new Option(
                    "--repo-name",
                    "Repository name used in published indexes (includes bsr)." +
                    " Default is name of the game system, or <source> folder name if no game system included.")
                {
                    Argument = new Argument <string>()
                },
                new Option(
                    new[] { "-f", "--filename" },
                    "Filename (without extension) of the output artifacts. Default is <source> folder name.")
                {
                    Argument = new Argument <string>().LegalFilePathsOnly()
                },
                new Option("--url-only-index", "Don't include data index entries in published indexes (doesn't impact bsr index).")
                {
                    Argument = new Argument <bool>()
                },
                new Option("--additional-urls", "Additional urls of index/bsr included in published indexes (doesn't impact bsr index).")
                {
                    Argument = new Argument <Uri[]>().RequireAbsoluteUrl()
                },
                CreateVerbosityOption()
            }
                       .Runs(typeof(PublishCommand).GetMethod(nameof(PublishCommand.Run))))
                   .Build());
        }
示例#3
0
        public MainWindowViewModel(List <Task> tasks, UserGroup group)
        {
            GridWidth = false;

            // Set the current user
            CurrentUser = RunTimeContext.Context.CurrentUser;

            #region Lists

            // The list of scheduled tasks (bind to the Schedule list in UI)
            ScheduledList = new ObservableCollection <Schedule>(ScheduleManager.GetScheduledTask(RunTimeContext.Context.CurrentUser,
                                                                                                 RunTimeContext.Context.DatabaseContext));

            // Result list (bind to the result panel in UI)
            ResultList = new ObservableCollection <ResultTask>();

            // Property list, to use with FileLib, /!\ not implemented now :(
            Props = new ObservableCollection <Dictionary <string, string> >();

            // Task list, with all the task, given by the loading screen as constructor parameter
            TaskList = tasks == null ? new ObservableCollection <Task>() : new ObservableCollection <Task>(tasks);

            // The list of queued tasks (bind to the queue panel in UI)
            QueueList = new ObservableCollection <Task>();

            // The list of markets (Bind to the combobox with the list of markets in UI)
            MarketList = new ObservableCollection <Market>(MarketManager.GetAllMarkets(RunTimeContext.Context.DatabaseContext));

            #endregion

            #region Selected

            // Set the market to the main market of the user
            SelectedMarket = CurrentUser.MainMarket;

            // Set the selected task to the first one of the list
            SelectedTask = FilteredTasks.FirstOrDefault();

            #endregion

            #region User right

            // Those three properties are used to be bind with some UI elements like menu
            // If you bind the IsVisibility property of a control with one of those, only the group of person with the appropriate
            // rights will be able to see it
            // eg : Visibility="{Binding IsAdmin}" <-- only Admin level people will see

            // Do the user have Admin Access ?
            IsAdmin = (@group == UserGroup.Dev || @group == UserGroup.Admin) ? Visibility.Visible : Visibility.Collapsed;

            // Manager ?
            IsManager = @group == UserGroup.Manager ? Visibility.Visible : Visibility.Collapsed;

            // Or maybe a Developer ?
            IsDev = @group == UserGroup.Dev ? Visibility.Visible : Visibility.Collapsed;

            #endregion

            #region Commands

            OpenConfigCommand   = new OpenConfigCommand(this);
            OpenScheduleCommand = new OpenScheduleCommand(this);

            OpenFileCommand   = new OpenFileCommand(this);
            OpenFolderCommand = new OpenFolderCommand(this);

            OpenLogCommand = new OpenLogCommand(this);

            RunCommand      = new RunTaskCommand(this);
            QueueCommand    = new QueueTaskCommand(this);
            RemoveCommand   = new RemoveTaskCommand(this);
            CloseCommand    = new CloseWindowCommand();
            MinimizeCommand = new MinimizeWindowCommand();
            MaximizeCommand = new MaximizeWindowCommand();
            LogoutCommand   = new LogoutCommand();

            ClearQueueCommand    = new ClearQueueCommand(this);
            MoveDownQueueCommand = new MoveDownQueueCommand(this);
            MoveUpQueueCommand   = new MoveUpQueueCommand(this);

            StartQueueCommand     = new StartQueueCommand(this);
            AddScheduleCommand    = new AddScheduleCommand(this);
            RemoveScheduleCommand = new RemoveScheduleCommand(this);
            ChangeScheduleCommand = new ChangeScheduleCommand(this);
            ShowAllTaskCommand    = new ShowAllTaskCommand(this);
            ShowMarketTaskCommand = new ShowMarketTaskCommand(this);

            ShowInfoCommand  = new ShowInfoCommand(this);
            ShowQueueCommand = new ShowQueueCommand(this);

            FilterResultCommand = new FilterResultCommand(this);

            ReportDevCommand = new ReportDevCommand(this);

            #endregion

            // Number of time in a row a task failed
            // if 3 the error window will appear automatically
            FailedInARow = 0;

            #region Hide other regions

            GridWidth = true;
            //CollapseQueue();
            //CollapseGrid();

            #endregion

            // A simple bool to see if a task is running at the moment or not
            TaskRunning = false;

            // The result filter, chaging it will change automatically the task list
            ResultFilter = "";

            // The log List
            Log = new ObservableCollection <Log>();

            // The list of currently scheduled tasks, use for rerun if failed and keep track of current running status
            CurrentlyScheduledTasks = new Dictionary <int, ScheduledTaskInfo>();

            #region Timer

            // Create new DispatcherTimer and attach event handler to it
            var launchScheduleTimer = new DispatcherTimer();
            launchScheduleTimer.Tick    += LaunchScheduleTimer_Tick;
            launchScheduleTimer.Interval = new TimeSpan(0, 1, 0);
            launchScheduleTimer.Start();

            #endregion
        }