public async Task <bool> AddEntry(MaintenanceEntry entry) { if (entriesCache.Keys.Contains(entry.TransactionId)) { throw new MaintenanceEntryExistsException(entriesCache[entry.TransactionId]); } var entity = new MaintenanceEntryEntity() { Amount = entry.Amount, Block = entry.Block.ToString(), EntryDateTime = DateTime.Now, FlatNumber = entry.FlatNumber, TransactionId = entry.TransactionId }; entity.PartitionKey = partitionKey; entity.RowKey = entry.TransactionId; // upload on azure var operation = TableOperation.InsertOrMerge(entity); var result = await _table.ExecuteAsync(operation); if (result.HttpStatusCode == 204) { if (!entriesCache.TryAdd(entry.TransactionId, result.Result as MaintenanceEntryEntity)) { entriesCache[entry.TransactionId] = result.Result as MaintenanceEntryEntity; } ; } else { Console.WriteLine(result.HttpStatusCode); throw new ApplicationException($"Something went wrong " + $"please retry"); } return(true); }
public MaintenanceEntryExistsException(MaintenanceEntryEntity entry) { MaintenanceEntry = entry; }