Example #1
0
        public async Task <bool> answerRequest(AnswerRequestDTO answer)
        {
            Request request = await requestRepository.GetOneByIdAsync(answer.RequestId);

            if (request == null || request.ConstantId != RequestStatus.Waiting)
            {
                throw new BadRequestException("No existe ese request");
            }

            if (!answer.answer)
            {
                request.ConstantId = RequestStatus.Denied;
                await requestRepository.UpdateOneAsync(request);

                return(true);
            }
            else
            {
                if (request.ConstantId != RequestStatus.Waiting)
                {
                    throw new BadRequestException("Esta solicitud ya esta respondida");
                }

                if (request.SharedSpace.IsOccupied)
                {
                    throw new BadRequestException("Esta ocupado el espacio compartido que se solicita");
                }
                request.ConstantId = RequestStatus.Accepted;

                SharedSpace SharedSpace = await sharedSpaceRepository.FindOneByIdAsync(request.SharedSpace.Id);

                foreach (var item in SharedSpace.Requests)
                {
                    if (item.ConstantId == RequestStatus.Waiting)
                    {
                        if (item.Id != answer.RequestId)
                        {
                            item.ConstantId = RequestStatus.Denied;
                        }
                        else
                        {
                            item.ConstantId = RequestStatus.Accepted;
                        }
                        await requestRepository.UpdateOneAsync(item);
                    }
                }
                SharedSpace.IsOccupied = true;
                await sharedSpaceRepository.UpdateAsync(SharedSpace);
            }



            return(true);
        }
Example #2
0
        public async Task <IActionResult> AnswerRequest([FromBody] AnswerRequestDTO requestDto)
        {
            try
            {
                var response = await requestService.answerRequest(requestDto);

                return(Ok());
            }
            catch (Exception e)
            {
                return(HttpExceptionMapper.ToHttpActionResult(e));
            }
        }