Пример #1
0
        public async Task <TagsDomainModel> GetTagByTagName(string tagName)
        {
            var data = await _tagsRepository.GetTagByTagName(tagName);

            if (data == null)
            {
                return(null);
            }

            TagsDomainModel domainModel = new TagsDomainModel
            {
                Id   = data.Id,
                Name = data.Name
            };

            return(domainModel);
        }
Пример #2
0
        public async Task <TagsDomainModel> GetTagByIdAsync(int id)
        {
            var data = await _tagsRepository.GetByIdAsync(id);

            if (data == null)
            {
                return(null);
            }

            TagsDomainModel domainModel = new TagsDomainModel
            {
                Id   = data.Id,
                Name = data.Name
            };

            return(domainModel);
        }
Пример #3
0
        public async Task <ActionResult> Post([FromBody] string name)
        {
            if (name == null)
            {
                return(BadRequest("Invalid tag name. "));
            }

            TagsDomainModel domainModel = new TagsDomainModel
            {
                Name = name
            };

            TagsDomainModel createdTag;

            try
            {
                createdTag = await _tagService.AddTag(domainModel);
            }
            catch (DbUpdateException e)
            {
                ErrorResponseModel errorResponse = new ErrorResponseModel
                {
                    ErrorMessage = e.InnerException.Message ?? e.Message,
                    StatusCode   = System.Net.HttpStatusCode.BadRequest
                };

                return(BadRequest(errorResponse));
            }

            if (createdTag == null)
            {
                ErrorResponseModel errorResponse = new ErrorResponseModel
                {
                    ErrorMessage = Messages.TAG_CREATION_ERROR,
                    StatusCode   = System.Net.HttpStatusCode.InternalServerError
                };

                return(StatusCode((int)System.Net.HttpStatusCode.InternalServerError, errorResponse));
            }
            return(Created("tags//" + createdTag.Id, createdTag));
        }
Пример #4
0
        public async Task <TagsDomainModel> DeleteTag(int tagId)
        {
            var movieTagData = await _movieTagService.DeleteByTagId(tagId);

            var data = _tagsRepository.Delete(tagId);

            if (data == null)
            {
                return(null);
            }

            _tagsRepository.Save();

            TagsDomainModel domainModel = new TagsDomainModel
            {
                Id   = data.Id,
                Name = data.Name
            };

            return(domainModel);
        }
        public async Task <ActionResult <IEnumerable <MovieDomainModel> > > GetMovieListByTagName(string tagName)
        {
            // Prvo se poziva metoda koja preuzima tag objekat po nazivu taga
            TagsDomainModel tagData = await _tagService.GetTagByTagName(tagName);


            if (tagData == null)
            {
                ErrorResponseModel errorResponse = new ErrorResponseModel
                {
                    ErrorMessage = Messages.TAG_DOES_NOT_EXIST,
                    StatusCode   = System.Net.HttpStatusCode.InternalServerError
                };
                return(BadRequest(errorResponse));
            }

            // Nakon toga se poziva Metoda kojoj se prosledjuje tagID, a vraca list MovieTag objekata sa tim tagID
            var movieTagList = await _movieTagService.GetByTagId(tagData.Id);

            // Ovo je lista koja ce sadrzati movieIDeve svakog MovieTag objekta sa zeljenim TagIDem
            List <Guid> movieIdList = new List <Guid>();

            foreach (MovieTagsDomainModel domainModel in movieTagList)
            {
                movieIdList.Add(domainModel.MovieId);
            }

            // Sada se poziva GetMovie metoda za svaki MovieId u listi i dodaje se na listu filmova koji se vracaju kao rezultat
            List <MovieDomainModel> result = new List <MovieDomainModel>();
            MovieDomainModel        movieDomainModel;

            foreach (Guid movieId in movieIdList)
            {
                movieDomainModel = await _movieService.GetMovieByIdAsync(movieId);

                result.Add(movieDomainModel);
            }

            return(Ok(result));
        }
        public void TestInitialize()
        {
            _tag = new Tag()
            {
                Id   = 1,
                Name = "nazivTaga"
            };

            _tagDomainModel = new TagsDomainModel()
            {
                Id   = 1,
                Name = "nazivTaga"
            };

            _movieTagsDomainModel = new MovieTagsDomainModel()
            {
                MovieId = Guid.NewGuid(),
                TagId   = 1
            };


            List <Tag> tagModelsList = new List <Tag>();

            tagModelsList.Add(_tag);
            IEnumerable <Tag>         tags         = tagModelsList;
            Task <IEnumerable <Tag> > responseTask = Task.FromResult(tags);

            _mockTagsRepository = new Mock <ITagsRepository>();

            List <MovieTagsDomainModel> movieTagsList = new List <MovieTagsDomainModel>();

            movieTagsList.Add(_movieTagsDomainModel);
            IEnumerable <MovieTagsDomainModel>         movieTags             = movieTagsList;
            Task <IEnumerable <MovieTagsDomainModel> > movieTagsResponseTask = Task.FromResult(movieTags);

            _mockMovieTagService = new Mock <IMovieTagService>();
        }
