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); }
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); }
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)); }
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>(); }
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); }
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)); }