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);
        }
Пример #2
0
 public MaintenanceEntryExistsException(MaintenanceEntryEntity entry)
 {
     MaintenanceEntry = entry;
 }