Пример #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
 public async Task <ActionResult <Office> > CreateOffice([FromBody] CreateOfficeRequest officeRequest)
 {
     try
     {
         var office = new Office
         {
             Title           = officeRequest.Title,
             OfficeApartment = await _apartmentRepository.FindById(officeRequest.OfficeApartmentId),
             Address         = officeRequest.Address
         };
         return(Ok(await _officeRepository.Create(office)));
     }
     catch (ArgumentException)
     {
         return(Conflict());
     }
 }
Пример #3
0
        public async Task <ActionResult <Travel> > CreateEmployeeTravel([FromBody] CreateEmployeeTravelRequest request)
        {
            try
            {
                if (!await _employeeTravelRepository.CheckTravelsByEmployeeId(request.EmployeeId, request.TravelId))
                {
                    return(Conflict(" This employee already has this trip "));
                }

                var employeeTravel = new EmployeeTravel
                {
                    Employee = await _employeeRepository.FindById(request.EmployeeId),
                    Travel   = await _travelRepository.FindByIdWithOrganizedBy(request.TravelId),
                    Confirm  = request.Confirm,
                };
                if (request.NeedApartment)
                {
                    var _employeeTravel = await _employeeTravelRepository.Create(employeeTravel);

                    var _office = await _officeRepository.FindById(_employeeTravel.Travel.TravelTo.Id);

                    await _apartmentRepository.AddGuest(await _apartmentRepository.FindById(_office.OfficeApartment.Id),
                                                        _employeeTravel);

                    return(Ok());
                }
                else
                {
                    return(Ok(await _employeeTravelRepository.Create(employeeTravel)));
                }
            }
            catch (ArgumentException e)
            {
                return(Conflict(e.Message));
            }
        }
Пример #4
0
 public async Task <ActionResult <Apartment> > GetById(int id)
 {
     return(Ok(await _apartmentRepository.FindById(id)));
 }