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); } }
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(); }
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)); }
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); }
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)); }
public async Task <string> GetTrolleyTotal(TrolleyEntity trolleyEntity) { return(await _trolleyRepository.GetTrolleyTotal(trolleyEntity).ConfigureAwait(false)); }