Exemple #1
0
        public IActionResult UpdatePerformance([FromRoute] Guid directorId,
                                               Guid performanceId, PerformanceForUpdateDto performanceToBeUpdated)
        {
            if (!_unitOfWork.Directors.DirectorExists(directorId))
            {
                return(NotFound());
            }

            var performanceFromDb = _unitOfWork.Performances.GetPerformance(performanceId);

            if (performanceFromDb == null)
            {
                return(UpsertPerformance(directorId, performanceId, performanceToBeUpdated));
            }

            _mapper.Map(performanceToBeUpdated, performanceFromDb);
            SavePerformanceInDb(directorId, performanceFromDb);

            return(NoContent());
        }
Exemple #2
0
        private IActionResult UpsertPerformance(Guid directorId, Guid performanceId,
                                                PerformanceForUpdateDto performanceToBeUpdated)
        {
            var performanceToAdd = _mapper.Map <Performance>(performanceToBeUpdated);

            if (_unitOfWork.Performances.PerformanceExists(directorId, performanceToAdd))
            {
                return(Conflict(new { message = $"This Performance already exists in the database!" }));
            }

            performanceToAdd.Guid = performanceId;
            SavePerformanceInDb(directorId, performanceToAdd);

            var performanceToReturn = _mapper.Map <PerformanceDto>(
                _unitOfWork.Performances.GetPerformance(performanceToAdd.Guid));

            return(CreatedAtRoute("GetPerformanceForDirector",
                                  new { directorId,
                                        performanceId = performanceToReturn.Id },
                                  performanceToReturn));
        }
Exemple #3
0
        public IActionResult PartiallyUpdatePerformance(Guid directorId, Guid performanceId,
                                                        JsonPatchDocument <PerformanceForUpdateDto> patchDocument)
        {
            if (!_unitOfWork.Directors.DirectorExists(directorId))
            {
                return(NotFound());
            }

            var performanceFromDb = _unitOfWork.Performances.GetPerformance(performanceId);

            if (performanceFromDb == null)
            {
                var performanceDto = new PerformanceForUpdateDto();
                patchDocument.ApplyTo(performanceDto, ModelState);

                if (!TryValidateModel(performanceDto))
                {
                    return(ValidationProblem(ModelState));
                }

                return(UpsertPerformance(directorId, performanceId, performanceDto));
            }

            var performanceToPatch = _mapper.Map <PerformanceForUpdateDto>(performanceFromDb);

            patchDocument.ApplyTo(performanceToPatch, ModelState);

            if (!TryValidateModel(performanceToPatch))
            {
                return(ValidationProblem(ModelState));
            }

            _mapper.Map(performanceToPatch, performanceFromDb);

            SavePerformanceInDb(directorId, performanceFromDb);

            return(NoContent());
        }