Exemple #1
0
        public virtual ImageInfo GetImageInfo(string itemId, CultureInfo cultureInfo)
        {
            if (cultureInfo == null)
            {
                throw new ArgumentNullException(nameof(cultureInfo));
            }
            if (string.IsNullOrEmpty(itemId))
            {
                throw new ArgumentException(GetMessageOfNullEmpty(), nameof(itemId));
            }

            using (var connection = new DataConnection(cultureInfo))
            {
                var image = connection.Get <IImageFile>().FirstOrDefault(p => p.KeyPath == itemId);
                if (image == null)
                {
                    throw new ArgumentException(string.Format("Image file '{0}' does not exist", itemId));
                }

                return(new ImageInfo
                {
                    Url = MediaUrls.BuildUrl(image),
                    Alt = image.Title
                });
            }
        }
Exemple #2
0
        protected override async Task <Action <AsyncCodeActivityContext> > ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken)
        {
            // Object Container: Use objectContainer.Get<T>() to retrieve objects from the scope
            var objectContainer = context.GetFromContext <IObjectContainer>(TwilioApiScope.ParentContainerPropertyTag);

            // Inputs
            var to                  = To.Get(context);
            var from                = From.Get(context);
            var body                = Body.Get(context);
            var mediaurls           = MediaUrls.Get(context);
            var accountsid          = AccountSid.Get(context);
            var messagingservicesid = MessagingServiceSid.Get(context);
            var applicationsid      = ApplicationSid.Get(context);
            var statuscallback      = StatusCallback.Get(context);
            var providefeedback     = ProvideFeedback.Get(context);
            var maxprice            = MaxPrice.Get(context);
            var validityperiod      = ValidityPeriod.Get(context);
            var smartencoded        = SmartEncoded.Get(context);

            var message = await MessageWrappers.SendMessageAsync(objectContainer.Get <ITwilioRestClient>(), from, to, body, mediaurls, maxprice, validityperiod, smartencoded, accountsid, applicationsid, messagingservicesid, providefeedback, statuscallback);

            // Outputs
            return((ctx) => {
                Message.Set(ctx, message);
            });
        }
        static bool HandleMediaRequest(HttpContext httpContext)
        {
            string rawUrl = httpContext.Request.RawUrl;

            UrlKind urlKind;
            var     mediaUrlData = MediaUrls.ParseUrl(rawUrl, out urlKind);

            // Redirecting to public media url if it isn't pointing to our handler
            if (urlKind == UrlKind.Internal && mediaUrlData.MediaStore != MediaUrls.DefaultMediaStore)
            {
                string publicUrl = MediaUrls.BuildUrl(mediaUrlData, UrlKind.Public);

                if (!string.IsNullOrEmpty(publicUrl) && !publicUrl.StartsWith(MediaUrls.MediaUrl_PublicPrefix))
                {
                    httpContext.Response.Redirect(publicUrl, false);
                    httpContext.Response.ExpiresAbsolute = DateTime.Now.AddDays(1);
                    httpContext.ApplicationInstance.CompleteRequest();
                    return(true);
                }
            }

            if (mediaUrlData != null &&
                (urlKind == UrlKind.Public || urlKind == UrlKind.Internal))
            {
                string rendererUrl = MediaUrls.BuildUrl(mediaUrlData, UrlKind.Renderer);

                httpContext.RewritePath(rendererUrl);
                return(true);
            }

            return(false);
        }
