private void UpdateRelatedStudios(string[] selectedStudios, Filmes filmeToUpdate)
        {
            if (selectedStudios == null)
            {
                filmeToUpdate.Studios = new List<Studios>();
                return;
            }

            var selectedStudiosHS = new HashSet<string>(selectedStudios);
            var filmeStudios = new HashSet<int>(filmeToUpdate.Studios.Select(s => s.StudioID));

            foreach (var studio in unitOfWork.StudiosRepository.Get())
            {
                if (selectedStudiosHS.Contains(studio.StudioID.ToString()))
                {
                    if (!filmeStudios.Contains(studio.StudioID))
                    {
                        filmeToUpdate.Studios.Add(studio);
                    }
                }
                else
                {
                    if (filmeStudios.Contains(studio.StudioID))
                    {
                        filmeToUpdate.Studios.Remove(studio);
                    }
                }
            }
        }
        private void UpdateRelatedGenres(string[] selectedGenres, Filmes filmeToUpdate)
        {
            if (selectedGenres == null)
            {
                filmeToUpdate.Generos = new List<Generos>();
            }
            else
            {
                var selectedGenresHS = new HashSet<string>(selectedGenres);
                var filmeGenres = new HashSet<int>(filmeToUpdate.Studios.Select(s => s.StudioID));

                foreach (var genre in unitOfWork.GenerosRepository.Get())
                {
                    if (selectedGenresHS.Contains(genre.GeneroID.ToString()))
                    {
                        if (!filmeGenres.Contains(genre.GeneroID))
                        {
                            filmeToUpdate.Generos.Add(genre);
                        }
                    }
                    else
                    {
                        if (filmeGenres.Contains(genre.GeneroID))
                        {
                            filmeToUpdate.Generos.Remove(genre);
                        }
                    }
                }
            }
        }
        private void PopulateAssigned(Filmes filme = null)
        {
            if (filme == null)
            {
                filme = new Filmes();
            }
            var allGenres = unitOfWork.GenerosRepository.Get();
            var allStudios = unitOfWork.StudiosRepository.Get();
            var filmGenres = new HashSet<int>(filme.Generos.Select(g => g.GeneroID));
            var filmStudios = new HashSet<int>(filme.Studios.Select(s => s.StudioID));
            var viewModelGenres = new List<AssignedData>();
            var viewModelStudios = new List<AssignedData>();
            
            foreach (var genre in allGenres)
            {
                viewModelGenres.Add(new AssignedData
                {
                    ID = genre.GeneroID,
                    Description = genre.Descricao,
                    Assigned = filmGenres.Contains(genre.GeneroID)
                });
            }

            foreach (var studio in allStudios)
            {
                viewModelStudios.Add(new AssignedData
                {
                    ID = studio.StudioID,
                    Description = studio.Nome,
                    Assigned = filmStudios.Contains(studio.StudioID)
                });
            }
            
            ViewBag.Generos = viewModelGenres;
            ViewBag.Studios = viewModelStudios;
        }