private string FinalizePosterUrl(string source) { string posterUrl = null; if (m_posterUrl != null) { posterUrl = m_posterUrl.BuildUrl(); } else if (m_posterTransformation != null) { posterUrl = Clone().Format("jpg").Transform(m_posterTransformation.Clone()).BuildUrl(source); } else if (m_posterSource != null) { if (!String.IsNullOrEmpty(m_posterSource)) { posterUrl = Clone().Format("jpg").BuildUrl(m_posterSource); } } else { posterUrl = Clone().Format("jpg").BuildUrl(source); } return(posterUrl); }
private void AppendVideoSources(StringBuilder sb, string source, string sourceType) { var sourceUrl = Clone(); if (m_sourceTransforms != null) { Transformation sourceTransformation = null; if (m_sourceTransforms.TryGetValue(sourceType, out sourceTransformation) && sourceTransformation != null) { if (sourceUrl.m_transformation == null) { sourceUrl.Transform(sourceTransformation.Clone()); } else { sourceUrl.m_transformation.Chain(); var newTransform = sourceTransformation.Clone(); newTransform.NestedTransforms.AddRange(sourceUrl.m_transformation.NestedTransforms); sourceUrl.Transform(newTransform); } } } var src = sourceUrl.Format(sourceType).BuildUrl(source); var videoType = sourceType; if (sourceType.Equals("ogv", StringComparison.OrdinalIgnoreCase)) { videoType = "ogg"; } string mimeType = "video/" + videoType; sb.Append("<source src='").Append(src).Append("' type='").Append(mimeType).Append("'>"); }
public Url Clone() { var url = (Url)MemberwiseClone(); if (m_transformation != null) { url.m_transformation = m_transformation.Clone(); } if (m_posterTransformation != null) { url.m_posterTransformation = m_posterTransformation.Clone(); } if (m_posterUrl != null) { url.m_posterUrl = m_posterUrl.Clone(); } if (m_sourceTypes != null) { url.m_sourceTypes = new string[m_sourceTypes.Length]; Array.Copy(m_sourceTypes, url.m_sourceTypes, m_sourceTypes.Length); } if (m_sourceTransforms != null) { url.m_sourceTransforms = new Dictionary <string, Transformation>(); foreach (var sourceTransform in m_sourceTransforms) { url.m_sourceTransforms.Add(sourceTransform.Key, sourceTransform.Value.Clone()); } } url.m_customParts = new List <string>(m_customParts); return(url); }
/// <summary> /// Creates a new object that is a deep copy of the current instance. /// </summary> /// <returns> /// A new object that is a deep copy of this instance. /// </returns> public Url Clone() { Url newUrl = (Url)this.MemberwiseClone(); if (m_transformation != null) { newUrl.m_transformation = this.m_transformation.Clone(); } if (m_posterTransformation != null) { newUrl.m_posterTransformation = m_posterTransformation.Clone(); } if (m_posterUrl != null) { newUrl.m_posterUrl = m_posterUrl.Clone(); } if (m_sourceTypes != null) { newUrl.m_sourceTypes = new string[m_sourceTypes.Length]; Array.Copy(m_sourceTypes, newUrl.m_sourceTypes, m_sourceTypes.Length); } if (m_sourceTransforms != null) { newUrl.m_sourceTransforms = new Dictionary <string, Transformation>(); foreach (var item in m_sourceTransforms) { newUrl.m_sourceTransforms.Add(item.Key, item.Value.Clone()); } } newUrl.m_customParts = new List <string>(m_customParts); return(newUrl); }