Пример #1
0
        public async Task <IActionResult> Add([FromBody] NoveltyToAddDto dto, CancellationToken cancellationToken)
        {
            if (string.IsNullOrEmpty(dto.Name) || string.IsNullOrEmpty(dto.Description))
            {
                return(BadRequest("Cannot create novelty without name or description!"));
            }

            var noveltyToAdd = new NoveltyToAdd(dto.Name, dto.Description);
            var result       = await _repository.TryAdd(noveltyToAdd, cancellationToken);

            if (!result.Succeeded)
            {
                _logger.LogError($"Failed to create novelty. Reason: {result.FailureReason}.");
                return(BadRequest("Novelty creation was unsuccessful."));
            }

            return(Created($"novelty/{result.AddedItem.ID}", new object()));
        }
Пример #2
0
        public async Task <AddOrUpdateResult <INovelty> > TryUpdate(NoveltyToAdd novelty, CancellationToken cancellationToken)
        {
            var now             = DateTime.UtcNow;
            var noveltyToUpdate = await _context.Novelties.SingleOrDefaultAsync(x => x.ID == novelty.ID, cancellationToken);

            if (noveltyToUpdate == null)
            {
                return(AddOrUpdateResult <INovelty> .Failure(FailureReason.EntityNotFound));
            }

            noveltyToUpdate.LastChanged = now;
            noveltyToUpdate.Version++;
            noveltyToUpdate.Name        = novelty.Name;
            noveltyToUpdate.Description = novelty.Description;

            var changes = await _context.SaveChangesAsync(cancellationToken);

            return(changes > 0 ? AddOrUpdateResult <INovelty> .Success(noveltyToUpdate) : AddOrUpdateResult <INovelty> .Failure());
        }