Ejemplo n.º 1
0
        public async Task <Bid> Open(Bid bid)
        {
            var project = await _client.GetProjectAsync(bid.ProjectId);

            if (project == null)
            {
                throw new InvalidBid();
            }

            var existingBid = await _bidRepository.GetByProjectAndFreelancer(bid.ProjectId, bid.FreelancerId);

            if (existingBid != null)
            {
                throw new InvalidBid("User already has a bid pending");
            }

            var createdBid = await _bidRepository.Create(bid);

            return(createdBid ??
                   throw new InvalidBid());
        }