示例#1
0
        private static IGetString GetInstanceNoAsync(IUseMethod method, IGenerateSerie reporter, IGetBase lastClass)
        {
            if (method == null)
            {
                return(null);
            }

            var processing = StrategyTodoFactory.GetInstance(method.TypeDoIndependentWork, reporter, method.NumSteps);

            IStrategyTodo todo = StrategyTodoFactory.GetInstance(method.TypeDoIndependentWork, reporter, method.NumSteps);

            MyWorkSync myW = new MyWorkSync(todo, reporter);

            if (method.Next == null)
            {
                return(new MethodSyncFinal(myW, reporter, processing, method));
            }
            else
            {
                IGetString result = null;
                if (lastClass is IGetString)
                {
                    result = new CallNextSyncIfNextMethodIsSync(myW, (IGetString)lastClass, reporter, method);
                }
                else if (lastClass is IGetStringAsync)
                {
                    switch (method.CallNext)
                    {
                    case ECallNext.WAIT_FIRST:
                        result = new CallNextSyncWaitFirstIfNextMethodIsAsync(myW, (IGetStringAsync)lastClass, reporter, method);
                        break;

                    case ECallNext.WAIT_AFTER:
                    case ECallNext.AWAITER_AFTER:
                    case ECallNext.NOT_WAIT:
                        result = new CallNextSyncWaitAfterIfNextMethodIsAsync(myW, (IGetStringAsync)lastClass, reporter, method);
                        break;
                    }
                }

                return(result);
            }
        }
 public static StringBuilder AppendFrom(this StringBuilder instance
                                        , IGetString getString)
 {
     instance.Append(getString.GetString())
     return(instance);
 }
 public CallNextSyncIfNextMethodIsSync(IMyWorkSync pMyWork, IGetString pNext, IGenerateSerie gen, IUseMethod pMethod)
     : base(pMyWork, pNext, gen, pMethod)
 {
 }
 public CallNextAsyncToSync(IMyWorkASync pMyWork, IGetString pNext, IGenerateSerie gen, IUseMethod pMethod)
     : base(pMyWork, pNext, gen, pMethod)
 {
 }