コード例 #1
0
        public async Task <ActionResult> UpdateSuppliers([FromBody] UpdateSupplierCommand command)
        {
            var response = await _mediator.Send(command);

            if (response.Status.IsSuccessful)
            {
                return(Ok(response));
            }
            return(BadRequest(response));
        }
コード例 #2
0
        public async Task <ActionResult> Update(int id, UpdateSupplierCommand command)
        {
            if (id != command.Id)
            {
                return(BadRequest());
            }

            await Mediator.Send(command);

            return(NoContent());
        }
コード例 #3
0
        public async Task <ResultWrapper <UpdateSupplierOutput> > Handle(UpdateSupplierCommand request, CancellationToken cancellationToken)
        {
            ResultWrapper <UpdateSupplierOutput> createUserResult = new ResultWrapper <UpdateSupplierOutput>();

            try
            {
                GenderEnum GenderEn = GenderEnum.NULL;
                if (!Enum.TryParse <GenderEnum>(request.Gender.ToString(), true, out GenderEn))
                {
                    createUserResult.Status  = false;
                    createUserResult.Message = "Gender value is invalid!";
                    return(createUserResult);
                }

                TUser tUser = _dbContext.TUser.FirstOrDefault(x => x.Id == request.Id);
                if (tUser == null)
                {
                    createUserResult.Status  = false;
                    createUserResult.Message = "cannot find supplier!";
                    return(createUserResult);
                }

                tUser.Gender         = request.Gender;
                tUser.FirstName      = request.FirstName;
                tUser.LastName       = request.LastName;
                tUser.Address        = request.Address;
                tUser.PostalCode     = request.PostalCode;
                tUser.Phone          = request.Phone;
                tUser.TRegionCityId  = request.RegionCityId;
                tUser.RestaurantName = request.RestaurantName;
                tUser.ShareAccount   = request.ShareAccount;
                tUser.SharePercent   = request.SharePercent;
                tUser.Lat            = request.Lat;
                tUser.Lng            = request.Lng;

                _dbContext.Update(tUser);
                await _dbContext.SaveChangesAsync();

                createUserResult.Status = true;
                createUserResult.Result = new UpdateSupplierOutput()
                {
                    Id         = tUser.Id,
                    Email      = tUser.Email,
                    FireBaseId = tUser.FireBaseId
                };
            }
            catch (Exception ex)
            {
                createUserResult.Status  = false;
                createUserResult.Message = ex.Message;
            }
            return(createUserResult);
        }
コード例 #4
0
        public async Task <IdResponse> HandleAsync(UpdateSupplierCommand cmd, CancellationToken ct)
        {
            var result = _supplierRepository.Update(new Supplier
            {
                Name      = cmd.Name,
                Email     = cmd.Email,
                Telephone = cmd.Telephone,
                ID        = cmd.id
            });

            return(new IdResponse(cmd.Id));
        }
コード例 #5
0
        public async Task <ActionResult <SupplierDto> > Update(int supplierId,
                                                               [FromBody] UpdateSupplierViewModel updateSupplierViewModel)
        {
            var command = new UpdateSupplierCommand
            {
                Id    = supplierId,
                Name  = updateSupplierViewModel.Name,
                Email = updateSupplierViewModel.Email,
                Phone = updateSupplierViewModel.Phone
            };
            var result = await mediator.Send(command);

            if (!result.Success)
            {
                return(BadRequest(result.ErrorMessages));
            }

            var resultData = await mediator.Send(new GetSupplierByIdQuery { Id = supplierId });

            return(Ok(resultData.Data));
        }
