public async Task <IActionResult> Execute(JObject jObj)
        {
            if (jObj == null)
            {
                throw new ArgumentNullException(nameof(jObj));
            }

            var parameter    = _requestBuilder.GetSearchTags(jObj);
            var searchResult = await _repository.Search(parameter);

            _halResponseBuilder.AddLinks(l => l.AddSelf("/" + Constants.RouteNames.Tags + "/" + Constants.RouteNames.Search));
            if (searchResult != null && searchResult.Content != null)
            {
                var tags = searchResult.Content;
                foreach (var tag in tags)
                {
                    _tagEnricher.Enrich(_halResponseBuilder, tag);
                }

                double r       = (double)searchResult.TotalResults / (double)parameter.Count;
                var    nbPages = Math.Ceiling(r);
                nbPages = nbPages == 0 ? 1 : nbPages;
                for (var page = 1; page <= nbPages; page++)
                {
                    _halResponseBuilder.AddLinks(l => l.AddOtherItem("navigation", new Dtos.Link(GetTagLink(), page.ToString())));
                }
            }

            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
        public async Task <IActionResult> Execute()
        {
            var tags = await _repository.GetAll();

            _halResponseBuilder.AddLinks(l => l.AddSelf("/" + Constants.RouteNames.Tags));
            foreach (var tag in tags)
            {
                _tagEnricher.Enrich(_halResponseBuilder, tag);
            }

            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
示例#3
0
        public async Task <IActionResult> Execute(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ArgumentNullException(nameof(id));
            }

            var service = await _repository.Get(id);

            if (service == null)
            {
                return(new NotFoundResult());
            }

            _halResponseBuilder.AddLinks(l => l.AddSelf(GetTagLink(id)));
            _tagEnricher.Enrich(_halResponseBuilder, service);
            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
        private async Task ProcessPost(InstaMedia item)
        {
            log.LogInformation(
                "Processing media [{0}] - [{1}] [{2}] with Tags: {3}",
                item.Caption?.Text,
                item.DeviceTimeStamp,
                item.Location?.ShortName,
                item.UserTags.Count);

            InstaImage image = item.Images.OrderByDescending(x => x.Height).FirstOrDefault();

            if (image == null)
            {
                log.LogWarning("Image not found");
                return;
            }

            var caption = await tagsManager.Enrich(item).ConfigureAwait(false);

            var captionText = caption.Generate();

            if (captionText == caption.Original)
            {
                log.LogInformation("Caption is same as original");
                return;
            }

            var fileName = await DownloadImage(item, image).ConfigureAwait(false);

            await instagram.MediaProcessor.DeleteMediaAsync(item.Identifier, item.MediaType).ConfigureAwait(false);

            var result = await UploadImage(fileName, captionText, item.Location).ConfigureAwait(false);

            if (!result.Succeeded)
            {
                log.LogError("Error: {0}", result.Info.Message);
            }

            File.Delete(fileName);
        }