public bool IsValidComparation(IResultData Idata, IResultData IdataToChekAgainst)
        {
            bool       isValid           = false;
            ResultData data              = Idata.GetResultData();
            ResultData dataToChekAgainst = IdataToChekAgainst.GetResultData();

            switch (filtter)
            {
            case COMPARATIONTYPE.LESS:
                if (data.amount < dataToChekAgainst.amount)
                {
                    isValid = true;
                }
                break;

            case COMPARATIONTYPE.LESSOREQUAL:
                if (data.amount <= dataToChekAgainst.amount)
                {
                    isValid = true;
                }
                break;

            case COMPARATIONTYPE.EQUEAL:
                if (data.amount == dataToChekAgainst.amount)
                {
                    isValid = true;
                }
                break;

            case COMPARATIONTYPE.GREATER:
                if (data.amount > dataToChekAgainst.amount)
                {
                    isValid = true;
                }
                break;

            case COMPARATIONTYPE.GREATEROREQUAL:
                if (data.amount >= dataToChekAgainst.amount)
                {
                    isValid = true;
                }
                break;

            case COMPARATIONTYPE.DIFFERENT:
                if (data.amount != dataToChekAgainst.amount)
                {
                    isValid = true;
                }
                break;

            default:
                break;
            }
            return(isValid);
        }
        public ResultData GetResultData()
        {
            int        firstAmount  = firsResultData.GetResultData().amount;
            int        secondAmount = secondResultData.GetResultData().amount;
            int        finalAmount  = 0;
            ResultData data;

            switch (operationType)
            {
            case OPERATIONTYPE.ADITION:
                finalAmount = firstAmount + secondAmount;
                break;

            case OPERATIONTYPE.SUBSTRACTION:
                finalAmount = firstAmount - secondAmount;
                break;

            case OPERATIONTYPE.DIVISION:

                finalAmount = firstAmount / secondAmount;
                break;

            case OPERATIONTYPE.MULTIPLICATION:
                finalAmount = firstAmount * secondAmount;
                break;

            default:
                return(null);
            }
            data = new ResultData(finalAmount);

            if (resultDataOperationFiltter != null)
            {
                data = resultDataOperationFiltter.GetResultDataFiltter(data);
            }

            return(data);
        }