public AdEditBoxPresentationModel(IAdEditBox view, IAdViewPreview preview, IProjectService projectService, IConfigurationService configurationService) { this.View = view; this.preview = preview; this.projectService = projectService; this.configurationService = configurationService; this.CloseCommand = new DelegateCommand <object>(this.Close); this.SaveCommand = new DelegateCommand <object>(this.Save, this.CanSave); this.DeleteCommand = new DelegateCommand <object>(this.Delete); this.TemplateTypes = this.ParseTemplateTypes(); if (this.TemplateTypes.Count > 0) { this.SelectedTemplateType = this.TemplateTypes[0]; } this.adOpportunity = new AdOpportunity { TemplateType = this.SelectedTemplateType }; this.projectService.GetCurrentProject().AdOpportunities.Add(this.adOpportunity); this.View.Model = this; this.preview.Model = this; }
private static void WriteAdOpportunities(XmlWriter writer, CompositeManifestInfo manifestInfo) { if (manifestInfo.AdOpportunities.Count > 0) { StreamInfo streamInfo = WriteCompositeManifestStandardStreamIndex(manifestInfo.AdsDataStreamName, manifestInfo.AdOpportunities.Count); for (int i = 0; i < manifestInfo.AdOpportunities.Count; i++) { AdOpportunity adOpportunity = manifestInfo.AdOpportunities[i]; StringBuilder output = new StringBuilder(); XmlWriter tempWriter = CreateWriter(output, true, true); if (tempWriter != null) { tempWriter.WriteStartElement("InStreamEnvelope"); tempWriter.WriteAttributeString("Id", adOpportunity.ID.ToString()); tempWriter.WriteAttributeString("Action", "Add"); tempWriter.WriteAttributeString("TargetID", string.Empty); tempWriter.WriteAttributeString("Priority", "1"); tempWriter.WriteStartElement("AdOpportunity"); tempWriter.WriteAttributeString("ID", adOpportunity.ID.ToString()); tempWriter.WriteAttributeString("Time", adOpportunity.Time.ToString(CultureInfo.InvariantCulture)); tempWriter.WriteAttributeString("TemplateType", adOpportunity.TemplateType); tempWriter.WriteEndElement(); tempWriter.Close(); byte[] envelopeBytes = Encoding.UTF8.GetBytes(output.ToString()); string encodedEnvelope = Convert.ToBase64String(envelopeBytes); ulong?duration = null; if (i == manifestInfo.AdOpportunities.Count - 1) { duration = 10000000; } Chunk chunk = new Chunk(null, (ulong)adOpportunity.Time, duration, encodedEnvelope); streamInfo.Chunks.Add(chunk); } } WriteStreamIndex(writer, streamInfo, true); } }
public void SetElement(object value) { AdOpportunity newAdOpportunity = value as AdOpportunity; if (newAdOpportunity != null) { this.projectService.GetCurrentProject().AdOpportunities.Remove(this.adOpportunity); this.adOpportunity = newAdOpportunity; if (!this.projectService.GetCurrentProject().AdOpportunities.Contains(this.adOpportunity)) { this.projectService.GetCurrentProject().AdOpportunities.Add(this.adOpportunity); } this.SetPosition(TimeSpan.FromTicks(this.adOpportunity.Time)); this.View.Close(); } }
public void SetElement(object value, CommentMode mode) { var newAdOpportunity = value as AdOpportunity; if (newAdOpportunity != null) { this.sequenceRegistry.CurrentSequence.AdOpportunities.Remove(this.adOpportunity); this.adOpportunity = newAdOpportunity; if (!this.sequenceRegistry.CurrentSequence.AdOpportunities.Contains(this.adOpportunity)) { this.sequenceRegistry.CurrentSequence.AdOpportunities.Add(this.adOpportunity); } this.SetPosition(TimeSpan.FromTicks(this.adOpportunity.Time)); this.View.Close(); } }