public async Task <ActionResult <AdModel> > Valid(Guid AdId, [FromServices] FunctionalUnitOfWork functionalUnitOfWork)
        {
            var current = await functionalUnitOfWork.AdRepository.FirstOrDefault(o => o.Id == AdId);

            var price = (await functionalUnitOfWork.AdPriceRepository.All()).FirstOrDefault(p => p.Id == current.AdPriceId);

            if (price?.Value == 0 || !string.IsNullOrEmpty(current.PaymentInformation))
            {
                current.IsValid      = true;
                current.ValidateDate = DateTime.UtcNow;
                current.OwnerId      = User.NameIdentifier();
                await functionalUnitOfWork.AdRepository.Update(current);

                functionalUnitOfWork.SaveChanges();
                await _eventTrackingService.Create(current.OwnerId, "Ad", "validate");

                await _notificationService.Create(current.OwnerId, $"Votre annonce {current.Title} a été validée !", $"/ads/details/{current.Id}", "reminder", "reminder", "reminder", NotificationTypeEnum.ValidateAd);

                await SendEmailTemplate(current);

                return(Ok(current));
            }

            return(BadRequest());
        }
        public async Task <IActionResult> PutCard(Guid id, Card Card)
        {
            if (id != Card.Id)
            {
                return(BadRequest());
            }

            await _UnitOfWork.CardRepository.Update(Card);

            _UnitOfWork.SaveChanges();

            await _UnitOfWork.CardRepository.AddStatus(new CardStatu
            {
                Card = Card, StatusDate = DateTime.UtcNow, Status = CardStatus.Updated, UserId = User.NameIdentifier()
            });

            _UnitOfWork.SaveChanges();

            await HubContext.Clients.All.SendAsync("Card.Update", Card);

            return(NoContent());
        }