//Getting all shoppinglistentries and converting to ProductDto public IList <ProductDto> GetEntriesAsProducts(int listId, int langId) { //need to get Product, ShoppingListEntry and UserProduct for each entry List <ProductDto> productDtoList = new List <ProductDto>(); //1. get ShoppingListEntries ShoppingListEntryRepository entryRepository = new ShoppingListEntryRepository(); var entriesList = entryRepository.GetEntriesByListId(listId); foreach (ShoppingListEntry entry in entriesList) { //2. get Products var product = _prodRepository.Get(entry.Product_Id); //3. get UserProduct if (product.ProductType_Id == 3 || product.ProductType_Id == 4) //UserProducts { var userProduct = _prodRepository.GetUserProduct(entry.Product_Id); //4. Create ProductDto and add to list var productDto = ConvertUserProductDBToDto(product, userProduct, entry); if (productDto != null) { productDtoList.Add(productDto); } } else if (product.ProductType_Id == 1) //DefaultProduct { var defaultProduct = _prodRepository.GetDefaultProduct(entry.Product_Id); var translation = _prodRepository.GetProductTranslation(langId, entry.Product_Id); var category = _prodRepository.GetCategory((int)defaultProduct.Product_Id); if (translation == null) { translation = _prodRepository.GetProductTranslation(2, entry.Product_Id); //get Default english } //4. Create ProductDto and add to list var productDto = ConvertDefaultProductDBToDto(product, defaultProduct, entry, translation, category); if (productDto != null) { productDtoList.Add(productDto); } } else if (product.ProductType_Id == 2) //ApiProduct { var apiProduct = _prodRepository.GetApiProduct(entry.Product_Id); var translation = _prodRepository.GetProductTranslation(langId, entry.Product_Id); if (translation == null) { translation = _prodRepository.GetProductTranslation(2, entry.Product_Id); //get Default english } //4. Create ProductDto and add to list var productDto = ConvertApiProductDBToDto(product, apiProduct, entry, translation); if (productDto != null) { productDtoList.Add(productDto); } } } return(productDtoList); }
public ProductDto Get(int langId, int id, int listId) { var product = _repository.Get(id); var translation = _prodRepository.GetProductTranslation(langId, id); ProductDto productDto = new ProductDto(); ShoppingListEntryRepository entryRepository = new ShoppingListEntryRepository(); var entry = entryRepository.GetByProductAndListId(id, listId); if (product.ProductType_Id == 3 || product.ProductType_Id == 4) //UserProducts { var userProduct = _prodRepository.GetUserProduct(id); productDto = ConvertUserProductDBToDto(product, userProduct, entry); } else if (product.ProductType_Id == 1) { var defaultProduct = _prodRepository.GetDefaultProduct(id); var category = _prodRepository.GetCategory(id); productDto = ConvertDefaultProductDBToDto(product, defaultProduct, entry, translation, category); } return(productDto); }
public ShoppingListEntryService() : base(new ShoppingListEntryRepository()) { _entryRepository = (ShoppingListEntryRepository)_repository; }