Exemplo n.º 1
0
        public ApiResult <TResult> TryCall <T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(Func <T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult> func,
                                                                                         T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string methodName)
        {
            var callStep = new CallStep();

            callStep.Parameters = StringHelper.GetArgsInfo(t1, t2, t3, t4, t5, t6, t7, t8, t9, 0);
            callStep.Start(methodName);

            var apiResult = ApiResult <TResult> .MakeSuccessResult();

            try
            {
                TResult result = func(t1, t2, t3, t4, t5, t6, t7, t8, t9);
                apiResult.Data = result;
            }
            catch (Exception ex)
            {
                ExceptionFail(apiResult, ex, callStep);
            }

            callStep.Stop(apiResult, Trace.StepTrace.SerializeResult);

            if (Trace != null)
            {
                Trace.StepTrace.AddStep(callStep);
            }

            return(apiResult);
        }
Exemplo n.º 2
0
        public ISequence Call <T, U, V>(Callback <T, U, V> callback, T param1, U param2, V param3)
        {
            Step step = new CallStep <T, U, V> {
                callback = callback, param1 = param1, param2 = param2, param3 = param3, onStepComplete = OnStepComplete
            };

            _steps.Add(step);
            return(this);
        }
Exemplo n.º 3
0
        public ISequence Call <T>(Callback <T> callback, T param)
        {
            Step step = new CallStep <T> {
                callback = callback, param = param, onStepComplete = OnStepComplete
            };

            _steps.Add(step);
            return(this);
        }
Exemplo n.º 4
0
        public ISequence Call(Callback callback)
        {
            Step step = new CallStep {
                callback = callback, onStepComplete = OnStepComplete
            };

            _steps.Add(step);
            return(this);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Vérifie le contenue d'un scénario avant sa lecture
        /// </summary>
        public static VerifyResult VerifyScenario(Datas.Scenario scenario)
        {
            //Parcours de tous les steps pour le traitement
            foreach (GenericStep currentStep in scenario.Steps)
            {
                //On détermine le type de Step (Transformation à partir d'un String en Enum "StepsName"

                switch ((StepsName)currentStep.NameId)
                {
                case StepsName.Appel:
                {
                    CallStep _step    = (CallStep)currentStep;
                    String   newAlias = MainEntry.listTesters.Tester[MainEntry.listTesters.GetIdFromName(currentStep.TesterDestination)].Alias;

                    if (_step.CallMode == CallMode.OIR)
                    {
                        newAlias = "*31*" + newAlias;
                    }
                    if (_step.Protocol == CallProtocol.Sip)
                    {
                        newAlias = "sip:" + newAlias;
                    }

                    _step.Alias = newAlias;
                    Console.WriteLine(_step.Alias);
                    break;
                }

                case StepsName.Attente:
                {
                    break;
                }

                case StepsName.DTMF:
                {
                    break;
                }

                case StepsName.Raccrochage:
                {
                    break;
                }
                }
            }


            VerifyResult result = new VerifyResult();

            return(result);
        }
Exemplo n.º 6
0
        public CachedResult <T> GetCachedValue <T>(string prefix, string subKey, Func <ApiResult <T> > loader, TimeSpan expire, string cacheName = "Couch", bool useLock = false)
        {
            var result = CachedResult <T> .MakeSucessResult();

            var key = prefix + subKey;
            T   data;

            var callStep = new CallStep();

            var methodName = _loaderRegex.Replace(loader.Method.Name.Replace("<", ""), "");

            callStep.Start(methodName);


            var cache = CacheInstance.Collection[cacheName];

            if (!cache.TryGet(key, out data))
            {
                if (useLock && _LockObjects.ContainsKey(prefix))
                {
                    Monitor.Enter(_LockObjects[prefix]);
                }

                if (!useLock || !cache.TryGet(key, out data))
                {
                    var loadResult = loader();

                    if (loadResult.Success)
                    {
                        data = loadResult.Data;
                        cache.Add(key, data, expire);
                    }

                    result.HitCache = false;
                    result.Copy(loadResult);
                }

                if (useLock && _LockObjects.ContainsKey(prefix))
                {
                    Monitor.Exit(_LockObjects[prefix]);
                }
            }

            result.Data = data;

            callStep.Stop(result, result.HitCache);

            return(result);
        }
Exemplo n.º 7
0
        public NewStep()
        {
            InitializeComponent();

            /******** Instanciation du TreeView *********/
            treeView1.Nodes.Add("Step de base");
            foreach (StepsName item in Enum.GetValues(typeof(StepsName)))
            {
                TreeNode itemTreeNode = new TreeNode(item.ToString());
                itemTreeNode.Name = item.ToString();
                switch (item)
                {
                case StepsName.Appel:
                {
                    CallStep action = new CallStep();
                    itemTreeNode.Tag = action;
                    break;
                }

                case StepsName.Attente:
                {
                    WaitStep action = new WaitStep();
                    itemTreeNode.Tag = action;
                    break;
                }

                case StepsName.DTMF:
                {
                    DTMFStep action = new DTMFStep();
                    itemTreeNode.Tag = action;
                    break;
                }

                case StepsName.Raccrochage:
                {
                    HangupStep action = new HangupStep();
                    itemTreeNode.Tag = action;
                    break;
                }

                default: break;
                }
                treeView1.Nodes[0].Nodes.Add(itemTreeNode);
                // treeView1.Nodes[0].Tag
            }
            treeView1.ExpandAll();
            treeView1.MouseClick += new MouseEventHandler(treeView1_MouseClick);
        }
Exemplo n.º 8
0
 public Task Visit(CallStep step)
 {
     return(Task.CompletedTask);
 }
Exemplo n.º 9
0
        private void ExceptionFail <TResult>(ApiResult <TResult> result, Exception ex, CallStep callStep)
        {
            result.ErrorCode = -1;
            result.Error     = ErrorMessageCollection.SystemException;

            callStep.Exception = ex.Message;
            Trace.InnerError   = ex.Message;
        }