internal async Task <int> OnExecuteAsync(CommandLineApplication app, CancellationToken token) { S3Cli?mainParent = null; if (app is CommandLineApplication <S3Cli> cliApp) { mainParent = cliApp.Model; } else if (app.Parent is CommandLineApplication <S3Cli> cliApp2) { mainParent = cliApp2.Model; } else if (app.Parent != null && app.Parent.Parent is CommandLineApplication <S3Cli> cliApp3) { mainParent = cliApp3.Model; } if (mainParent == null) { throw new S3Exception("Unable to find parent."); } Manager = CliManager.GetCliManager(mainParent.ProfileName, mainParent.Region); try { await ExecuteAsync(app, token).ConfigureAwait(false); return(0); } catch { return(1); } }
private void Awake() { cliManager = new CliManager(); scourManager = new ScourManager(this.gameObject); Insite = this; }
internal static IEnumerable <IInterfaceType> GetImplementations(ICliMetadataTypeDefinitionTableRow parentDef, ICliMetadataMethodDefinitionTableRow methodMetadata, CliManager identityManager, IType activeType, IMethodSignatureMember activeMethod, IAssembly activeAssembly) { var targets = (from t in parentDef.ImplementationMap where t.MethodBody == methodMetadata select t.MethodDeclaration); foreach (var target in targets) { IType currentType = null; switch (target.MethodDefOrRefEncoding) { case CliMetadataMethodDefOrRefTag.MethodDefinition: ICliMetadataMethodDefinitionTableRow methodDef = (ICliMetadataMethodDefinitionTableRow)target; currentType = identityManager.ObtainTypeReference(methodMetadata.MetadataRoot.TableStream.TypeDefinitionTable[(int)methodMetadata.MetadataRoot.TableStream.TypeDefinitionTable.GetTypeFromMethodIndex(methodDef.Index)], activeType, activeMethod, activeAssembly); break; case CliMetadataMethodDefOrRefTag.MemberRef: ICliMetadataMemberReferenceTableRow memberRef = (ICliMetadataMemberReferenceTableRow)target; switch (memberRef.ClassSource) { case CliMetadataMemberRefParentTag.TypeDefinition: currentType = identityManager.ObtainTypeReference((ICliMetadataTypeDefinitionTableRow)memberRef.Class, activeType, activeMethod, activeAssembly); break; case CliMetadataMemberRefParentTag.TypeReference: currentType = identityManager.ObtainTypeReference((ICliMetadataTypeRefTableRow)memberRef.Class, activeType, activeMethod, activeAssembly); break; case CliMetadataMemberRefParentTag.TypeSpecification: currentType = identityManager.ObtainTypeReference((ICliMetadataTypeSpecificationTableRow)memberRef.Class, activeType, activeMethod, activeAssembly); break; } break; } if (currentType != null && currentType is IInterfaceType) { yield return((IInterfaceType)currentType); } } }