public async Task <OpenFoodFactsDatasCategory> GetByCategoryName(string name) { var category = await _oFFCategoryRepository.GetByName(name); if (category != null) { var dataCategories = await base.Get(); return(dataCategories .Where(datasCategory => datasCategory.CategoryId == category.Id) .FirstOrDefault()); } return(null); }
protected override void ExecuteRequest(HttpContext context) { if (Request == null) { context.Response.StatusCode = StatusCodes.Status400BadRequest; return; } OpenFoodFactsData openFoodFactsData = _OFFDataRepository.GetByBarcode(_barcode).GetAwaiter().GetResult(); if (openFoodFactsData != null) { string openFoodFactsDataJson = JsonSerializer.Serialize(openFoodFactsData); context.Response.StatusCode = StatusCodes.Status200OK; context.Response.WriteAsync(openFoodFactsDataJson).GetAwaiter().GetResult(); } else { ProductData productData; (openFoodFactsData, productData) = _OFFDataRepository.InsertFromBarcode(_barcode).GetAwaiter().GetResult(); if (openFoodFactsData != null && productData != null) { string[] categories = productData.Categories.Split(", "); foreach (string category in categories) { if (_OFFCategoryRepository.GetByName(category).GetAwaiter().GetResult() == null) { OpenFoodFactsCategory openFoodFactsCategory = new OpenFoodFactsCategory { Name = category }; openFoodFactsCategory = _OFFCategoryRepository.Insert(openFoodFactsCategory).GetAwaiter().GetResult(); if (openFoodFactsCategory == null) { context.Response.StatusCode = StatusCodes.Status204NoContent; return; } OpenFoodFactsDatasCategory openFoodFactsDatasCategory = new OpenFoodFactsDatasCategory { CategoryId = openFoodFactsCategory.Id, DataId = openFoodFactsData.Id }; openFoodFactsDatasCategory = _OFFDatasCategoryRepository.Insert(openFoodFactsDatasCategory).GetAwaiter().GetResult(); if (openFoodFactsDatasCategory == null) { context.Response.StatusCode = StatusCodes.Status204NoContent; return; } } } string openFoodFactsDataJson = JsonSerializer.Serialize(openFoodFactsData); context.Response.StatusCode = StatusCodes.Status200OK; context.Response.WriteAsync(openFoodFactsDataJson).GetAwaiter().GetResult(); } else { context.Response.StatusCode = StatusCodes.Status204NoContent; } } }