public static RestaurantDocument Haggis() { var order = new RestaurantDocument(GetNextId()); order.Items.Add(new Item("Haggis")); return(order); }
public static RestaurantDocument Kapsalon() { var order = new RestaurantDocument(GetNextId()); order.Items.Add(new Item("Kapsalon")); return(order); }
public static RestaurantDocument FishAndChips() { var order = new RestaurantDocument(GetNextId()); order.Items.Add(new Item("Fish and Chips")); return(order); }
public void CanCreateInstance() { var restaurantDocument = new RestaurantDocument("1"); var sut = CreateSut(JsonConvert.SerializeObject(restaurantDocument)); sut.Should().NotBeNull(); }
public void Handle(RestaurantDocument order) { order.Items.ForEach(x => x.Price = 100); order.Tax = 3.5; order.Total = order.Items.Sum(x => x.Price); Thread.Sleep(500); _publisher.Publish(new OrderPriced(order)); }
public void ItemsGetter_ShouldReturnJson() { Item item = new Item("Pizza"); var restaurantDocument = new RestaurantDocument("1"); restaurantDocument.Items.Add(item); var sut = CreateSut(JsonConvert.SerializeObject(restaurantDocument)); sut.Items[0].Description.Should().Be("Pizza"); }
public void Handle(OrderPriced message) { RestaurantDocument order = message.Order; bool orderHandler = false; while (!orderHandler) { orderHandler = _unpaidOrders.TryAdd(order.Id, order); } _publisher.Publish(new OrderSpiked(order)); }
public void TimeToCookMsGetter_ShouldReturnFromJson() { int expectedTimeToCook = 300; var restaurantDocument = new RestaurantDocument("1") { TimeToCookMs = 300 }; var sut = CreateSut(JsonConvert.SerializeObject(restaurantDocument)); sut.TimeToCookMs.Should().Be(expectedTimeToCook); }
public void TaxGetter_ShouldReturnFromJson() { double expectedTax = 2.00; var restaurantDocument = new RestaurantDocument("1") { Tax = 2.00 }; var sut = CreateSut(JsonConvert.SerializeObject(restaurantDocument)); sut.Tax.Should().Be(expectedTax); }
public void Handle(OrderPlaced message) { RestaurantDocument order1 = message.Order; Console.WriteLine($"{Name} received order"); order1.Ingredients.Add("Tomato"); order1.TimeToCookMs = 500; WaitForMealToBeCooked(); MealsCooked++; _publisher.Publish(new OrderCooked(order1)); }
public void TableNumberGetter_ShouldReturnValueFromJson() { int expectedTableNumber = 10; var restaurantDocument = new RestaurantDocument("1") { TableNumber = expectedTableNumber }; var sut = CreateSut(JsonConvert.SerializeObject(restaurantDocument)); sut.TableNumber.Should().Be(expectedTableNumber); }
public async Task <Result <IPagedList <RestaurantMinimalDto> > > Handle(GetRestaurantsQuery request, CancellationToken cancellationToken) { var restaurants = await _collection.RestaurantsCollection.Find(Filters.EmptyFilter <RestaurantDocument>()) .SortByDescending(RestaurantDocument.GetOrderBy(request.OrderBy)) .Skip(PaginationHelper.Skip(request.PageNumber, request.PageSize)) .Limit(request.PageSize) .Project(Projections.MinimalRestaurantProjection()) .ToListAsync(cancellationToken); return(Result.Ok(restaurants.ToPagedList(request.PageNumber, request.PageSize))); }
public void Handle(OrderSpiked message) { RestaurantDocument order = message.Order; foreach (var item in order.Items) { Console.WriteLine($"{item.Description} ${item.Price}"); } try { foreach (var ingredient in order.Ingredients) { Console.WriteLine($"Ingredients: {ingredient}"); } } catch (Exception ex) { } Console.WriteLine($"Tax: {order.Tax}"); Console.WriteLine($"Total: {order.Total}"); }
public async Task Handle(RestaurantRegisteredEvent notification, CancellationToken cancellationToken) { var restaurant = await _tableDataProvider.GetRestaurant(notification.PhoneNumber); var geographicLocation = await _tableDataProvider.GetGeoGraphicLocation(restaurant.Id); var cuisines = await _tableDataProvider.GetCuisineList(notification.CuisineIds); var categories = await _tableDataProvider.GetCategoryList(notification.CategoryIds); var document = new RestaurantDocument( restaurant.Id, restaurant.Name, restaurant.PhoneNumber, restaurant.LocalityId, restaurant.State, restaurant.OpeningHour, restaurant.ClosingHour, restaurant.SubscriptionType, restaurant.ContractStatus, restaurant.ImageUrl, restaurant.Rating, restaurant.TotalRatingsCount, restaurant.ExpirationDate, restaurant.Description, restaurant.DescriptionEng, address: geographicLocation.Name, latitude: geographicLocation.Latitude, longitude: geographicLocation.Longitude ); cuisines.ForEach(x => document.AddCuisine(x.ToRecord())); categories.ForEach(x => document.AddCategory(x.ToRecord())); await _documentCollection.RestaurantsCollection.InsertOneAsync(document, cancellationToken); }
public void PlaceOrder(RestaurantDocument order) { _publisher.Publish(new OrderPlaced(order, DateTime.Now + TimeSpan.FromMilliseconds(5000))); }
public OrderSpiked(RestaurantDocument order) { Order = order; Id = order.Id; }
public OrderPlaced(RestaurantDocument order, DateTime timeToLive) { Order = order; TimeToLive = timeToLive; Id = order.Id; }