public static void Run( [QueueTrigger("azure", Connection = "AzureWebJobsStorage")] string message, ILogger log) { try { RSDbContext context = new RSDbContext(); IMapper _mapper = AutoMapperConfig.MapperConfig().CreateMapper(); IRecommenceHobbyService _hobbyService = new RecommenceHobbyService(new UnitOfWork(context)); ICategoryService _categoryService = new CategoryService(new UnitOfWork(context)); IUserService _userService = new UserService(new UnitOfWork(context)); IProductService _productService = new ProductService(new UnitOfWork(context)); var recommence = JsonSerializer.Deserialize <Recommence>(message); var result = _hobbyService.RecommenceByHobbyGetListProduct(recommence); var userId = recommence.UserId; //create new category if not exist foreach (var item in result) { var categoryId = item.CategoryId; if (_categoryService.CheckCategory(categoryId)) { CreateCategoryViewModel newCate = new CreateCategoryViewModel(); newCate.Code = categoryId; _categoryService.Create(_mapper.Map <Category>(newCate)); } } //create products if not exist var products = _mapper.Map <IEnumerable <CreateProductViewModel> >(result) .Select(x => _productService.Create(_mapper.Map <Product>(x))); //create new user if not exist CreateUserViewModel newUser = new CreateUserViewModel(); newUser.Code = userId; _userService.Create(_mapper.Map <User>(newUser)); //select list products'code IEnumerable <string> listCode = result.Select(x => x.Code); //create RecommenceHobbyModel to save database CreateRecommenceByHobbyViewModel hobbyViewModel = new CreateRecommenceByHobbyViewModel(); var list = _mapper.Map <IEnumerable <ProductViewModel> >(products); hobbyViewModel.ProductRecommenceHobbies = list; hobbyViewModel.UserId = userId; var a = _mapper.Map <RecommenceHobby>(hobbyViewModel); _hobbyService.LoadAndUpdate(a); ///-------------------------------------------------------------------- /// } catch (Exception ex) { log.LogError(ex.Message); throw; } }
public ActionResult <IList <string> > LoadAndUpdate(Recommence recommence) { var result = _hobbyService.RecommenceByHobbyGetListProduct(recommence); var userId = recommence.UserId; //create new category if not exist foreach (var item in result) { var categoryId = item.CategoryId; if (_categoryService.CheckCategory(categoryId)) { CreateCategoryViewModel newCate = new CreateCategoryViewModel(); newCate.Code = categoryId; _categoryService.Create(_mapper.Map <Category>(newCate)); } } //create products if not exist var products = _mapper.Map <IEnumerable <CreateProductViewModel> >(result) .Select(x => _productService.Create(_mapper.Map <Product>(x))); //create new user if not exist CreateUserViewModel newUser = new CreateUserViewModel(); newUser.Code = userId; _userService.Create(_mapper.Map <User>(newUser)); //select list products'code IEnumerable <string> listCode = result.Select(x => x.Code); //create new model to store database CreateRecommenceByHobbyViewModel hobbyViewModel = new CreateRecommenceByHobbyViewModel(); var list = _mapper.Map <IEnumerable <ProductViewModel> >(products); hobbyViewModel.ProductRecommenceHobbies = list; hobbyViewModel.UserId = userId; //create RecommenceHobbyModel to save database var a = _mapper.Map <RecommenceHobby>(hobbyViewModel); _hobbyService.LoadAndUpdate(a); //---------------------- //RecommenceByPriceService //get listproducts from model var listProducts = _priceService.RecommendByPriceAvarageGetListProducts(recommence); //check and new category if not exist foreach (var item in listProducts) { if (_categoryService.CheckCategory(item.CategoryId) == false) { CreateCategoryViewModel newModel = new CreateCategoryViewModel(); newModel.Code = item.CategoryId; _categoryService.Create(_mapper.Map <Category>(newModel)); } } //check and create new product if not existed var productPrices = _mapper.Map <IEnumerable <CreateProductViewModel> >(listProducts) .Select(x => _productService.Create(_mapper.Map <Product>(x))); //new model to store database CreateRecommenceByPriceViewModel priceViewModel = new CreateRecommenceByPriceViewModel(); var listp = _mapper.Map <IEnumerable <ProductViewModel> >(productPrices); priceViewModel.ProductRecommencePrices = listp; priceViewModel.UserId = userId; //create new model or update to savechanges var b = _mapper.Map <RecommencePrice>(priceViewModel); _priceService.LoadAndUpdate(b); return(Ok()); }