コード例 #1
0
        //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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public ShoppingListEntryService() : base(new ShoppingListEntryRepository())
 {
     _entryRepository = (ShoppingListEntryRepository)_repository;
 }