public void GetPartsOfKey_EntityKeyNotNull_Success(string EntityRowId) { var entityId = new AzureTableKey() { RowKey = EntityRowId }; var expectedResult = new string[] { "a", "b", "c" }; Assert.AreEqual(expectedResult, Models.ModelHelper.GetPartsOfKey(entityId)); }
private async Task <AzureTableWineBottle> GetAzureTableWineBottle(AzureTableKey BottleId) { var wineBottleRowKey = BottleId.RowKey.Substring(BottleId.RowKey.IndexOf("-") + 1); wineBottleRowKey = wineBottleRowKey.Substring(0, wineBottleRowKey.LastIndexOf("-")); return((await TableClient.GetTableReference("WineBottle") .ExecuteQueryAsync( new TableQuery <AzureTableWineBottle>().Where( TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, wineBottleRowKey))) ).FirstOrDefault()); }
public Task <AzureTableCellarModel> GetCellarRow(AzureTableKey Key) { throw new System.NotImplementedException(); }
public async Task <BottleDetailModel> GetCellarBottleDetails(AzureTableKey BottleId) { var bottle = new BottleDetailModel(); bottle.EntityKeys = new AzureTableEntityKeys() { BottleId = BottleId }; var bottleDetailQuery = new TableQuery <AzureTableBottleModel>().Where( TableQuery.CombineFilters( TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, BottleId.RowKey), TableOperators.And, TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, BottleId.PartitionKey))); var aztBottle = (await TableClient.GetTableReference("Bottle").ExecuteQueryAsync(bottleDetailQuery)).FirstOrDefault(); if (aztBottle != null) { bottle.BarCode = aztBottle.BarCode; bottle.PricePaid = aztBottle.PricePaid; bottle.CellarDate = aztBottle.CellarDate; } else { throw new NullReferenceException(); } var aztWineBottle = await GetAzureTableWineBottle(BottleId); if (aztBottle != null && aztWineBottle != null) { bottle.EntityKeys.WineBottleId = new AzureTableKey() { PartitionKey = aztWineBottle.PartitionKey, RowKey = aztWineBottle.RowKey, TimeStamp = aztWineBottle.Timestamp }; bottle.Size = aztWineBottle.Size; bottle.RetailPrice = aztWineBottle.RetailPrice; bottle.UPC = aztWineBottle.UPC; bottle.QuantityProduced = aztWineBottle.QuantityProduced.ToString(); bottle.BottleNumber = aztWineBottle.BottleNumber.ToString(); } var color = string.Empty; if (bottle.EntityKeys.WineBottleId != null) { var aztWine = await GetAzureTableWine(aztWineBottle.PartitionKey, aztWineBottle.RowKey); if (aztWine != null) { bottle.EntityKeys.WineId = new AzureTableKey() { PartitionKey = aztWine.PartitionKey, RowKey = aztWine.RowKey, TimeStamp = aztWine.Timestamp }; bottle.WineName = aztWine.Name;; bottle.WineProductLine = aztWine.ProductLine; bottle.Vintage = aztWine.Vintage; bottle.Color = color = aztWine.Color; var aztWineSpec = await GetAzureTableWineSpec(aztWine.PartitionKey, aztWine.RowKey); if (aztWineSpec != null) { bottle.WineVarietalType = aztWineSpec.VarietalType; bottle.Color = aztWineSpec.isRose ? "Rose" : bottle.Color; bottle.isDessert = aztWineSpec.isDessert; bottle.isEstate = aztWineSpec.isEstate; bottle.isRose = aztWineSpec.isRose; bottle.ResSugar = (aztWineSpec.ResSugar / 100).ToString("P"); bottle.AlcPercent = (aztWineSpec.AlcPercent / 100).ToString("P"); bottle.WineAppellation = aztWineSpec.Appellation; } } } if (bottle.EntityKeys.WineId != null) { var aztWinery = await GetAzureTableWinery(bottle.EntityKeys.WineId.PartitionKey, bottle.EntityKeys.WineId.RowKey); if (aztWinery != null) { bottle.EntityKeys.WineryId = new AzureTableKey() { PartitionKey = aztWinery.PartitionKey, RowKey = aztWinery.RowKey, TimeStamp = aztWinery.Timestamp }; bottle.WineryName = aztWinery.Name; bottle.WineryRegion = aztWinery.Region; bottle.WineryAddress = aztWinery.Address; bottle.WineryGeoCoordinates = aztWinery.GeoCoordinates; } } var wineVarietalDetailsList = new List <WineVarietalDetailModel>(); if (!string.IsNullOrEmpty(color) && bottle.EntityKeys.WineId != null) { //check for varietal info var aztWineVarietals = await GetBottleDetailWineVarietals(color, bottle.EntityKeys.WineId.RowKey); foreach (var aztWineVarietal in aztWineVarietals) { var aztVarietalKey = aztWineVarietal.RowKey.Substring(aztWineVarietal.RowKey.LastIndexOf("-") + 1); var wineVarietalDetail = new WineVarietalDetailModel() { WineVarietalId = new AzureTableKey() { PartitionKey = aztWineVarietal.PartitionKey, RowKey = aztWineVarietal.RowKey, TimeStamp = aztWineVarietal.Timestamp }, Percentage = aztWineVarietal.Percentage, VarietalName = await GetAzurTableVarietalName(aztWineVarietal.PartitionKey, aztVarietalKey) }; wineVarietalDetailsList.Add(wineVarietalDetail); } } if (wineVarietalDetailsList.Count > 0) { foreach (var item in wineVarietalDetailsList) { item.VineyardDetail = await GetVinyardVarietalDetail(item.WineVarietalId); } bottle.VarietalDetails = wineVarietalDetailsList.AsEnumerable(); } return(bottle); }
private async Task <VineyardVarietalDetail> GetVinyardVarietalDetail(AzureTableKey WineVarietalId) { var vineyardVarietalDetail = new VineyardVarietalDetail(); var aztWineVarietalVineyardVariatleTable = await TableClient.GetTableReference("WineVarietalVineyardVarietal").ExecuteQueryAsync( new TableQuery <AzureTableWineVarietalVineyardVarietalModel>().Where( TableQuery.CombineFilters( TableQuery.CombineFilters( TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.GreaterThanOrEqual, $"{WineVarietalId.RowKey}-"), TableOperators.And, TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.LessThan, $"{WineVarietalId.RowKey}-~") ), TableOperators.And, TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, WineVarietalId.PartitionKey) ))); if (aztWineVarietalVineyardVariatleTable.Count > 0) { vineyardVarietalDetail.VineyardPercentage = (aztWineVarietalVineyardVariatleTable[0].VineyardPercentage / 100).ToString("P"); } else { return(vineyardVarietalDetail); } var aztVineyardVarietalTable = await TableClient.GetTableReference("VineyardVarietal").ExecuteQueryAsync( new TableQuery <AzureTableVineyardVarietalModel>().Where( TableQuery.CombineFilters( aztWineVarietalVineyardVariatleTable[0] .RowKey.Replace($"{WineVarietalId.RowKey}-", string.Empty), TableOperators.And, TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, WineVarietalId.PartitionKey)))); if (aztVineyardVarietalTable.Count > 0) { vineyardVarietalDetail.CloneName = aztVineyardVarietalTable[0].CloneName; } else { return(vineyardVarietalDetail); } var vineyardEqualCond = TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, aztVineyardVarietalTable[0].RowKey.Substring(0, aztVineyardVarietalTable[0].RowKey.IndexOf("-"))); var vineyardQuery = new TableQuery <AzureTableVineyardModel>().Where(vineyardEqualCond); var aztVineyard = await TableClient.GetTableReference("Vineyard").ExecuteQueryAsync( new TableQuery <AzureTableVineyardModel>().Where( TableQuery.CombineFilters( TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, aztVineyardVarietalTable[0].RowKey.Substring(0, aztVineyardVarietalTable[0].RowKey.IndexOf("-"))), TableOperators.And, TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, WineVarietalId.PartitionKey)))); if (aztVineyard.Count > 0) { vineyardVarietalDetail.VineyardName = aztVineyard[0].Name; vineyardVarietalDetail.Region = aztVineyard[0].Region; vineyardVarietalDetail.VineyardAppellation = aztVineyard[0].Appellation; vineyardVarietalDetail.Address = aztVineyard[0].Address; vineyardVarietalDetail.PhoneNumber = aztVineyard[0].PhoneNumber; vineyardVarietalDetail.Email = aztVineyard[0].Email; vineyardVarietalDetail.GeoCoordinates = aztVineyard[0].GeoCoordinates; } return(vineyardVarietalDetail); }
private async Task <IEnumerable <AzureTableBottleModel> > GetAzureTableBottlesInCellar(AzureTableKey CellarId) { return(await TableClient.GetTableReference("Bottle").ExecuteQueryAsync( new TableQuery <AzureTableBottleModel>().Where( TableQuery.CombineFilters( TableQuery.CombineFilters( TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.GreaterThanOrEqual, $"{CellarId.RowKey}-"), TableOperators.And, TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.LessThan, $"{CellarId.RowKey}~")), TableOperators.And, TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, $"{CellarId.PartitionKey}"))))); }
private async Task <int> GetCellarBottleCount(AzureTableKey CellarId) { return((await GetAzureTableBottlesInCellar(CellarId)).Count()); }
public async Task <IEnumerable <BottleBriefDataModel> > GetCellarSummaryBottles(AzureTableKey CellarId) { var Bottles = new List <BottleBriefDataModel>(); var aztBottles = await GetAzureTableBottlesInCellar(CellarId); foreach (var aztBottle in aztBottles) { var bottle = new BottleBriefDataModel() { BottleId = new AzureTableKey { PartitionKey = aztBottle.PartitionKey, RowKey = aztBottle.RowKey, TimeStamp = aztBottle.Timestamp }, BarCode = aztBottle.BarCode, PricePaid = aztBottle.PricePaid }; var aztWineBottle = await GetAzureTableWineBottle(bottle.BottleId); if (aztWineBottle != null) { bottle.CountryOfOrigin = aztWineBottle.PartitionKey; bottle.Size = aztWineBottle.Size; bottle.RetailPrice = aztWineBottle.RetailPrice; var aztWine = await GetAzureTableWine(bottle.CountryOfOrigin, aztWineBottle.RowKey); if (aztWine != null) { bottle.WineName = aztWine.Name; bottle.ProductLine = aztWine.ProductLine; bottle.Vintage = aztWine.Vintage; bottle.Color = aztWine.Color; var aztWineSpec = await GetAzureTableWineSpec(bottle.CountryOfOrigin, aztWine.RowKey); if (aztWineSpec != null) { bottle.VarietalType = aztWineSpec.VarietalType; bottle.Color = aztWineSpec.isRose ? "Rose" : bottle.Color; bottle.IsDesert = aztWineSpec.isDessert; var aztWinery = await GetAzureTableWinery(bottle.CountryOfOrigin, aztWineSpec.RowKey); if (aztWinery != null) { bottle.WineryName = aztWinery.Name; } } } } Bottles.Add(bottle); } return(Bottles.AsEnumerable()); }