public bool PushDataToXero(UsageManagementRequest request) { bool result = true; if (IsPush(request.DateTo, request.StoreId)) { //List<UsageManagementModel> lstCalResult = CalUsageManagementwithoutDetail(request); List <UsageManagementModel> lstCalResult = GetUsageManagement(request); //lstCalResult.Add(new UsageManagementModel() //{ // Code = "008", // Usage = 2 //}); try { IngredientSyncRequestDTO model = new IngredientSyncRequestDTO(); model.AppRegistrationId = Commons.XeroRegistrationAppId; model.AccessToken = Commons.XeroAccessToken; model.StoreId = request.StoreId; var lstIngredient = _ingredientFactory.GetIngredient(null); if (lstIngredient != null && lstIngredient.Count > 0) { lstIngredient = lstIngredient.Where(ww => !string.IsNullOrEmpty(ww.XeroId)).ToList(); if (lstIngredient != null && lstIngredient.Count > 0) { foreach (var item in lstCalResult) { var obj = lstIngredient.Where(ww => ww.Code.ToUpper().Equals(item.Code.ToUpper())).FirstOrDefault(); if (obj != null) { model.Items.Add(new IngredientUsageSyncItem() { Id = obj.XeroId, Code = obj.Code, QuantityUsed = (decimal)item.Usage }); } } if (model.Items != null && model.Items.Count > 0) { result = XeroFactory.SyncIngredientsUsageToXero(request.DateTo, request.StoreId, model).Result; } } } } catch (Exception ex) { result = false; _logger.Error(ex); } } return(result); }
public bool PushDataToXero(UsageManagementRequest request, List <UsageManagementModel> lstUsages) { bool result = true; //if (IsPush(request.DateTo, request.StoreId)) //{ //List<UsageManagementModel> lstCalResult = CalUsageManagementwithoutDetail(request); try { IngredientSyncRequestDTO model = new IngredientSyncRequestDTO(); model.AppRegistrationId = Commons.XeroRegistrationAppId; model.AccessToken = Commons.XeroAccessToken; model.StoreId = request.StoreId; var lstIngredient = XeroFactory.GetIngredientsFromXero(new Models.Xero.XeroBaseModel() { AppRegistrationId = Commons.XeroRegistrationAppId, AccessToken = Commons.XeroAccessToken, StoreId = request.StoreId }).Result; if (lstIngredient.Success) { foreach (var item in lstUsages) { var obj = lstIngredient.Data.Items.Where(ww => ww.Code.ToUpper().Equals(item.Code.ToUpper())).FirstOrDefault(); if (obj != null) { model.Items.Add(new IngredientUsageSyncItem() { Id = obj.ID, Code = obj.Code, QuantityUsed = (decimal)item.Usage }); } } if (model.Items != null && model.Items.Count > 0) { NSLog.Logger.Info("PushDataToXero Data", model.Items); result = XeroFactory.SyncIngredientsUsageToXero(request.DateTo, request.StoreId, model).Result; } } } catch (Exception ex) { result = false; _logger.Error(ex); } //} return(result); }
public static async Task <bool> SyncIngredientsUsageToXero(DateTime dTo, string storeId, IngredientSyncRequestDTO model) { using (var client = new HttpClient()) { client.BaseAddress = new Uri(Commons.XeroURL); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response; try { response = await client.PostAsJsonAsync(Commons.XeroApi_UpdateInventory, model).ConfigureAwait(false); if (response.IsSuccessStatusCode) { //log NSLog.Logger.Info("SyncIngredientsUsageToXero Store", storeId); NSLog.Logger.Info("SyncIngredientsUsageToXero Data", model); _baseFactory.InsertUsageXeroTrackLog(dTo, storeId); } return(response.IsSuccessStatusCode); } catch (Exception e) { _logger.Error(e); return(false); } } }