public Room CreateRoom(RoomRequest roomRequest) { var room = new Room(); Coppier <RoomRequest, Room> .Copy(roomRequest, room); room.Cluster = dbContext.Clusters.Where(c => c.Id == roomRequest.ClusterId).FirstOrDefault(); var screenTypes = dbContext.ScreenTypes.Where(s => roomRequest.ScreenTypeIds.Contains(s.Id)).ToList(); foreach (var screen in screenTypes) { var roomScreenType = new RoomScreenType() { ScreenType = screen, Room = room, }; dbContext.Add(roomScreenType); } dbContext.Add(room); var isSuccess = Save(); if (!isSuccess) { return(null); } return(room); }
public Room UpdateRoom(int id, RoomRequest roomRequest) { var room = dbContext.Rooms.Where(r => r.Id == id).FirstOrDefault(); var screenTypesIsDelete = dbContext.RoomScreenTypes.Where(rs => rs.RoomId == id).ToList(); if (screenTypesIsDelete != null) { dbContext.RemoveRange(screenTypesIsDelete); } Coppier <RoomRequest, Room> .Copy(roomRequest, room); room.Cluster = dbContext.Clusters.Where(c => c.Id == roomRequest.ClusterId).FirstOrDefault(); var screenTypes = dbContext.ScreenTypes.Where(s => roomRequest.ScreenTypeIds.Contains(s.Id)).ToList(); foreach (var screen in screenTypes) { var roomScreenType = new RoomScreenType() { ScreenType = screen, Room = room, }; dbContext.Add(roomScreenType); } dbContext.Update(room); var isSuccess = Save(); if (!isSuccess) { return(null); } return(room); }
public UserDTO UpdateUser(int id, UserRequest userRequest) { var user = dbContext.Users.Where(u => u.Id == id).FirstOrDefault(); if (user == null) { throw new CustomException(HttpStatusCode.NotFound, "user not found"); } var username = user.Username; Coppier <UserRequest, User> .Copy(userRequest, user); user.Username = username; dbContext.Update(user); Save(); return(new UserDTO(user)); }
public Movie UpdateMovie(int id, UpdateMovieRequest movieRequest) { var movie = dbContext.Movies.Where(m => m.Id == id).FirstOrDefault(); movie.EndAt = DateTime.Parse(movieRequest.EndAt); Coppier <UpdateMovieRequest, Movie> .Copy(movieRequest, movie); if (movieRequest.ScreenTypeIds != null) { var screenTypeToDelete = dbContext.MovieScreenTypes.Where(ms => ms.MovieId == id).ToList(); if (screenTypeToDelete != null) { dbContext.RemoveRange(screenTypeToDelete); } var screenTypes = dbContext.ScreenTypes.Where(s => movieRequest.ScreenTypeIds.Contains(s.Id)).ToList(); foreach (var screenType in screenTypes) { var movieScreenType = new MovieScreenType() { Movie = movie, ScreenType = screenType, }; dbContext.Add(movieScreenType); } } dbContext.Update(movie); var isSuccess = Save(); if (!isSuccess) { return(null); } return(movie); }
public Movie CreateMovie(MovieRequest movieRequest) { MovieResponse response = MovieProxy.GetMovieByIMDB(movieRequest.Imdb); var movie = new Movie() { EndAt = DateTime.Parse(movieRequest.EndAt), }; Coppier <MovieResponse, Movie> .Copy(response, movie); Coppier <MovieRequest, Movie> .Copy(movieRequest, movie); var rate = dbContext.Rates.Where(r => r.Name == response.RateName).FirstOrDefault(); if (rate == null) { rate = new Rate() { Name = response.RateName, MinAge = 0, }; dbContext.Add(rate); } movie.Rate = rate; var screenTypes = dbContext.ScreenTypes.Where(s => movieRequest.ScreenTypeIds.Contains(s.Id)).ToList(); List <string> actorNames = new List <string>(); foreach (var actor in response.Actors) { actorNames.Add(actor.Name); } var actors = dbContext.Actors.Where(a => actorNames.Contains(a.Name)).ToList(); var isNotExistActors = response.Actors.Where(a => !actors.Any(a2 => a2.Name == a.Name)).ToList(); if (isNotExistActors != null) { foreach (var actor in isNotExistActors) { dbContext.Add(actor); } } //genre List <string> genreNames = new List <string>(); foreach (var genre in response.Genres) { genreNames.Add(genre.Name); } var genres = dbContext.Genres.Where(a => genreNames.Contains(a.Name)).ToList(); var isNotExistGenres = response.Genres.Where(a => !genres.Any(a2 => a2.Name == a.Name)).ToList(); if (isNotExistGenres != null) { foreach (var genre in isNotExistGenres) { dbContext.Add(genre); } } foreach (var screenType in screenTypes) { var movieScreenType = new MovieScreenType() { Movie = movie, ScreenType = screenType, }; dbContext.Add(movieScreenType); } foreach (var actor in actors.Concat(isNotExistActors)) { var movieActor = new MovieActor() { Movie = movie, Actor = actor, }; dbContext.Add(movieActor); } foreach (var genre in genres.Concat(isNotExistGenres)) { var movieGenre = new MovieGenre() { Movie = movie, Genre = genre, }; dbContext.Add(movieGenre); } dbContext.Add(movie); var isSuccess = Save(); if (!isSuccess) { return(null); } return(movie); }