public async Task <IRealizeOrderPropositionResponse> RealizeOrderProposition(IRealizeOrderPropositionRequest request) { try { IGetOrderPropositionByIdRequest getOrderPropositionByIdRequest = new GetOrderPropositionByIdRequest(request.OrderPropositionId); IGetOrderPropositionResponse getOrderPropositionResponse = await _orderPropositionsProvider.GetOrderPropositionById(getOrderPropositionByIdRequest); if (getOrderPropositionResponse.Result == OrderPropositionsProvideResultEnum.Exception || getOrderPropositionResponse.Result == OrderPropositionsProvideResultEnum.Forbidden) { return(new RealizeOrderPropositionResponse(RealizeOrderPropositionResult.Exception)); } if (getOrderPropositionResponse.Result == OrderPropositionsProvideResultEnum.NotFound) { return(new RealizeOrderPropositionResponse(RealizeOrderPropositionResult.NotFound)); } OrderProposition orderProposition = getOrderPropositionResponse.OrderProposition; if (request.UserId != orderProposition.CreatorID) { return(new RealizeOrderPropositionResponse(RealizeOrderPropositionResult.Forbidden)); } ICreateOrderResponse createOrderResponse = await _orderCreator.CreateOrder(new CreateOrderRequest(request.OrderPropositionId)); return(createOrderResponse.Result switch { CreateOrderResult.Success => new RealizeOrderPropositionResponse(createOrderResponse.Order), CreateOrderResult.Exception => new RealizeOrderPropositionResponse(RealizeOrderPropositionResult.Exception), CreateOrderResult.CreatedNotFound => new RealizeOrderPropositionResponse(RealizeOrderPropositionResult.Exception), _ => throw new ArgumentOutOfRangeException() }); }
public OrderPropositionApiModel ConvertOrderProposition(OrderProposition orderProposition) { if (orderProposition == null) { return(null); } return(new OrderPropositionApiModel { Id = orderProposition.Id, CreationDate = orderProposition.CreationDate, CreatorID = orderProposition.CreatorID, RestaurantId = orderProposition.RestaurantId, TimeToOrdering = orderProposition.TimeToOrdering, OrderingStopped = orderProposition.OrderingStopped }); }
public async Task <IGetOrderPropositionResponse> GetOrderPropositionById(IGetOrderPropositionByIdRequest request) { try { OrderProposition orderProposition = await _orderPropositionRepository.GetOrderPropositionById(request.OrderPropositionId); if (orderProposition == null) { return(new GetOrderPropositionResponse(OrderPropositionsProvideResultEnum.NotFound)); } return(new GetOrderPropositionResponse(orderProposition)); } catch (Exception exception) { _logger.Log(exception); return(new GetOrderPropositionResponse(OrderPropositionsProvideResultEnum.Exception)); } }
public async Task <OrderPropositionWithResultCode> CreateOrderProposition(DateTime timeToOrdering, Guid userId, Guid restaurantId) { DataSet dataSet = await _storedProceduresExecutor.ExecuteQuery(StoredProceduresNames.CreateOrderProposition, new List <SqlParameter>(3) { new SqlParameter("@userId", userId), new SqlParameter("@timeToOrdering", timeToOrdering), new SqlParameter("@restaurantId", restaurantId) }); int resultCode = (int)dataSet.Tables[0].Rows[0][0]; OrderPropositionCreateSqlResult result = (OrderPropositionCreateSqlResult)resultCode; OrderProposition orderProposition = null; if (result == OrderPropositionCreateSqlResult.Success) { orderProposition = _dataRowToObjectMapper.ConvertOrderProposition(dataSet.Tables[1].Rows[0]); } return(new OrderPropositionWithResultCode(orderProposition, result)); }
public OrderPropositionCreationResponse(OrderProposition orderProposition) { OrderProposition = orderProposition; Result = OrderPropositionCreationResultEnum.Success; }
public OrderPropositionWithResultCode(OrderProposition orderProposition, OrderPropositionCreateSqlResult resultCode) { OrderProposition = orderProposition; ResultCode = resultCode; }
public GetOrderPropositionResponse(OrderProposition orderProposition) { OrderProposition = orderProposition; Result = OrderPropositionsProvideResultEnum.Success; }