public async Task TestMethod1() { var x = await CloverClient.CreateOrderAsync(new List <CloverLineItemModel> { new CloverLineItemModel { Name = "test", PriceInPennies = 12, Printed = true, UnitQuantity = 2 } }, "02c5cac5-06ba-c31b-effd-9286db53d8a0", "HS4VTV8MXDMDM", true); Console.WriteLine(x.Total); }
public async Task <IHttpActionResult> SubmitOrder(OrderRequestModel model) { using (var context = new TasteContext()) { var user = context.Users.FirstOrDefault(u => u.UserId == model.UserId); if (user == null) { return(Ok(GetErrorModel(ApiErrorCode.UserDoesNotExist))); } var restaurant = context.Restaurants.FirstOrDefault(r => r.Id == model.RestaurantId); if (restaurant == null) { return(Ok(GetErrorModel(ApiErrorCode.RestaurantDoesNotExist))); } string orderId; var order = context.Orders.FirstOrDefault(o => !o.Paid && o.RestaurantId == model.RestaurantId && o.UserId == model.UserId); if (order != null) { orderId = order.OrderId; } else { orderId = $"{user.UserId} {DateTime.Now}"; context.Orders.Add(new Order { Datetime = DateTime.Now, OrderId = orderId, Paid = false, RestaurantId = model.RestaurantId, TableName = model.Table.ToString(), UserId = user.UserId, Details = "" }); } var cloverLineItems = new List <CloverLineItemModel>(); foreach (var i in model.Items) { var dish = context.Dishes.FirstOrDefault(d => d.Id == i.DishId); if (dish == null) { continue; } cloverLineItems.Add(new CloverLineItemModel { PriceInPennies = Convert.ToInt32(dish.Price * 100), Name = dish.Name, Printed = true, UnitQuantity = i.Quantity }); context.OrderedDishes.Add(new OrderedDish { DishId = i.DishId, Quantity = i.Quantity, UserId = user.UserId, OrderId = orderId, CuisineId = dish.CuisineId.GetValueOrDefault() }); var pref = context.Preferences.FirstOrDefault(p => p.UserId == user.UserId && p.CuisineId == dish.CuisineId); if (pref != null) { pref.Count += i.Quantity; } else { context.Preferences.Add(new Preference { Count = i.Quantity, CuisineId = dish.CuisineId, UserId = user.UserId }); } } //send printing request to clover if (!restaurant.AccessToken.IsNullOrWhiteSpace()) { await CloverClient.CreateOrderAsync(cloverLineItems, restaurant.AccessToken, restaurant.CloverId, restaurant.IsSandbox); } context.SaveChanges(); return(Ok(orderId)); } }