Example #1
0
 public override async Task <Empty> OnTopicEvent(CloudEventEnvelope request, ServerCallContext context)
 {
     if (request.Topic.Equals("Storage.Reduce"))
     {
         StorageReduceData storageReduceData = StorageReduceData.Parser.ParseJson(request.Data.Value.ToStringUtf8());
         Console.WriteLine("ProductID:" + storageReduceData.ProductID);
         Console.WriteLine("Amount:" + storageReduceData.Amount);
         await HandlerStorageReduce(storageReduceData);
     }
     return(new Empty());
 }
Example #2
0
        private async Task HandlerStorageReduce(StorageReduceData storageReduceData)
        {
            Guid    productID     = Guid.Parse(storageReduceData.ProductID);
            Storage storageFromDb = await _storageContext.Storage.FirstOrDefaultAsync(q => q.ProductID.Equals(productID));

            if (storageFromDb == null)
            {
                return;
            }

            if (storageFromDb.Amount < storageReduceData.Amount)
            {
                return;
            }

            storageFromDb.Amount -= storageReduceData.Amount;
            Console.WriteLine(storageFromDb.Amount);
            await _storageContext.SaveChangesAsync();
        }