Esempio n. 1
0
        internal string GetItemsInTrolley(string storageConnectionString, string sessionId)
        {
            CloudStorageAccount storage     = CloudStorageAccount.Parse(storageConnectionString);
            CloudTableClient    tableClient = storage.CreateCloudTableClient();
            CloudTable          table       = tableClient.GetTableReference("trollies");

            table.CreateIfNotExistsAsync().Wait();

            TableOperation retrieveOperation = TableOperation.Retrieve <TrolleyEntity>(sessionId, sessionId);
            var            resultTask        = table.ExecuteAsync(retrieveOperation);

            resultTask.Wait();

            if (resultTask.Result.Result == null)
            {
                var entity = new TrolleyEntity(sessionId);
                entity.ContentIds   = "";
                entity.ContentItems = "0";

                TableOperation createOperation = TableOperation.InsertOrReplace(entity);
                table.ExecuteAsync(createOperation).Wait();

                return("0;");
            }
            else
            {
                var entity = (TrolleyEntity)resultTask.Result.Result;
                return(entity.ContentItems + ";" + entity.ContentIds);
            }
        }
Esempio n. 2
0
        internal void EmptyTrolley(string storageConnectionString, string sessionId)
        {
            CloudStorageAccount storage     = CloudStorageAccount.Parse(storageConnectionString);
            CloudTableClient    tableClient = storage.CreateCloudTableClient();
            CloudTable          table       = tableClient.GetTableReference("trollies");

            table.CreateIfNotExistsAsync().Wait();

            TableOperation retrieveOperation = TableOperation.Retrieve <TrolleyEntity>(sessionId, sessionId);
            var            resultTask        = table.ExecuteAsync(retrieveOperation);

            resultTask.Wait();

            var trolley = new TrolleyEntity(sessionId);

            if (resultTask.Result.Result != null)
            {
                trolley = (TrolleyEntity)resultTask.Result.Result;
            }

            trolley.ContentIds   = "";
            trolley.ContentItems = "0";

            TableOperation insertOrReplaceOperation = TableOperation.InsertOrReplace(trolley);

            table.ExecuteAsync(insertOrReplaceOperation).Wait();
        }
Esempio n. 3
0
        internal int ChangeItemInTrolley(string storageConnectionString, string sessionId, string contentItem)
        {
            CloudStorageAccount storage     = CloudStorageAccount.Parse(storageConnectionString);
            CloudTableClient    tableClient = storage.CreateCloudTableClient();
            CloudTable          table       = tableClient.GetTableReference("trollies");

            table.CreateIfNotExistsAsync().Wait();

            TableOperation retrieveOperation = TableOperation.Retrieve <TrolleyEntity>(sessionId, sessionId);
            var            resultTask        = table.ExecuteAsync(retrieveOperation);

            resultTask.Wait();

            var trolley = new TrolleyEntity(sessionId);

            if (resultTask.Result.Result != null)
            {
                trolley = (TrolleyEntity)resultTask.Result.Result;
            }

            if (contentItem.StartsWith("-", StringComparison.InvariantCultureIgnoreCase))
            {
                contentItem = contentItem.Substring(1);
                var content    = trolley.ContentIds.Split(",");
                var newContent = "";

                bool found = false;
                foreach (var trolleyItem in content)
                {
                    if (!found)
                    {
                        if (trolleyItem.Equals(contentItem))
                        {
                            found = true;
                            continue;
                        }
                    }

                    newContent = newContent + trolleyItem + ",";
                }

                trolley.ContentIds   = newContent;
                trolley.ContentItems = (int.Parse(trolley.ContentItems) - 1).ToString();
            }
            else
            {
                trolley.ContentIds   = trolley.ContentIds + contentItem + ",";
                trolley.ContentItems = (int.Parse(trolley.ContentItems) + 1).ToString();
            }

            TableOperation insertOrReplaceOperation = TableOperation.InsertOrReplace(trolley);

            table.ExecuteAsync(insertOrReplaceOperation).Wait();

            return(int.Parse(trolley.ContentItems));
        }
Esempio n. 4
0
        public void GetTrolleyTotal_ShouldGetTrolleyTotalForTrolleyEntity()
        {
            var entity = new TrolleyEntity
            {
                Products = new List <TrolleyProductEntity>
                {
                    new TrolleyProductEntity {
                        Name = "Foo Product", Price = 1
                    }
                },
                Quantities = new List <TrolleyProductQuantityEntity>
                {
                    new TrolleyProductQuantityEntity {
                        Name = "Foo Product Quantity", Quantity = 1
                    }
                },
                Specials = new List <TrolleySpecialEntity>
                {
                    new TrolleySpecialEntity {
                        Quantities = new List <TrolleyProductQuantityEntity>
                        {
                            new TrolleyProductQuantityEntity {
                                Name = "Foo Special Product Quantity", Quantity = 1
                            }
                        },
                        Total = 1
                    }
                }
            };
            var expectedTotal = "123";

            _mockTrolleyRepository.Setup(s => s.GetTrolleyTotal(entity)).ReturnsAsync(expectedTotal);

            var result = _sut.GetTrolleyTotal(entity).Result;

            Assert.Equal(expectedTotal, result);
        }
Esempio n. 5
0
        public async Task <string> GetTrolleyTotal(TrolleyEntity trolleyEntity)
        {
            _logger.LogInformation($"GetTrolleyTotal: Getting trolley total from {_trolleyTotalUrl}");

            return(await _httpClientHelper.PostAsync <TrolleyEntity, string>(_trolleyTotalUrl, trolleyEntity).ConfigureAwait(false));
        }
Esempio n. 6
0
 public async Task <string> GetTrolleyTotal(TrolleyEntity trolleyEntity)
 {
     return(await _trolleyRepository.GetTrolleyTotal(trolleyEntity).ConfigureAwait(false));
 }