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)); }
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()); } }
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)); } }
public async Task <ActionResult <Apartment> > GetById(int id) { return(Ok(await _apartmentRepository.FindById(id))); }