public async Task <IActionResult> Approve(long id)
        {
            try
            {
                var proposal = await _repository.GetByIdAsync(id);

                proposal.Status = ProposalStatus.Accepted;

                var advert = await _adverRepository.GetByIdAsync(proposal.AdvertId.GetValueOrDefault());

                advert.Active = false;

                foreach (var anotherProposal in (await _repository.GetAllAsync()).Where(prop => prop.AdvertId == advert.Id && prop.Id != proposal.Id && prop.Status == ProposalStatus.Pending))
                {
                    anotherProposal.Status = ProposalStatus.Canceled;
                }

                await _unitOfWork.Commit();

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }