示例#1
0
        public async Task <WishlistPresent> GetPresent(string partitionKey, string rowKey)
        {
            try
            {
                TableOperation retrieveOperation = TableOperation.Retrieve <WishlistPresent>(partitionKey, rowKey);
                TableResult    result            = await presentListTable.ExecuteAsync(retrieveOperation);

                WishlistPresent presentItem = result.Result as WishlistPresent;
                if (presentItem != null)
                {
                    Console.WriteLine("\t{0}\t{1}\t{2}\t{3}", presentItem.PartitionKey, presentItem.RowKey, presentItem.Title, presentItem.Description);
                }

                if (result.RequestCharge.HasValue)
                {
                    Console.WriteLine("Request Charge of Retrieve Operation: " + result.RequestCharge);
                }

                return(presentItem);
            }
            catch (StorageException e)
            {
                Console.WriteLine(e.Message);
                throw;
            }
        }
示例#2
0
        public async Task <WishlistPresent> InsertOrMergePresentAsync(WishlistPresent entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException("entity");
            }

            try
            {
                // Create the InsertOrReplace table operation
                TableOperation insertOrMergeOperation = TableOperation.InsertOrMerge(entity);

                // Execute the operation.
                TableResult result = await this.presentListTable.ExecuteAsync(insertOrMergeOperation);

                WishlistPresent insertedPresent = result.Result as WishlistPresent;

                if (result.RequestCharge.HasValue)
                {
                    Console.WriteLine("Request Charge of InsertOrMerge Operation: " + result.RequestCharge);
                }

                return(insertedPresent);
            }
            catch (StorageException e)
            {
                Console.WriteLine(e.Message);
                throw;
            }
        }
示例#3
0
        public async Task <bool> UpdatePresentAsync([FromBody] WishlistPresent updatedPresent, string id)
        {
            var purchasedPresent = updatedPresent.Purchase();
            //updatedPresent.RemainingAmount = updatedPresent.RemainingAmount - updatedPresent.NewlyBought;
            var result = await _presentService.InsertOrMergePresentAsync(purchasedPresent);

            var successEmail = await _mailService.SendEmail(purchasedPresent);

            return(result != null);
        }
示例#4
0
        public async Task <WishlistPresent> CalculateValues(WishlistPresent present)
        {
            present.RemainingAmount = present.RequiredAmount;
            var purchasedPresents = await _presentService.GetAllPurchasesPartition(present.PartitionKey + present.RowKey);

            if (purchasedPresents.Any())
            {
                var purchasedSum = purchasedPresents.Sum(pp => pp.NewlyBought);
                present.RemainingAmount = present.RequiredAmount - purchasedSum >= 0 ? present.RequiredAmount - purchasedSum : 0;
            }
            return(present);
        }