コード例 #1
0
        public async Task WhenDtoIsValid_ShouldUpdatePartner()
        {
            var partner = (await TestFramework.DataFactory.AddPartners(1)).First();
            var command = new UpdatePartnerCommand()
            {
                Id      = partner.Id,
                Name    = "New PartnerName",
                Address = new AddressDto()
                {
                    City    = "Berlin",
                    Country = "Germany",
                    Street  = "Varnhagenstraße 18-44",
                    ZipCode = "10439"
                }
            };

            await TestFramework.SendAsync(command);

            var updatedPartner = await TestFramework.Data.FindAsync <Partner>(command.Id);

            updatedPartner.Should().NotBeNull();
            updatedPartner.Id.Should().Be(command.Id);
            updatedPartner.Name.Should().Be(command.Name);
            updatedPartner.Address.Should().NotBeNull()
            .And.Subject.Should().BeEquivalentTo(command.Address, o => o.ComparingByMembers <AddressDto>());
        }
コード例 #2
0
        public async Task ExecuteAsync(UpdatePartnerCommand command)
        {
            if (!command.Validate())
            {
                AddNotification(command.GetNotifications());
                return;
            }

            AddNotification(!partnerRepository.Get().Any(x => x.Id == command.Partner.Id), "Partner Id Not Found");

            if (!IsValid)
            {
                return;
            }


            try
            {
                await partnerRepository.UpdateAsync(command.Partner);
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message, ex);
                AddNotification(ex.Message, System.Net.HttpStatusCode.InternalServerError);
            }
        }
コード例 #3
0
        public async Task <IActionResult> Put([FromBody] Partner partner)
        {
            UpdatePartnerCommand command = new UpdatePartnerCommand(partner);

            await partnerCommandHandler.ExecuteAsync(command);

            return(this.HandleNotification(partnerCommandHandler, partner));
        }
コード例 #4
0
 public void Handle(ICommandContext context, UpdatePartnerCommand command)
 {
     context.Get <Partner>(command.AggregateRootId).Update(new PartnerInfo(
                                                               command.Mobile,
                                                               command.Region,
                                                               command.Level,
                                                               command.Persent,
                                                               command.CashPersent,
                                                               command.BalanceInterval,
                                                               command.Remark,
                                                               command.IsLocked
                                                               ));
 }
コード例 #5
0
        public async Task Update_WithIdMismatch_ShouldReturnBadRequest()
        {
            var command = new UpdatePartnerCommand()
            {
                Id = 123
            };

            _mockMediator.Setup(x => x.Send(command, It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(Unit.Value));

            var result = await _sut.Update(456, command);

            Assert.IsAssignableFrom(typeof(BadRequestResult), result);
        }
コード例 #6
0
        public async Task Update()
        {
            var command = new UpdatePartnerCommand()
            {
                Id = 123
            };

            _mockMediator.Setup(x => x.Send(command, It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(Unit.Value));

            var result = await _sut.Update(command.Id, command);

            _mockMediator.Verify(x => x.Send(command, It.IsAny <CancellationToken>()),
                                 Times.Once);
        }
コード例 #7
0
        public async Task <BaseApiResponse> Edit(EditPartnerRequest request)
        {
            request.CheckNotNull(nameof(request));
            //判断
            var partner = _partnerQueryService.Find(request.Id);

            if (partner == null)
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "没找到该代理"
                });
            }

            var command = new UpdatePartnerCommand(
                request.Mobile,
                request.Region,
                request.Level,
                request.Persent,
                request.CashPersent,
                request.BalanceInterval,
                request.Remark,
                request.IsLocked
                )
            {
                AggregateRootId = request.Id
            };
            var result = await ExecuteCommandAsync(command);

            if (!result.IsSuccess())
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "命令没有执行成功:{0}".FormatWith(result.GetErrorMessage())
                });
            }
            //添加操作记录
            var currentAdmin = _contextService.GetCurrentAdmin(HttpContext.Current);

            RecordOperat(currentAdmin.AdminId.ToGuid(), "编辑代理", request.Id, request.Region);

            return(new BaseApiResponse());
        }
コード例 #8
0
ファイル: PartnerController.cs プロジェクト: zanderphh/Shop
        public async Task <BaseApiResponse> Edit([FromBody] EditPartnerRequest request)
        {
            request.CheckNotNull(nameof(request));
            //判断
            var partner = _partnerQueryService.Find(request.Id);

            if (partner == null)
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "没找到该代理"
                });
            }

            var command = new UpdatePartnerCommand(
                request.Mobile,
                request.Region,
                request.Level,
                request.Persent,
                request.CashPersent,
                request.BalanceInterval,
                request.Remark,
                request.IsLocked
                )
            {
                AggregateRootId = request.Id
            };
            var result = await ExecuteCommandAsync(command);

            if (!result.IsSuccess())
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "命令没有执行成功:{0}".FormatWith(result.GetErrorMessage())
                });
            }
            return(new BaseApiResponse());
        }
コード例 #9
0
        public async Task <ActionResult> UpdatePartner([FromBody] UpdatePartnerCommand command)
        {
            await _Mediator.Send(command);

            return(NoContent());
        }