Ejemplo n.º 1
0
 public HttpResponseMessage Update([FromBody] TagToUpdate tag)
 {
     try
     {
         repository.Save(tag.OldTag, tag.NewTag);
         return(Request.CreateResponse(HttpStatusCode.OK));
     }
     catch (UnauthorizedAccessException)
     {
         return(Request.CreateResponse(HttpStatusCode.Unauthorized));
     }
     catch (Exception)
     {
         return(Request.CreateResponse(HttpStatusCode.InternalServerError));
     }
 }
Ejemplo n.º 2
0
        public async void Tags_UpdateAsync_PositiveAndNegative_Test()
        {
            var options = new DbContextOptionsBuilder <DreamFoodDeliveryContext>()
                          .UseInMemoryDatabase(databaseName: "Tags_UpdateAsync_PositiveAndNegative_Test")
                          .Options;

            using (var context = new DreamFoodDeliveryContext(options))
            {
                context.AddRange(_tags);
                await context.SaveChangesAsync();
            }

            using (var context = new DreamFoodDeliveryContext(options))
            {
                var tag = await context.Tags.AsNoTracking().FirstOrDefaultAsync();

                var         service   = new TagService(_mapper, context);
                string      testName  = "TestName";
                TagToUpdate updateTag = new TagToUpdate()
                {
                    Id      = tag.Id.ToString(),
                    TagName = testName,
                };

                TagToUpdate failTag = new TagToUpdate()
                {
                    Id      = new Guid().ToString(),
                    TagName = testName,
                };

                var resultPositive = await service.UpdateAsync(updateTag);

                var resultNegative = await service.UpdateAsync(failTag);

                resultPositive.IsSuccess.Should().BeTrue();
                resultPositive.Data.TagName.Should().BeEquivalentTo(updateTag.TagName);
                resultPositive.Data.TagName.Should().NotBeEquivalentTo(tag.TagName);

                resultNegative.IsSuccess.Should().BeFalse();
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Update([FromBody, CustomizeValidator] TagToUpdate tag, CancellationToken cancellationToken = default)
        {
            if (tag is null || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                var result = await _tagService.UpdateAsync(tag, cancellationToken);

                return(result.IsError ? StatusCode(StatusCodes.Status206PartialContent, result.Message.CollectProblemDetailsPartialContent(HttpContext)) : (IActionResult)Ok(result.Data));
            }
            catch (InvalidOperationException ex)
            {
                Log.Error(ex, ex.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError, new CustumResult()
                {
                    Status = StatusCodes.Status500InternalServerError, Message = ex.Message
                }));
            }
        }
Ejemplo n.º 4
0
        public async Task <Result <TagToUpdate> > UpdateAsync(TagToUpdate tag, CancellationToken cancellationToken = default)
        {
            TagDB tagForUpdate = _mapper.Map <TagDB>(tag);

            tagForUpdate.Id = Guid.Parse(tag.Id);
            _context.Entry(tagForUpdate).Property(c => c.TagName).IsModified = true;

            try
            {
                await _context.SaveChangesAsync(cancellationToken);

                return(Result <TagToUpdate> .Ok(tag));
            }
            catch (DbUpdateConcurrencyException ex)
            {
                return(Result <TagToUpdate> .Fail <TagToUpdate>(ExceptionConstants.CANNOT_UPDATE_MODEL + ex.Message));
            }
            catch (DbUpdateException ex)
            {
                return(Result <TagToUpdate> .Fail <TagToUpdate>(ExceptionConstants.CANNOT_UPDATE_MODEL + ex.Message));
            }
        }
Ejemplo n.º 5
0
 public HttpResponseMessage Update([FromBody] TagToUpdate tag)
 {
     repository.Save(tag.OldTag, tag.NewTag);
     return(Request.CreateResponse(HttpStatusCode.OK));
 }