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(Movie movie) { queue.ChckAndAddToMovieList(movie.Name); try { semaphore.WaitAsync(); var indexToDelete = movies.FindIndex(mov => mov.Name.Equals(movie.Name)); if (indexToDelete == -1) { queue.RemoveMovieFromModifyQueue(movie.Name); throw new DataBaseException("No se encontro la pelicula solicitada"); } movies.RemoveAt(indexToDelete); } finally { semaphore.Release(); queue.RemoveMovieFromModifyQueue(movie.Name); } }