public async Task <IHttpActionResult> SyncWithClover() { using (var context = new TasteContext()) { var restaurants = context.Restaurants.ToList(); foreach (var restaurant in restaurants) { var restaurantId = restaurant.Id; var result = await CloverClient.GetItemsAsync(restaurant.AccessToken, restaurant.CloverId, restaurant.IsSandbox); var existingMenu = context.Dishes.Where(d => !d.Deleted && d.RestaurantId == restaurantId).ToList(); var ids = existingMenu.Select(d => d.CloverId).ToList(); ids.RemoveAll(s => s == null); if (result != null) { var newMenu = result.Select(r => r.Id).ToList(); var itemsToBeDeleted = ids.Where(m => !newMenu.Contains(m)).ToList(); var itemsToBeAdded = newMenu.Where(m => !ids.Contains(m)).ToList(); foreach (var i in itemsToBeAdded) { var r = result.First(re => re.Id == i); context.Dishes.Add(new Dish { Name = r.Name, Price = r.Price / 100.0, CuisineId = -1, RestaurantId = restaurantId, CloverId = r.Id, Deleted = false }); } foreach (var i in itemsToBeDeleted) { var r = existingMenu.First(re => re.CloverId == i); context.Dishes.Remove(r); } context.SaveChanges(); } else { // nothing } } } return(Ok("Success")); }
public async Task TestMethod2() { var x = await CloverClient.GetItemsAsync("02c5cac5-06ba-c31b-effd-9286db53d8a0", "HS4VTV8MXDMDM", true); Console.WriteLine(x.First().Name); }