Exemple #4
0
 public virtual void Populate(SearchDocumentBuilder searchDocumentBuilder, IData data)
 {
     if (data is IMediaFile mediaFile &&
         !string.IsNullOrWhiteSpace(mediaFile.MimeType) &&
         FrontendSearchSupported(mediaFile.MimeType))
     {
         searchDocumentBuilder.Url = MediaUrls.BuildUrl(mediaFile);
     }
 }
        private static string ConvertToPublicUrl(string imageUrl)
        {
            var mediaData = MediaUrls.ParseUrl(imageUrl, out _);

            if (mediaData != null)
            {
                return(MediaUrls.BuildUrl(mediaData, UrlKind.Public) ?? imageUrl);
            }
            return(imageUrl);
        }
        private void SaveTweetAndCloseWindow()
        {
            // TODO: validation?

            if (!string.IsNullOrEmpty(MediaUrls))
            {
                _tweetViewModel.MediaUrls = MediaUrls.Replace("\r", "").Split('\n').ToList();
            }

            _tweetViewModel.Status            = Status;
            _tweetViewModel.ScheduledDateTime = ScheduledDateTime;
            _tweetViewModel.Posted            = false;

            _tweetRepository.SaveOrUpdate(new Tweet(_tweetViewModel));
        }
        /// <exclude />
        public static string GetUrl(IMediaFile file, bool isInternal, bool downloadableMedia)
        {
            string url = MediaUrls.BuildUrl(file, isInternal ? UrlKind.Internal : UrlKind.Public);

            if (!downloadableMedia)
            {
                return(url);
            }

            var urlBuilder = new UrlBuilder(url);

            urlBuilder["download"] = "true";

            return(urlBuilder.ToString());
        }
Exemple #8
0
        private BlogListItemModel CreateBlogItemModel(Entries entry, string blogPageUrl)
        {
            using (var con = new DataConnection())
            {
                var image = con.Get <IMediaFile>().FirstOrDefault(m => m.KeyPath == entry.Image);
                var model = new BlogListItemModel
                {
                    Title      = entry.Title,
                    Url        = BlogFacade.GetBlogUrl(entry, blogPageUrl),
                    Tags       = entry.Tags,
                    TagsByType = BlogFacade.GetTagsByType(entry.Tags),
                    ImageUrl   = image != null?BlogFacade.GetFullPath(MediaUrls.BuildUrl(image)) : string.Empty
                };

                return(model);
            }
        }
