public static List<ActiveHotelModule> CreateModel(AssignHotelCatalogViewModel assignHotelCatalogViewModel)
 {
     List<ActiveHotelModule> modules = new List<ActiveHotelModule>();
     foreach (AssignHotelCatalog catalog in assignHotelCatalogViewModel.HotelCatalog)
     {
         if (catalog.Type == "module")
         {
             modules.Add(new ActiveHotelModule()
             {
                 IdHotel = assignHotelCatalogViewModel.HotelId,
                 IdModule = catalog.ElementId,
                 Active = true
             });
         }
     }
     return modules;
 }
 public static List<ActiveHotelProduct> CreateModel(AssignHotelCatalogViewModel assignHotelCatalogViewModel)
 {
     List<ActiveHotelProduct> products = new List<ActiveHotelProduct>();
     foreach (AssignHotelCatalog catalog in assignHotelCatalogViewModel.HotelCatalog)
     {
         if (catalog.Type == "product")
         {
             products.Add(new ActiveHotelProduct()
             {
                 IdHotel = assignHotelCatalogViewModel.HotelId,
                 IdProduct = catalog.ElementId,
                 Active = true
             });
         }
     }
     return products;
 }
 public static List<ActiveHotelCategory> CreateModel(AssignHotelCatalogViewModel assignHotelCatalogViewModel)
 {
     List<ActiveHotelCategory> categories = new List<ActiveHotelCategory>();
     foreach (AssignHotelCatalog catalog in assignHotelCatalogViewModel.HotelCatalog)
     {
         if (catalog.Type == "category")
         {
             categories.Add(new ActiveHotelCategory()
             {
                 IdHotel = assignHotelCatalogViewModel.HotelId,
                 IdCategory = catalog.ElementId,
          
                 Active = true
             });
         }
     }
     return categories;
 }
        public IHttpActionResult PostAssignHotelElements(AssignHotelCatalogViewModel assignHotelCatalogViewModel)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }
            ActiveHotelProductRepository activeHotelProductRepo = new ActiveHotelProductRepository(new MyRoomDbContext());
            List<ActiveHotelProduct> products = ActiveHotelProductsMapper.CreateModel(assignHotelCatalogViewModel);
            ActiveHotelCategoryRepository activeHotelCategoryRepo = new ActiveHotelCategoryRepository(new MyRoomDbContext());
            List<ActiveHotelCategory> categories = ActiveHotelCategoriesMapper.CreateModel(assignHotelCatalogViewModel);
            ActiveHotelModuleRepository activeHotelModuleRepo = new ActiveHotelModuleRepository(new MyRoomDbContext());
            List<ActiveHotelModule> modules = ActiveHotelModulesMapper.CreateModel(assignHotelCatalogViewModel);

            try
            {
                activeHotelProductRepo.InsertActiveHotelProduct(products, assignHotelCatalogViewModel.HotelId);
                activeHotelCategoryRepo.InsertActiveHotelCategory(categories, assignHotelCatalogViewModel.HotelId, true);
                activeHotelModuleRepo.InsertActiveHotelModule(modules, assignHotelCatalogViewModel.HotelId, true);
                return Ok("Elements Assigned to hotels");
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }