public Task <UpdateMarketerCommandResponse> Handle(UpdateMarketerCommand command)
        {
            var marketer = _repository.AsQuery().SingleOrDefault(p => p.Id == command.Id);

            if (marketer == null)
            {
                throw new DomainException("بازاریاب یافت نشد");
            }
            var countShopMarketer = _shopRepository.AsQuery().Count(p => p.MarketerId == command.Id);

            if (countShopMarketer > command.MaxMarketerAllowed)
            {
                throw new DomainException("تعداد فروشگاه این یازاریاب بیش از تعداد مجاز وارد شده می باشد");
            }
            var marketerAddress = new MarketerAddress(command.MarketerAddress.AddressText,
                                                      command.MarketerAddress.PhoneNumber, command.MarketerAddress.MobileNumber,
                                                      command.MarketerAddress.RequiredPhoneNumber, command.MarketerAddress.CityId,
                                                      command.MarketerAddress.CityName);
            var marketerSalary  = new MarketerSalary(command.MarketerSalary.FixedSalary, command.MarketerSalary.InterestRates);
            var marketerReagent = new MarketerReagent(command.MarketerReagent.ReagentName,
                                                      command.MarketerReagent.ReagentMobileNumber);

            marketer.MarketerAddress    = marketerAddress;
            marketer.MarketerSalary     = marketerSalary;
            marketer.MarketerReagent    = marketerReagent;
            marketer.BarcodeId          = command.BarcodeId;
            marketer.FatherName         = command.FatherName;
            marketer.LastName           = command.LastName;
            marketer.FirstName          = command.FirstName;
            marketer.NationalCode       = command.NationalCode;
            marketer.IdNumber           = command.IdNumber;
            marketer.Gender             = command.Gender;
            marketer.BirthDate          = command.BirthDate;
            marketer.MaxMarketerAllowed = command.MaxMarketerAllowed;
            marketer.Documents          = "";
            marketer.Documents          = string.Join(",", command.Documents);
            marketer.Image = command.Image;

            return(Task.FromResult(new UpdateMarketerCommandResponse()));
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> Put(UpdateMarketerCommand command)
        {
            var response = await Bus.Send <UpdateMarketerCommand, UpdateMarketerCommandResponse>(command);

            return(Ok(response));
        }