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)); } }
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()); }