public async Task<PieceDomainModel> AddPiece(PieceDomainModel newPiece)
        {
            Piece pieceToCreate = new Piece()
            {
                Description = newPiece.Description,
                Genre = newPiece.Genre,
                IsActive = newPiece.isActive,
                Title = newPiece.Title,
                Year = newPiece.Year
            };

            Piece data = _pieceRepository.Insert(pieceToCreate);
            if(data == null)
            {
                return null;
            }

            _pieceRepository.Save();

            return new PieceDomainModel
            {
                Description = data.Description,
                Genre = data.Genre,
                Id = data.Id,
                isActive = data.IsActive,
                Title = data.Title,
                Year = data.Year
            };

        }
Exemple #2
0
        public void TestInitialize()
        {
            _mockPieceRepository = new Mock <IPiecesRepository>();
            _pieceService        = new PieceService(_mockPieceRepository.Object);
            _piece = new Piece
            {
                Id          = 1,
                Description = "komad",
                Genre       = Genre.COMEDY,
                IsActive    = true,
                Year        = 1999,
                Shows       = new List <Show>
                {
                    new Show
                    {
                        ShowTime = DateTime.Now.AddDays(-5)
                    },
                    new Show
                    {
                        ShowTime = DateTime.Now.AddDays(-25)
                    }
                }
            };

            _pieceDomainModel = new PieceDomainModel
            {
                Id          = _piece.Id,
                Description = "opis",
                Genre       = _piece.Genre,
                isActive    = _piece.IsActive,
                Title       = _piece.Title,
                Year        = _piece.Year
            };
        }
        public async Task<IEnumerable<PieceDomainModel>> GetTop10ByYearAsync(int year)
        {
            var data = await _pieceRepository.GetTop10ByYearAsync(year);

            if(data.Count() == 0)
            {
                return null;
            }

            List<PieceDomainModel> result = new List<PieceDomainModel>();

            foreach (var item in data)
            {
                PieceDomainModel piece = new PieceDomainModel()
                {
                    Description = item.Description,
                    Genre = item.Genre,
                    Id = item.Id,
                    isActive = item.IsActive,
                    Title = item.Title,
                    Year = item.Year
                };

                result.Add(piece);
            }

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

            PieceDomainModel domainModel = new PieceDomainModel
            {
                Description = pieceModel.Description,
                Genre       = pieceModel.Genre,
                isActive    = pieceModel.IsActive,
                Title       = pieceModel.Title,
                Year        = pieceModel.Year
            };

            PieceDomainModel createPiece;

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

                return(BadRequest(errorResponse));
            }

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

                return(BadRequest(errorResponse));
            }

            return(CreatedAtAction(nameof(Get), new { Id = createPiece.Id }, createPiece));
        }
        public async Task <IEnumerable <ShowDomainModel> > GetFutureShowsByPieceId(PieceDomainModel domainModel)
        {
            var shows = await _showsRepository.GetFutureShowsByPieceIdAsync(domainModel.Id);

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

            var showsList = shows.Select(show => new ShowDomainModel
            {
                Id           = show.Id,
                AuditoriumId = show.AuditoriumId,
                PieceId      = show.PieceId,
                ShowTime     = show.ShowTime,
                TicketPrice  = show.TicketPrice
            });

            return(showsList);
        }
        public async Task <ActionResult <PieceDomainModel> > ActivateDeactivePiece(int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var futureShows = await _showService.GetFutureShowsByPieceId(id);

            if (futureShows.Count() > 0)
            {
                return(BadRequest(Messages.SHOWS_AT_THE_SAME_TIME));
            }

            PieceDomainModel pieceToUpdate = await _pieceService.GetPieceByIdAsyncc(id);

            pieceToUpdate.isActive = !pieceToUpdate.isActive;

            PieceDomainModel pieceDomainModel;

            try
            {
                pieceDomainModel = await _pieceService.UpdatePiece(pieceToUpdate);
            }
            catch (DbUpdateException e)
            {
                ErrorResponseModel errorResponse = new ErrorResponseModel
                {
                    ErrorMessage = e.InnerException.Message ?? e.Message,
                    StatusCode   = System.Net.HttpStatusCode.BadRequest
                };

                return(BadRequest(errorResponse));
            }

            return(Accepted("activate-deactivate//" + pieceDomainModel.Id, pieceDomainModel));
        }
        public async Task<PieceDomainModel> UpdatePiece(PieceDomainModel updatePiece)
        {
            Piece piece = await _pieceRepository.GetByIdAsync(updatePiece.Id);

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

            Piece pieceToUpdate = new Piece()
            {
                Id = piece.Id,
                Title = updatePiece.Title,
                Description = updatePiece.Description,
                Genre = updatePiece.Genre,
                IsActive = updatePiece.isActive,
                Year = updatePiece.Year
            };

            Piece data = _pieceRepository.Update(pieceToUpdate);

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

            _pieceRepository.Save();

            return new PieceDomainModel()
            {
                Id = data.Id,
                Title = data.Title,
                Description = data.Description,
                Genre = data.Genre,
                Year = data.Year
            };
        }