public async Task <DateTime> UploadBudgetTemplate(BudgetDescription budgetTemplate) { if (DropboxClient == null) { return(DateTime.MinValue); } DateTime cloudFileModifedDate = DateTime.MinValue; try { using (MemoryStream stream = new MemoryStream()) { var templateJson = JsonConvert.SerializeObject(budgetTemplate); using (var memoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(templateJson))) { var metadata = await DropboxClient.Files.UploadAsync(DROPBOX_TEMPLATE_FILE_PATH, WriteMode.Overwrite.Instance, body : memoryStream); cloudFileModifedDate = metadata.ServerModified; } } } catch (Exception exc) { var msg = exc.Message; } return(cloudFileModifedDate); }
public void UpdateBudgetCategories(List <BudgetCategoryForEdit> updatedCategories) { try { BudgetDescription.UpdateCategories(updatedCategories); budgetPlanned.Setup(BudgetDescription.Categories); _fileManager.WriteCustomTemplate(BudgetDescription); if (!string.IsNullOrEmpty(Helpers.Settings.DropboxAccessToken)) { _budgetSynchronizer.UploadBudgetTemplate(BudgetDescription); } GetCurrentMonthData().UpdateBudgetCategories(updatedCategories); Task.Factory.StartNew(async() => await Save()); BudgetDataChanged?.Invoke(false); } catch (Exception exc) { LogsManager.Instance.WriteLine($"Update template failed: {exc.Message}"); } }