public RVPresentation GetImportedPresentation(string text, string name) { RVPresentation presentation = null; if (!string.IsNullOrEmpty(text)) { text = Helper.TranslateLabels(text); text = Regex.Replace(text, @"(?!\r)\n", "\r\n"); text = text.Replace("\r\r\n", "\r\n"); presentation = new RVPresentation(name, this.PresentationParams.Height, this.PresentationParams.Width); presentation.Category = this.PresentationParams.SelectedCategory; string[] strArray = delimiterString[0] != "\r\n" ? text.Split(delimiterString, StringSplitOptions.RemoveEmptyEntries) : text.Split(delimiterString, StringSplitOptions.None); StringBuilder stringBuilder = new StringBuilder(); int num = 0; RVSlideGroup group = null; foreach (string part in strArray) { if (!string.IsNullOrEmpty(part)) { string trimmed = part.TrimStart(new char[0]); if (Helper.IsValidLabel(trimmed)) { string slideText = stringBuilder.ToString(); stringBuilder.Clear(); if (!string.IsNullOrEmpty(slideText)) { this.AddNewSlide(presentation, slideText, group); } group = new RVSlideGroup(); if (trimmed.IndexOf("\r\n") < 0) { group.SetLabel(trimmed); num = 0; } else { group.SetLabel(trimmed.Substring(0, trimmed.IndexOf("\r\n"))); stringBuilder.AppendLine(trimmed.Substring(trimmed.IndexOf("\r\n") + 2)); num = 1; } presentation.AddSlideGroup(group); } else { stringBuilder.Append(part); ++num; if (num == this.PresentationParams.DelemetersPerSlide) { string slideText = stringBuilder.ToString(); stringBuilder.Clear(); num = 0; this.AddNewSlide(presentation, slideText, group); } else { stringBuilder.AppendLine(); } } } } this.AddNewSlide(presentation, stringBuilder.ToString(), group); } return(presentation); }
private void AddNewSlide(IRVPresentation importedPresentation, string slideText, RVSlideGroup slideGroup = null) { if (slideGroup != null) { slideGroup.AddSlide(this.GetNewSlide(slideText)); } else { importedPresentation.AddSlide(this.GetNewSlide(slideText)); } }
public RVPresentation GetImportedPresentation(string text, string name) { RVPresentation presentation = null; if (!string.IsNullOrEmpty(text)) { text = Helper.TranslateLabels(text); text = Regex.Replace(text, @"(?!\r)\n", "\r\n"); text = text.Replace("\r\r\n", "\r\n"); presentation = new RVPresentation(name, this.PresentationParams.Height, this.PresentationParams.Width); presentation.Category = this.PresentationParams.SelectedCategory; string[] strArray = delimiterString[0] != "\r\n" ? text.Split(delimiterString, StringSplitOptions.RemoveEmptyEntries) : text.Split(delimiterString, StringSplitOptions.None); StringBuilder stringBuilder = new StringBuilder(); int num = 0; RVSlideGroup group = null; foreach (string part in strArray) { if (!string.IsNullOrEmpty(part)) { string trimmed = part.TrimStart(new char[0]); if (Helper.IsValidLabel(trimmed)) { string slideText = stringBuilder.ToString(); stringBuilder.Clear(); if (!string.IsNullOrEmpty(slideText)) this.AddNewSlide(presentation, slideText, group); group = new RVSlideGroup(); if (trimmed.IndexOf("\r\n") < 0) { group.SetLabel(trimmed); num = 0; } else { group.SetLabel(trimmed.Substring(0, trimmed.IndexOf("\r\n"))); stringBuilder.AppendLine(trimmed.Substring(trimmed.IndexOf("\r\n") + 2)); num = 1; } presentation.AddSlideGroup(group); } else { stringBuilder.Append(part); ++num; if (num == this.PresentationParams.DelemetersPerSlide) { string slideText = stringBuilder.ToString(); stringBuilder.Clear(); num = 0; this.AddNewSlide(presentation, slideText, group); } else { stringBuilder.AppendLine(); } } } } this.AddNewSlide(presentation, stringBuilder.ToString(), group); } return presentation; }
public void SetArrangement(RVPresentation presentation, PcoSongArrangement arrangement) { RVGroupArrangement group; group = presentation.GroupArrangements.FirstOrDefault(x => x.Label.Label == arrangement.Name); if (group == null) { group = presentation.AddNewGroupArrangement(arrangement.Name); } if (!arrangement.Sequence.Any()) { return; } group.SlideGroups.Clear(); foreach (string seq in arrangement.Sequence) { RVSlideGroup selected = null; if (seq.First() == 'v') { if (seq.Length > 1) { selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.Equals("verse " + seq.Substring(1), StringComparison.OrdinalIgnoreCase)); } if (selected == null) { selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.StartsWith("verse", StringComparison.OrdinalIgnoreCase)); } } else if (seq.First() == 'c') { if (seq.Length > 1) { selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.Equals("chorus " + seq.Substring(1), StringComparison.OrdinalIgnoreCase)); } if (selected == null) { selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.StartsWith("chorus", StringComparison.OrdinalIgnoreCase)); } } else if (seq.First() == 'b') { if (seq.Length > 1) { selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.Equals("bridge " + seq.Substring(1), StringComparison.OrdinalIgnoreCase)); } if (selected == null) { selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.StartsWith("bridge", StringComparison.OrdinalIgnoreCase)); } } else if (seq.StartsWith("pc")) { if (seq.Length > 2) { selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.Equals("pre-chorus " + seq.Substring(2), StringComparison.OrdinalIgnoreCase)); } if (selected == null) { selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.StartsWith("pre-chorus", StringComparison.OrdinalIgnoreCase)); } } else if (seq.StartsWith("misc")) { if (seq.Length > 4) { selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.Equals("misc " + seq.Substring(4), StringComparison.OrdinalIgnoreCase)); } if (selected == null) { selected = presentation.SlideGroups.FirstOrDefault(g => g.Label.Label.StartsWith("misc", StringComparison.OrdinalIgnoreCase)); } } if (selected != null) { group.SlideGroups.Add(selected); } } }