public async Task <PersonelVm> Handle(CreatePersonelAddressCommand request, CancellationToken cancellationToken)
        {
            var tranId = "";

            try
            {
                DomainLayer.Entities.PersonelAddress newPersonelAddress = request;
                await ValidateInput(request);

                tranId = AppDbContext.BeginTransaction();
                await DoDbActions(newPersonelAddress, request, cancellationToken);

                await AppDbContext.CommitTransactionAsync(tranId);

                return(await PersonelFinder.Handle(new GetPersonelByIdQuery { PersonelId = request.PersonelId }, cancellationToken));
            }
            catch (Exception e)
            {
                await Logger.ErrorAsync(e);

                await AppDbContext.RollbackTransactionAsync(tranId);

                throw;
            }
        }
Example #2
0
        private async System.Threading.Tasks.Task DoDbActions(
            DomainLayer.Entities.PersonelAddress personelAddress,
            UpdatePersonelAddressCommand request,
            CancellationToken cancellationToken)
        {
            var personel = await AppDbContext.Personels.FindAsync(request.PersonelId);

            await UpdateAddressInPersonel(personelAddress, personel, cancellationToken);
        }
Example #3
0
        private async System.Threading.Tasks.Task CheckForPersonel(DomainLayer.Entities.PersonelAddress value, List <Exception> res)
        {
            var personel = await PersonelFinder.Handle(new GetPersonelByIdQuery
            {
                PersonelId = value.Personel.Id
            }, new System.Threading.CancellationToken());

            if (personel == null)
            {
                res.Add(new NotFoundException());
            }
            GC.SuppressFinalize(personel);
        }
Example #4
0
        private async System.Threading.Tasks.Task UpdateAddressInPersonel(
            DomainLayer.Entities.PersonelAddress personelAddress,
            DomainLayer.Entities.Personel personel,
            CancellationToken cancellationToken)
        {
            var address = personel.Addresses.FirstOrDefault(m => m.Id == personelAddress.Id);

            address.City    = personelAddress.City;
            address.Country = personelAddress.Country;
            address.No      = personelAddress.No;
            address.Street  = personelAddress.Street;

            await AppDbContext.SaveChangesAsync(cancellationToken);
        }
 private async System.Threading.Tasks.Task AddAddressIntoPersonel(DomainLayer.Entities.PersonelAddress newPersonelAddress, DomainLayer.Entities.Personel personel, CancellationToken cancellationToken)
 {
     personel.Addresses.Add(newPersonelAddress);
     await AppDbContext.SaveChangesAsync(cancellationToken);
 }