Esempio n. 1
0
        public User ToEntity()
        {
            var user = new User()
            {
                Id             = this.Id,
                Nickname       = this.Nickname,
                FullName       = this.FullName,
                Email          = this.Email,
                Birthday       = this.Birthday,
                Password       = this.Password,
                FavouriteFilms = new List <UserFavouriteFilm>()
            };

            if (FavouriteFilms != null)
            {
                foreach (FilmDTO filmDTO in this.FavouriteFilms)
                {
                    UserFavouriteFilm uff = new UserFavouriteFilm()
                    {
                        User   = user,
                        UserId = user.Id,
                        Film   = filmDTO.ToEntity(),
                        FilmId = filmDTO.Id
                    };
                    user.FavouriteFilms.Add(uff);
                }
            }


            return(user);
        }
Esempio n. 2
0
        public async Task <User> AddFavouriteAsync(UserFavouriteFilm favourite)
        {
            try
            {
                var userToUpdate = await userRepository.GetAsync(favourite.UserId).ConfigureAwait(false);

                var filmToFavourite = await filmRepository.GetAsync(favourite.FilmId).ConfigureAwait(false);

                await userValidator.ValidateAddFavouriteFilmAsync(userToUpdate, filmToFavourite);

                UserFavouriteFilm newAssocistion = new UserFavouriteFilm()
                {
                    Id     = Guid.NewGuid(),
                    Film   = filmToFavourite,
                    FilmId = filmToFavourite.Id,
                    User   = userToUpdate,
                    UserId = userToUpdate.Id
                };
                userFavouriteFilmRepo.Add(newAssocistion);
                userRepository.Update(userToUpdate);
                filmRepository.Update(filmToFavourite);
                await userRepository.SaveChangesAsync().ConfigureAwait(false);

                return(await userRepository.GetAsync(userToUpdate.Id).ConfigureAwait(false));
            }
            catch (Exception e)
            {
                throw new BusinessLogicException(e.Message);
            }
        }
Esempio n. 3
0
        public Film ToEntity()
        {
            var film = new Film()
            {
                Id             = this.Id,
                Name           = this.Name,
                Description    = this.Description,
                LaunchDate     = this.LaunchDate,
                AdditionDate   = this.AdditionDate,
                FilmScore      = this.Score,
                Ratings        = new List <Rating>(),
                Genres         = new List <FilmWithGenre>(),
                UserFavourites = new List <UserFavouriteFilm>()
            };

            if (this.Director != null)
            {
                film.Director = this.Director.ToEntity();
            }

            if (Ratings != null)
            {
                foreach (RatingDTO ratingDTO in this.Ratings)
                {
                    film.Ratings.Add(ratingDTO.ToEntity());
                }
            }

            if (Genres != null)
            {
                foreach (GenreDTO genreDTO in this.Genres)
                {
                    FilmWithGenre fwg = new FilmWithGenre()
                    {
                        Genre   = genreDTO.ToEntity(),
                        GenreId = genreDTO.Id,
                        Film    = film,
                        FilmId  = film.Id
                    };
                    film.Genres.Add(fwg);
                }
            }

            if (UserFavourites != null)
            {
                foreach (UserDTO userDTO in this.UserFavourites)
                {
                    UserFavouriteFilm uff = new UserFavouriteFilm()
                    {
                        User   = userDTO.ToEntity(),
                        UserId = userDTO.Id,
                        Film   = film,
                        FilmId = film.Id
                    };
                    film.UserFavourites.Add(uff);
                }
            }


            return(film);
        }
Esempio n. 4
0
 public FavouriteDTO(UserFavouriteFilm favourite)
 {
     this.FilmId = favourite.FilmId;
     this.UserId = favourite.UserId;
     this.Id     = favourite.Id;
 }