Example #1
0
 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;
        }
Example #5
0
 public RemittanceEditHelperModelBuilder()
 {
     Model = new RemittanceEditHelperModel();
 }
Example #6
0
 public abstract void HandleRequest(RemittanceEditHelperModel Model);