private async Task <(bool, string)> CheckEditScore(RemittanceEditHelperModel model) { try { RemittanceEditBaseHandler handler = new RemittanceEditScoreHanlder(); handler.HandleRequest(model); return(true, null); } catch (RemittanceException re) { return(false, re.Message); } }
public override void HandleRequest(RemittanceEditHelperModel Model) { if (Model.IsScore1Edit) { ScoreEdit(Model, IsFirstScore: true); } if (Model.IsScore2Edit) { ScoreEdit(Model, IsFirstScore: false); } Successor.HandleRequest(Model); }
private static void ScoreEdit(RemittanceEditHelperModel Model, bool IsFirstScore) { var NewScore = IsFirstScore ? Model.NewScore1 : Model.NewScore2; var OldScore = IsFirstScore ? Model.OldScore1 : Model.OldScore2; if ((NewScore.Balance < Model.NewTransactionSum) && IsFirstScore && !Model.IsSumEdit) { throw new RemittanceException($"На счету {NewScore.Code} недостаточно денег."); } if ((OldScore.Balance < Model.NewTransactionSum) && !IsFirstScore && !Model.IsSumEdit) { throw new RemittanceException($"На счету {OldScore.Code} недостаточно денег."); } int Sum = IsFirstScore ? Model.NewTransactionSum : -Model.NewTransactionSum; OldScore.Balance += Sum; NewScore.Balance -= Sum; }
public override void HandleRequest(RemittanceEditHelperModel Model) { if (!Model.IsSumEdit) { return; } var TransactionDif = Model.GetTransactionDifNew_Old; if (Model.NewScore1.Balance < TransactionDif) { throw new RemittanceException($"на счету {Model.NewScore2.Code} недостаточно денег!"); } if (Model.NewScore2.Balance < Math.Abs(TransactionDif) && TransactionDif < 0) { throw new RemittanceException($"на счету {Model.NewScore2.Code} недостаточно денег!"); } Model.NewScore1.Balance -= TransactionDif; Model.NewScore2.Balance += TransactionDif; }
public RemittanceEditHelperModelBuilder() { Model = new RemittanceEditHelperModel(); }
public abstract void HandleRequest(RemittanceEditHelperModel Model);