Example #1
0
        internal OperationResult <CurrentBalanceDto> Execute(SellOrdersRequestDto request)
        {
            currentBalance = CurrentBalanceDto.ConvertFromInitialBalance(request.InitialBalance);
            if (!request.OrderList.Any())
            {
                return(new OperationResult <CurrentBalanceDto>(currentBalance));
            }
            messageErrorList = new List <ErrorDto>();
            var orderList = request.OrderList.OrderBy(x => x.TimeStamp).ToList();

            orderList.ForEach(x =>
            {
                switch (x.Operation)
                {
                case "SELL":
                    SellOperation(x);
                    break;

                case "BUY":
                    BuyOperation(x);
                    break;
                }
            });
            return(new OperationResult <CurrentBalanceDto>(currentBalance, messageErrorList, true));
        }
Example #2
0
 public static SellOrderResponseDto Build(IEnumerable <ErrorDto> errorList, CurrentBalanceDto currentBalance)
 {
     return(new SellOrderResponseDto()
     {
         CurrentBalance = currentBalance,
         Success = errorList == null || !errorList.Any() || !errorList.Any(x => x.Type == 1),
         BusinessErrorList = errorList ?? new List <ErrorDto>()
     });
 }