Пример #7
0
        public async Task <TagsDomainModel> AddTag(TagsDomainModel newTag)
        {
            Tag tagToCreate = new Tag()
            {
                Name = newTag.Name
            };

            var data = await _tagsRepository.GetTagByTagName(newTag.Name);

            Console.WriteLine("data: " + data);
            if (data == null)
            {
                data = _tagsRepository.Insert(tagToCreate);
                _tagsRepository.Save();
            }

            TagsDomainModel domainModel = new TagsDomainModel()
            {
                Id   = data.Id,
                Name = data.Name
            };

            return(domainModel);
        }
Пример #8
0
        public async Task <IEnumerable <TagsDomainModel> > GetAllAsync()
        {
            var data = await _tagsRepository.GetAll();

            if (data == null)
            {
                return(null);
            }

            List <TagsDomainModel> result = new List <TagsDomainModel>();
            TagsDomainModel        model;

            foreach (var item in data)
            {
                model = new TagsDomainModel
                {
                    Id   = item.Id,
                    Name = item.Name
                };
                result.Add(model);
            }

            return(result);
        }
        public async Task <ActionResult> Post([FromBody] CreateMovieWithTagsModel movieModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            MovieDomainModel domainModel = new MovieDomainModel
            {
                Current   = movieModel.Current,
                Rating    = movieModel.Rating,
                Title     = movieModel.Title,
                Year      = movieModel.Year,
                BannerUrl = movieModel.BannerUrl
            };

            List <TagsDomainModel> tagList = new List <TagsDomainModel>();

            try
            {
                foreach (string tag in movieModel.Tags)
                {
                    TagsDomainModel tagsDomainModel = new TagsDomainModel
                    {
                        Name = tag
                    };

                    TagsDomainModel createdTag = await _tagService.AddTag(tagsDomainModel);

                    if (createdTag != null)
                    {
                        tagList.Add(createdTag);
                    }
                }
            }
            catch (DbUpdateException e)
            { Console.WriteLine(e.Message); }

            MovieDomainModel createMovie;

            try
            {
                createMovie = await _movieService.AddMovie(domainModel);
            }
            catch (DbUpdateException e)
            {
                ErrorResponseModel errorResponse = new ErrorResponseModel
                {
                    ErrorMessage = e.InnerException.Message ?? e.Message,
                    StatusCode   = System.Net.HttpStatusCode.BadRequest
                };

                return(BadRequest(errorResponse));
            }

            if (createMovie == null)
            {
                ErrorResponseModel errorResponse = new ErrorResponseModel
                {
                    ErrorMessage = Messages.MOVIE_CREATION_ERROR,
                    StatusCode   = System.Net.HttpStatusCode.InternalServerError
                };

                return(StatusCode((int)System.Net.HttpStatusCode.InternalServerError, errorResponse));
            }

            foreach (TagsDomainModel tag in tagList)
            {
                MovieTagsDomainModel movieTadDomainModel = new MovieTagsDomainModel
                {
                    MovieId = createMovie.Id,
                    TagId   = tag.Id
                };

                await _movieTagService.AddMovieTag(movieTadDomainModel);
            }
            return(Created("movies//" + createMovie.Id, createMovie));
        }