示例#1
0
        public IResult Execute(T obj)
        {
            try
            {
                IResult resultCurrent = null;

                try
                {
                    resultCurrent = ExecuteTemplate(obj);
                }
                catch (Exception ex)
                {
                    return(new Result(EnumResultBL.ERROR_UNEXPECTED_EXCEPTION, "STEP::" +
                                      this.GetType().ToString() +
                                      " => " +
                                      Description() +
                                      " :" +
                                      ex.Message));
                }

                if (resultCurrent == null)
                {
                    return(new Result(EnumResultBL.ERROR_BAD_IMPLEMENTATION, this.GetType().ToString()));
                }

                if (resultCurrent.ComputeResult().IsError() || Next == null)
                {
                    return(resultCurrent);
                }

                if (resultCurrent.ComputeResult().IsOk() && IsOkAndFinish)
                {
                    return(resultCurrent);
                }

                return(Next.Execute(obj));
            }
            catch (Exception ex)
            {
                return(new Result(EnumResultBL.ERROR_UNEXPECTED_EXCEPTION, Next?.Description() + " :" + ex.Message));
            }
        }
示例#2
0
        public IResult Execute(T obj)
        {
            IResult resultCurrent = null;

            if (Next == null)
            {
                return(Result.Ok);
            }

            try
            {
                using (IUnitOfWork trans = _currentUoW.CreateUoW())
                {
                    resultCurrent = Next.Execute(obj);

                    if (resultCurrent.ComputeResult().IsOk())
                    {
                        int resNum = trans.SaveChanges();
                    }
                    else
                    {
                        try
                        {
                            trans.Rollback();
                        }
                        catch (Exception)
                        { }
                        return(resultCurrent);
                    }
                }


                return(Result.Ok);
            }
            catch (Exception ex)
            {
                return(new Result(EnumResultBL.ERROR_UNEXPECTED_EXCEPTION, "STEP::" +
                                  this.GetType().ToString() +
                                  " => " +
                                  Description() +
                                  " :" +
                                  ex.Message + "." + ex.InnerException ?? ex.InnerException.Message));
            }
        }
 public void Finish <T>(T pData, IStep <T> pStep, IResult res)
 {
     Container.SetValueFinish(SerializeString(pData), res.ComputeResult().IsOk(), res.ComputeResult().IsWarning(), res.Message());
 }