コード例 #6
0
        public async Task ValidateEmail(string email)
        {
            var createSupplierCommand = new CreateSupplierCommand
            {
                Name  = "Pascal",
                Phone = "+41 79 456 45 45",
                Email = email,
            };

            var createSupplierCommandValidator = new CreateSupplierCommandValidator();
            var result = await createSupplierCommandValidator.ValidateAsync(createSupplierCommand);

            Assert.False(result.IsValid);
            Assert.NotEmpty(result.Errors);
            Assert.Contains(result.Errors, e => e.PropertyName == nameof(createSupplierCommand.Email));
            Assert.DoesNotContain(result.Errors, e => e.PropertyName == nameof(createSupplierCommand.Name));
            Assert.DoesNotContain(result.Errors, e => e.PropertyName == nameof(createSupplierCommand.Phone));

            var updateSupplierCommand = new UpdateSupplierCommand
            {
                Id    = 1,
                Name  = "Pascal",
                Phone = "+41 79 456 45 45",
                Email = email,
            };
            var updateSupplierCommandValidator = new UpdateSupplierCommandValidator();

            result = await updateSupplierCommandValidator.ValidateAsync(updateSupplierCommand);

            Assert.False(result.IsValid);
            Assert.NotEmpty(result.Errors);
            Assert.Contains(result.Errors, e => e.PropertyName == nameof(updateSupplierCommand.Email));
            Assert.DoesNotContain(result.Errors, e => e.PropertyName == nameof(updateSupplierCommand.Id));
            Assert.DoesNotContain(result.Errors, e => e.PropertyName == nameof(updateSupplierCommand.Name));
            Assert.DoesNotContain(result.Errors, e => e.PropertyName == nameof(updateSupplierCommand.Phone));
        }
コード例 #7
0
        public async Task <IActionResult> Update([FromBody] UpdateSupplierCommand updateSupplierCommand)
        {
            ResultWrapper <UpdateSupplierOutput> updateSupplierResult = await _mediator.Send(updateSupplierCommand);

            return(Ok(updateSupplierResult));
        }
コード例 #8
0
        public async Task <IActionResult> UpdateDevice(UpdateSupplierCommand command)
        {
            var result = await Task.FromResult(command);

            return(Ok(result));
        }
コード例 #9
0
        public async Task <IActionResult> Update([FromBody] UpdateSupplierCommand command)
        {
            var result = await _mediator.Send(command);

            return(Ok(result));
        }
コード例 #10
0
        public async Task <ActionResult> UpdateAsync([FromBody] UpdateSupplierCommand command)
        {
            await _mediator.Send(command, HttpContext.RequestAborted);

            return(NoContent());
        }
コード例 #11
0
        public async Task TestUpdateSupplierSuccess()
        {
            await using var context = DatabaseHelper.CreateInMemoryDatabaseContext(nameof(TestUpdateSupplierSuccess));

            var addedSupplier = await context.Suppliers.AddAsync(ValidModelCreator.Supplier());

            var supplier1Id = addedSupplier.Entity.Id;

            var updateCmd1 = new UpdateSupplierCommand
            {
                Id    = supplier1Id,
                Name  = "something",
                Email = "*****@*****.**",
                Phone = null,
            };

            var updateHandler   = new UpdateSupplierCommandHandler(context);
            var queryOneHandler = new GetSupplierByIdQueryHandler(context);
            var response1       = await updateHandler.Handle(updateCmd1, CancellationToken.None);

            Assert.True(response1.Success);
            var updatedSupplier =
                (await queryOneHandler.Handle(new GetSupplierByIdQuery {
                Id = updateCmd1.Id
            }, CancellationToken.None))
                .Data;

            Assert.Equal(updateCmd1.Name, updatedSupplier.Name);
            Assert.Equal(updateCmd1.Email, updatedSupplier.Email);
            Assert.Equal(updateCmd1.Phone, updatedSupplier.Phone);
            var updateCmd2 = new UpdateSupplierCommand
            {
                Id    = supplier1Id,
                Name  = "something new",
                Email = "*****@*****.**",
                Phone = "+41 79 456 45 45",
            };

            var response2 = await updateHandler.Handle(updateCmd2, CancellationToken.None);

            Assert.True(response2.Success);
            var updatedAgain =
                (await queryOneHandler.Handle(new GetSupplierByIdQuery {
                Id = updateCmd1.Id
            }, CancellationToken.None))
                .Data;

            Assert.Equal(updateCmd2.Name, updatedAgain.Name);
            Assert.Equal(updateCmd2.Email, updatedAgain.Email);
            Assert.Equal(updateCmd2.Phone, updatedAgain.Phone);

            var updateNonExistingSupplierCommand = new UpdateSupplierCommand
            {
                Id    = supplier1Id + 1,
                Name  = "something",
                Email = "*****@*****.**",
                Phone = "+41 79 456 45 45",
            };
            var response3 = await updateHandler.Handle(updateNonExistingSupplierCommand, CancellationToken.None);

            Assert.False(response3.Success);
        }