Exemple #9
0
        private bool IsComparingTicketEqual(TicketComparer comparerTicket)
        {
            var boolOfCounts = ((AssignedMembers.Count() == comparerTicket.AssignedMembers.Count()) && (MediaUrls.Count() == comparerTicket.MediaUrls.Count()) && (Comments.Count() == comparerTicket.MediaUrls.Count()));

            var falseDetected = false;

            if (this.GetHashCode() == comparerTicket.GetHashCode())
            {
                foreach (var element in comparerTicket.AssignedMembers)
                {
                    if (!AssignedMembers.Contains(element))
                    {
                        falseDetected = true;
                    }
                }

                foreach (var element in comparerTicket.Comments)
                {
                    if (!Comments.Contains(element))
                    {
                        falseDetected = true;
                    }
                }

                foreach (var element in comparerTicket.MediaUrls)
                {
                    if (!MediaUrls.Contains(element))
                    {
                        falseDetected = true;
                    }
                }

                if (falseDetected == false)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
        public void Populate(SearchDocumentBuilder searchDocumentBuilder, IData data)
        {
            if (!(data is IMediaFile mediaFile))
            {
                return;
            }

            var text = GetTextToIndex(mediaFile);

            if (string.IsNullOrWhiteSpace(text))
            {
                return;
            }

            searchDocumentBuilder.TextParts.Add(text);
            searchDocumentBuilder.Url = MediaUrls.BuildUrl(mediaFile, UrlKind.Internal);
        }
        internal MediaFileProvider(string rootDirectory, string storeId, string storeDescription, string storeTitle)
        {
            _workingDirectory = PathUtil.Resolve(rootDirectory);
            if (!C1Directory.Exists(_workingDirectory))
            {
                C1Directory.CreateDirectory(_workingDirectory);
            }

            _storeId          = storeId;
            _storeTitle       = storeTitle;
            _storeDescription = storeDescription;

            DataEventSystemFacade.SubscribeToStoreChanged <IMediaFileData>(ClearQueryCache, false);
            DataEventSystemFacade.SubscribeToStoreChanged <IMediaFolderData>(ClearQueryCache, false);

            _mediaUrlProvider = new DefaultMediaUrlProvider(storeId);
            MediaUrls.RegisterMediaUrlProvider(storeId, _mediaUrlProvider);
        }
Exemple #12
0
        public static string GetMediaUrl(string mediaPath)
        {
            if (mediaPath == null)
            {
                return(string.Empty);
            }

            string[] parts = mediaPath.Split(new[] { ':' });

            string mediaStore = parts[0];
            Guid   mediaId    = new Guid(parts[1]);

            string mediaUrl = MediaUrls.BuildUrl(new MediaUrlData {
                MediaStore = mediaStore, MediaId = mediaId, QueryParameters = new NameValueCollection()
            },
                                                 UrlKind.Public);

            return(mediaUrl.Replace("_jpg", ".jpg").Replace("_mov", ".mov").Replace("_m4v", ".m4v").Replace("_swf", ".swf"));
        }
        public virtual string GetMediaUrl(string mediaPath)
        {
            if (string.IsNullOrEmpty(mediaPath))
            {
                return(string.Empty);
            }

            string[] parts = mediaPath.Split(new[] { ':' });

            string mediaStore = parts[0];
            Guid   mediaId    = new Guid(parts[1]);

            string mediaUrl = MediaUrls.BuildUrl(new MediaUrlData {
                MediaStore = mediaStore, MediaId = mediaId, QueryParameters = new NameValueCollection()
            },
                                                 UrlKind.Public);

            // Allows media player to receive a nice url with an extension
            return(new Regex("_[^_]").Replace(mediaUrl, "$"));
        }
Exemple #14
0
        internal MediaProvider(string storeId, string storeTitle, string storeDescription, string basePath)
        {
            StoreId          = storeId;
            StoreDescription = storeDescription;
            StoreTitle       = storeTitle;
            BasePath         = basePath;

            _fileSystemWatcher = new FileSystemWatcher(PathUtil.Resolve(BasePath), "*.*")
            {
                NotifyFilter          = NotifyFilters.LastWrite | NotifyFilters.FileName,
                EnableRaisingEvents   = true,
                IncludeSubdirectories = true,
            };

            _fileSystemWatcher.Created += FileChange;
            _fileSystemWatcher.Deleted += FileChange;
            _fileSystemWatcher.Renamed += FileChange;
            _fileSystemWatcher.Error   += FileChangeOverflow;

            MediaUrls.RegisterMediaUrlProvider(storeId, this);
        }
Exemple #15
0
        public BrowserViewSettings TryGetBrowserViewSettings(EntityToken entityToken, bool showPublishedView)
        {
            if (!(entityToken is DataEntityToken dataEntityToken) || dataEntityToken.InterfaceType != typeof(IMediaFile))
            {
                return(null);
            }

            var file = (IMediaFile)dataEntityToken.Data;

            if (file == null || !MimeTypeInfo.IsBrowserPreviewableFile(file.MimeType))
            {
                return(null);
            }

            string url        = MediaUrls.BuildUrl(file);
            var    urlBuilder = new UrlBuilder(url)
            {
                ["download"] = "false"
            };

            return(new BrowserViewSettings {
                Url = urlBuilder.ToString(), ToolingOn = false
            });
        }
Exemple #16
0
        /// <summary>
        /// Pasres the url, and checks if the urls can be validated without making an http request (for internal urls=.
        /// </summary>
        private UrlPreprocessResult PreprocessUrl(
            string url,
            string pageUrl,
            string serverUrl,
            out BrokenLinkType brokenLinkType,
            out RequestValidationInfo requestValidationInfo)
        {
            BrokenLinkType cachedResult;

            requestValidationInfo = null;

            if (_brokenLinks.TryGetValue(url, out cachedResult))
            {
                brokenLinkType = cachedResult;
                return(brokenLinkType == BrokenLinkType.None ? UrlPreprocessResult.Valid : UrlPreprocessResult.Broken);
            }

            // Trying to parse as a page url first
            PageUrlData pageUrlData = null;

            try
            {
                if (IsKnownHostname(url)) // Workaround "if" for early vesrions of 4.0 beta
                {
                    pageUrlData = PageUrls.ParseUrl(url);
                }
            }
            catch (UriFormatException)
            {
            }

            if (pageUrlData != null)
            {
                Guid linkedPageId = pageUrlData.PageId;

                IPage page;

                using (new DataScope(pageUrlData.PublicationScope, pageUrlData.LocalizationScope))
                {
                    page = PageManager.GetPageById(linkedPageId);
                }

                if (page == null)
                {
                    if (pageUrlData.PublicationScope == PublicationScope.Published)
                    {
                        using (new DataScope(PublicationScope.Unpublished, pageUrlData.LocalizationScope))
                        {
                            if (PageManager.GetPageById(linkedPageId) != null)
                            {
                                brokenLinkType = BrokenLinkType.PageNotPublished;
                                return(SaveLinkCheckResult(url, brokenLinkType) ? UrlPreprocessResult.Valid : UrlPreprocessResult.Broken);
                            }
                        }
                    }

                    brokenLinkType = BrokenLinkType.Page;
                    return(SaveLinkCheckResult(url, brokenLinkType) ? UrlPreprocessResult.Valid : UrlPreprocessResult.Broken);
                }

                // If no PathInfo - page link is already valid
                if (string.IsNullOrEmpty(pageUrlData.PathInfo))
                {
                    brokenLinkType = BrokenLinkType.None;
                    return(UrlPreprocessResult.Valid);
                }

                // If there's pathInfo -> making a request to check whether the link is actually broken
                requestValidationInfo = GetRequestValidationInfo(url, pageUrl, serverUrl, BrokenLinkType.Page);
                if (requestValidationInfo == null)
                {
                    brokenLinkType = BrokenLinkType.Page;
                    return(UrlPreprocessResult.Broken);
                }

                brokenLinkType = BrokenLinkType.None;
                return(UrlPreprocessResult.NeedToBeValidatedByRequest);
            }

            MediaUrlData mediaUrlData = MediaUrls.ParseUrl(url);

            if (mediaUrlData != null)
            {
                Guid   mediaId    = mediaUrlData.MediaId;
                string mediastore = mediaUrlData.MediaStore;

                bool mediaExist = DataFacade.GetData <IMediaFile>().Any(f => f.StoreId == mediastore && f.Id == mediaId);

                brokenLinkType = mediaExist ? BrokenLinkType.None : BrokenLinkType.MediaLibrary;
                return(SaveLinkCheckResult(url, brokenLinkType) ? UrlPreprocessResult.Valid : UrlPreprocessResult.Broken);
            }

            var linkType = UrlHelper.IsAbsoluteLink(url) ? BrokenLinkType.External : BrokenLinkType.Relative;

            requestValidationInfo = GetRequestValidationInfo(url, pageUrl, serverUrl, linkType);
            if (requestValidationInfo == null)
            {
                brokenLinkType = linkType;
                return(UrlPreprocessResult.Broken);
            }

            brokenLinkType = BrokenLinkType.None;
            return(UrlPreprocessResult.NeedToBeValidatedByRequest);
        }
Exemple #17
0
        public string ToPublicUrl(string internalMediaUrl, UrlSpace urlSpace)
        {
            int openBracketIndex = internalMediaUrl.IndexOf("(", StringComparison.Ordinal);

            if (openBracketIndex < 0)
            {
                return(null);
            }

            int closingBracketOffset = internalMediaUrl.IndexOf(")", openBracketIndex + 1, StringComparison.Ordinal);

            if (closingBracketOffset < 0)
            {
                return(null);
            }

            Guid mediaId;


            string mediaStore;
            string mediaIdStr = internalMediaUrl.Substring(openBracketIndex + 1, closingBracketOffset - openBracketIndex - 1);

            int semicolonOffset = mediaIdStr.IndexOf(":", StringComparison.Ordinal);

            if (semicolonOffset > 0)
            {
                mediaStore = mediaIdStr.Substring(0, semicolonOffset);
                mediaIdStr = mediaIdStr.Substring(semicolonOffset + 1);
            }
            else
            {
                mediaStore = DefaultMediaStore;
            }

            if (!Guid.TryParse(mediaIdStr, out mediaId))
            {
                return(null);
            }

            UrlBuilder parsedOldUrl;

            try
            {
                parsedOldUrl = new UrlBuilder(internalMediaUrl);
            }
            catch
            {
                Log.LogWarning(LogTitle, "Failed to parse url '{0}'".FormatWith(internalMediaUrl));
                return(null);
            }

            NameValueCollection queryParams = parsedOldUrl.GetQueryParameters();

            return(MediaUrls.BuildUrl(
                       new MediaUrlData
            {
                MediaId = mediaId,
                MediaStore = mediaStore,
                QueryParameters = queryParams
            },
                       UrlKind.Public));
        }