Ejemplo n.º 1
0
        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 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;
        }