public ReceiptRepresentation GetRepresentation(Order order)
 {
     return new ReceiptRepresentation
                {
                    AmountPaid = order.PaymentInfo.Amount,
                    PaymentDate = XmlConvert.ToString(order.PaymentDateUtc, XmlDateTimeSerializationMode.Utc)
                };
 }
        public void Canceling_unpaid_order_should_remove_it_from_repository()
        {
            var order = new Order(Location.InStore, new[] { new Item(Drink.Espresso, Size.Large, Milk.Semi) });
            var id = _repository.Store(order);

            _sut.Cancel(id.ToString(), new HttpRequestMessage(HttpMethod.Post, "http://restbucks.net/order"));

            Assert.IsNull(_repository.FindById(id));
        }
 public OrderRepresentation GetRepresentation(Order order)
 {
     return new OrderRepresentation
                {
                    Cost = order.CalculateTotal(),
                    Items = order.Items.Select(_itemMapper.GetRepresentation).ToList(),
                    Location = order.Location,
                    Status = order.Status,
                };
 }
        public void Canceling_paid_order_should_return_405()
        {
            var order = new Order(Location.InStore, new[] {new Item(Drink.Espresso, Size.Medium, Milk.Semi)});
            order.Pay(new PaymentInformation(1, "", "", 12, 12));
            var id = _repository.Store(order);

            var responseMessage = _sut.Cancel(id.ToString(), new HttpRequestMessage(HttpMethod.Post, "http://restbucks.net/order"));

            Assert.AreEqual(HttpStatusCode.MethodNotAllowed, responseMessage.StatusCode);
        }
 public int Store(Order order)
 {
     lock (_syncRoot)
     {
         int key = _identity;
         _identity++;
         order.Id = key;
         _orders[key] = order;
         _expirationQueue.Add(order);
         RemoveExpiredIfNecessary();
         return key;
     }
 }