示例#1
0
        public Task <bool> Handle(DeleteApartment request, CancellationToken cancellationToken)
        {
            var currentApartment = _apartmentRepository.FindById(request.Id);

            if (currentApartment == null)
            {
                Mediator.RaiseNotification(new DomainNotification(nameof(Apartment), "Apartamento não existe", NotificationType.Error));

                return(Task.FromResult(false));
            }

            var hasResidents = _apartmentRepository.HasResidents(currentApartment.Id);

            if (hasResidents)
            {
                Mediator.RaiseNotification(new DomainNotification(nameof(Apartment), "Apartamento com moradores não pode ser eliminado", NotificationType.Error));

                return(Task.FromResult(false));
            }

            currentApartment.Delete(User.GetUserId());
            _apartmentRepository.Update(currentApartment);

            if (Commit())
            {
                Mediator.RaiseNotification(new DomainNotification(nameof(Apartment), "Operação realizada com sucesso", NotificationType.Info));

                return(Task.FromResult(true));
            }

            Mediator.RaiseNotification(new DomainNotification(nameof(Apartment), "Erro ao realizar a operação", NotificationType.Error));

            return(Task.FromResult(false));
        }
示例#2
0
 Task <OneOf <Success, NotFound> > IRequestHandler <DeleteApartment, OneOf <Success, NotFound> > .Handle(DeleteApartment request, CancellationToken cancellationToken)
 {
     return(this.apartmentRepository.Delete(request.ApartmentId, cancellationToken));
 }