Exemple #1
0
        public async Task <Box> FindBox(QRCodeWrapper oQRCode)
        {
            CurrentBox = Boxes.FirstOrDefault(oBox => oBox.QRCode == oQRCode);
            if (CurrentBox == null)
            {
                CurrentBox = new Box(this, oQRCode);
                await MoveFolder.CreateFolderAsync(CurrentBox.ImageFolder);

                Boxes.Add(CurrentBox);
            }

            return(CurrentBox);
        }
Exemple #2
0
        public static SetupTask CreateFrom(XElement taskElement)
        {
            SetupTask result;

            switch (taskElement.Name.LocalName)
            {
            case "Group":
                result = new Composite(taskElement);
                break;

            case "ExtractArchive":
                result = new ExtractArchive(taskElement);
                break;

            case "TweakINI":
                result = new TweakINI(taskElement);
                break;

            case "CopyFile":
                result = new CopyFile(taskElement);
                break;

            case "Embedded":
                result = new Embedded(taskElement);
                break;

            case "Clean":
                result = new Clean(taskElement);
                break;

            case "CreateEmptyFolder":
                result = new CreateEmptyFolder(taskElement);
                break;

            case "RunProcess":
                result = new RunProcess(taskElement);
                break;

            case "DeleteFolder":
                result = new DeleteFolder(taskElement);
                break;

            case "DeleteFile":
                result = new DeleteFile(taskElement);
                break;

            case "MoveFolder":
                result = new MoveFolder(taskElement);
                break;

            case "EditFile":
                result = new EditFile(taskElement);
                break;

            case "Dummy":
                result = new Composite();
                break;

            default:
                throw new NotSupportedException("Task type " + taskElement.Name.LocalName + " is not supported.");
            }

            result.xml = taskElement.ToString();
            result.Id  = taskElement.Attribute("Id")?.Value ?? Guid.NewGuid().ToString();

            // this feels clunky, but that's fine I guess...
            result.WaitFor = result.WaitFor.Union(Program.Tokenize(taskElement.Attribute("WaitFor")?.Value)).ToImmutableArray();
            return(result);
        }