public void UpdateMovieAndGenre(Movie mov, Genre gen) { var movieName = mov.Name; var genreName = gen.Name; try { semaphore.WaitAsync(); queue.ChckAndAddToMovieList(movieName); queue.ChckAndAddToGenreList(genreName); UpdateGenreAfterAsociation(gen); UpdateMovieAfterASociation(mov); } catch (EntityBeingModifiedException entitiyBeingMod) { throw entitiyBeingMod; } catch (DataBaseException entityNotFound) { throw entityNotFound; } finally { RemoveMovieAndGenreFromQueue(genreName, movieName); semaphore.Release(); } }
public void Delete(Genre genreToDelete) { queue.ChckAndAddToGenreList(genreToDelete.Name); try { semaphore.WaitAsync(); var indexToDelete = genres.FindIndex(gen => gen.Name.Equals(genreToDelete.Name)); if (indexToDelete == -1) { queue.RemoveGenreFromQueue(genreToDelete.Name); throw new DataBaseException("No se encontro el genero solicitado"); } genres.RemoveAt(indexToDelete); } finally { semaphore.Release(); queue.RemoveGenreFromQueue(genreToDelete.Name); } }