public void SetContent(int id, SetAdvertisementContentMessage message)
        {
            var advertisement = _advertisementRepository.Get(id);

            if (advertisement == null)
            {
                throw new Exception("Anúncio não encontrado");
            }

            if (advertisement.Content != null && advertisement.Status == Domain.AdvertisementStatus.PendingContentApproval)
            {
                throw new Exception("Esse anúncio conteúdo atribuído pendente de aprovação");
            }

            if (advertisement.Content != null && advertisement.Status != Domain.AdvertisementStatus.PendingContentDispatch)
            {
                throw new Exception("Esse anúncio possui conteúdo aprovado");
            }

            var attachment = new Attachment();

            attachment.File       = message.File;
            attachment.Name       = message.FileName;
            advertisement.Content = attachment;
            advertisement.Status  = AdvertisementStatus.PendingContentApproval;
            _advertisementRepository.SaveChanges();
        }
예제 #2
0
        public Report ReportAdvertisement(Report report)
        {
            var advertisement = _advertisementRepository.Get(report.AdvertisementId);

            if (advertisement.Deleted)
            {
                return(new Report());
            }
            advertisement.Reported = true;
            _advertisementRepository.Update(advertisement, report.AdvertisementId);
            var inboxList = _inboxRepository.GetAll().ToList();
            var newInbox  = new Inbox();

            foreach (var inbox in inboxList)
            {
                if (inbox.UserId != advertisement.UserId)
                {
                    continue;
                }
                newInbox = inbox;
                break;
            }

            newInbox.Reports += 1;
            _inboxRepository.Update(newInbox, newInbox.Id);
            var newReport = new Report
            {
                UserId          = report.UserId,
                AdvertisementId = report.AdvertisementId,
                Description     = report.Description,
                IsVerified      = report.IsVerified
            };

            return(newReport);
        }
        public AdvertisementViewModel Get(string publicId)
        {
            var advertisermentList = _advertisementRepository.Get(publicId);
            var vModel             = _mapper.Map <Advertisement, AdvertisementViewModel>(advertisermentList);

            return(vModel);
        }
예제 #4
0
        public AdPage GetAdvertisementDetail(int id, int userId)
        {
            var adPage = new AdPage
            {
                Images = new List<string>(),
                Attributes = new List<Attributes>()
            };
            var attribute = new Attributes();
            var advertisement = _advertisementRepository.Get(id);
            if (advertisement == null) return adPage;
            var reports = _reportRepository.GetAll().ToList();
            adPage.isReported = reports.Any(report => report.AdvertisementId == id && report.UserId == userId);
            adPage.isDeleted = advertisement.Deleted;
            adPage.UserId = advertisement.UserId;
            adPage.ExpiresIn = advertisement.ExpiryDays;
            adPage.OfferCount = advertisement.OfferCount;
            adPage.ViewCount = advertisement.ViewCount;
            adPage.PostedDateTime = advertisement.PostedOn;
            var category = _categoryRepository.Get(advertisement.CategoryId);
            adPage.Category = category.Name;
            adPage.IconId = category.Icon;
            var images = _imageRepository.GetAll().ToList();
            foreach (var image in images)
                if (image.AdvertisementId == id)
                    adPage.Images.Add(image.Img);
            var attributes = _attributeRepository.GetAll().ToList();
            var length = attributes.Count;
            for (var index = 0; index < length; index++)
                if (attributes.ToList()[index].AdvertisementId == id)
                {
                    attribute.Id = attributes[index].Id;
                    attribute.Name = attributes[index].Name;
                    attribute.Value = attributes[index].Value;
                    adPage.Attributes.Add(attribute);
                    attribute = new Attributes();
                }

            return adPage;
        }
 public IActionResult AddView(int advertisementId)
 {
     try
     {
         var advertisement = _advertisementRepository.Get(advertisementId);
         advertisement.ViewCount += 1;
         _advertisementRepository.Update(advertisement, advertisementId);
         return(Ok());
     }
     catch (Exception exception)
     {
         return(BadRequest(exception.Message));
     }
 }
예제 #6
0
        // Hirdetések listázása
        public IEnumerable <AdvertisementBasicDTO> GetRange(Models.Range range)
        {
            var list = AdvertisementRepository.Get(range);

            return(list.ToBasicDTO());
        }
예제 #7
0
        public IEnumerable <AdTile> GetOfferedAdTiles(int userId)
        {
            var advertisements = _advertisementRepository.GetAdsByUser(userId).ToList();
            var categories     = _categoryRepository.GetAll().ToList();
            var attributes     = _attributeRepository.GetAll().ToList();
            var images         = _imageRepository.GetAll().ToList();
            var adTiles        = new List <AdTile>();
            var adTile         = new AdTile();
            var offeredAds     = new List <Offer>();

            foreach (var advertisement in advertisements.ToList())
            {
                if (advertisement.OfferCount > 0)
                {
                    var offers   = _context.Offer.ToList();
                    var newOffer = from offer in offers
                                   let userAd = _advertisementRepository.Get(offer.AdvertisementId)
                                                where userAd.UserId == userId
                                                select offer;
                    offeredAds.AddRange(newOffer);
                }
                else
                {
                    advertisements.Remove(advertisement);
                }
            }

            var totalOfferedAdsCount = offeredAds.Count;

            for (var index = 0; index < totalOfferedAdsCount; index++)
            {
                if (offeredAds[index].AdvertisementId == advertisements[index].Id)
                {
                    adTile.Price           = "Offered Amount : ₹ " + offeredAds[index].Price;
                    adTile.TimeStamp       = offeredAds[index].TimeStamp;
                    adTile.AdvertisementId = advertisements[index].Id;
                    adTile.OfferedBy       = offeredAds[index].UserId;
                }

                foreach (var category in categories)
                {
                    if (category.Id == advertisements[index].CategoryId)
                    {
                        adTile.Category = category.Name;
                        adTile.IconId   = category.Icon;
                        break;
                    }
                }

                foreach (var attribute in attributes)
                {
                    switch (attribute.Name)
                    {
                    case "Title" when attribute.AdvertisementId == adTile.AdvertisementId:
                        adTile.Title = attribute.Value;
                        break;
                    }
                }

                foreach (var image in images)
                {
                    if (image.AdvertisementId == adTile.AdvertisementId)
                    {
                        adTile.ImageUrl = image.Img;
                        break;
                    }
                }

                adTiles.Add(adTile);
            }

            return(adTiles);
        }
 public IActionResult Details(int id)
 {
     return(View(repository.Get(id)));
 }