Ejemplo n.º 1
0
        public ActionResult ChangeDescription(int id, [FromBody] SlideData slideData)
        {
            var slide = DbContext.Slides.FirstOrDefault(s => s.IdSlide == id);

            slide.Title       = slideData.Title;
            slide.Description = slideData.Description;

            DbContext.SaveChanges();
            return(Ok("Lecture changed"));
        }
Ejemplo n.º 2
0
        private void DisplaySlide(SlideData slide, Guid mediaItemId, SlideData previousSlide, int oldIndex, int newIndex)
        {
            var direction = newIndex >= oldIndex ? SlideDirection.Forward : SlideDirection.Reverse;

            var fadeType = GetSlideFadeType(slide, previousSlide, direction);

            var imageFilePath = Path.Combine(_slideshowStagingFolder, slide.ArchiveEntryName);

            PlaceImage(
                mediaItemId,
                MediaClassification.Slideshow,
                imageFilePath,
                false,
                fadeType,
                (newMediaId, newMediaClassification) =>
            {
                // starting...
                if (previousSlide == null)
                {
                    OnMediaChangeEvent(CreateMediaEventArgs(newMediaId, newMediaClassification, MediaChange.Starting));
                }
                else
                {
                    OnSlideTransitionEvent(CreateSlideTransitionEventArgs(mediaItemId, SlideTransition.Started, oldIndex, newIndex));
                }
            },
                (hiddenMediaId, hiddenMediaClassification) =>
            {
                // stopping...
                if (previousSlide == null)
                {
                    OnMediaChangeEvent(CreateMediaEventArgs(hiddenMediaId, hiddenMediaClassification, MediaChange.Stopping));
                }
            },
                (hiddenMediaId, hiddenMediaClassification) =>
            {
                // stopped...
                if (previousSlide == null)
                {
                    OnMediaChangeEvent(CreateMediaEventArgs(hiddenMediaId, hiddenMediaClassification, MediaChange.Stopped));
                }
            },
                (newMediaId, newMediaClassification) =>
            {
                // started...
                if (previousSlide == null)
                {
                    OnMediaChangeEvent(CreateMediaEventArgs(newMediaId, newMediaClassification, MediaChange.Started));
                }
                else
                {
                    OnSlideTransitionEvent(CreateSlideTransitionEventArgs(mediaItemId, SlideTransition.Finished, oldIndex, newIndex));
                }
            });
        }
Ejemplo n.º 3
0
 void Load(SlideData data)
 {
     if (data.loadTransform != null)
     {
         data.slide = (SlideBehaviour)Instantiate(data.slide, data.loadTransform.position, data.loadTransform.rotation);
     }
     else
     {
         data.slide = Instantiate(data.slide);
     }
 }
Ejemplo n.º 4
0
        public ActionResult PostSlide(SlideData slideData)
        {
            var slide = new Slide
            {
                Title            = slideData.Title,
                Description      = slideData.Description,
                LectureIdLecture = slideData.LectureId
            };

            DbContext.Add(slide);
            DbContext.SaveChanges();

            return(Ok("Slide added"));
        }
Ejemplo n.º 5
0
        private ImageFadeType GetSlideFadeType(SlideData slide, SlideData previousSlide, SlideDirection direction)
        {
            var thisSlideFadeInType = direction == SlideDirection.Forward
                ? slide.FadeInForward ? ImageFadeType.FadeIn : ImageFadeType.None
                : slide.FadeInReverse ? ImageFadeType.FadeIn : ImageFadeType.None;

            if (previousSlide == null)
            {
                // previous image (if any) is a regular image _not_ a slide
                var regularImageFadeType = _optionsService.Options.ImageFadeType;
                switch (regularImageFadeType)
                {
                case ImageFadeType.CrossFade:
                case ImageFadeType.FadeInOut:
                case ImageFadeType.FadeOut:
                    if (thisSlideFadeInType == ImageFadeType.FadeIn)
                    {
                        return(ImageFadeType.CrossFade);
                    }

                    return(thisSlideFadeInType);

                default:
                    return(thisSlideFadeInType);
                }
            }

            var previousSlideFadeOutType = direction == SlideDirection.Forward
                ? previousSlide.FadeOutForward ? ImageFadeType.FadeOut : ImageFadeType.None
                : previousSlide.FadeOutReverse ? ImageFadeType.FadeOut : ImageFadeType.None;

            if (thisSlideFadeInType == ImageFadeType.FadeIn && previousSlideFadeOutType == ImageFadeType.FadeOut)
            {
                return(ImageFadeType.CrossFade);
            }

            if (previousSlideFadeOutType == ImageFadeType.FadeOut)
            {
                return(ImageFadeType.FadeOut);
            }

            return(thisSlideFadeInType);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Return the internal index for slide index and deckGuid.  If there is not
        /// yet an entry in the map, create one and return the new index.
        /// </summary>
        /// <param name="SlideIndex"></param>
        /// <param name="DeckGuid"></param>
        /// <returns></returns>
        public int GetMapping(int SlideIndex, Guid DeckGuid)
        {
            String key = DeckGuid.ToString() + "-" + SlideIndex.ToString();

            if (slideMap.ContainsKey(key))
            {
                return(((SlideData)slideMap[key]).PrivateIndex);
            }

            index++;
            SlideData sd = new SlideData();

            sd.DeckGuid     = DeckGuid;
            sd.PublicIndex  = SlideIndex;
            sd.PrivateIndex = index;
            lock (this)
                slideMap.Add(key, sd);

            return(index);
        }
        public ActionResult Slide()
        {
            var model = new SlideData().GetSlides();

            return(PartialView(model));
        }
Ejemplo n.º 8
0
        private void PptComponent_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            if (e.NewValue.GetType() == typeof(ImageTreeViewItem))
            {
                ImageTreeViewItem itm     = (ImageTreeViewItem)e.NewValue;
                iItemData         itmdata = itm.data;
                ImageButton[]     ableAddBtns, unableAddBtns;
                ableAddBtns   = new ImageButton[] { };
                unableAddBtns = new ImageButton[] { AddEnumBtn, AddFuncBtn, AddSubBtn, AddTypeBtn, EventMouseOverBtn, EventMouseClickBtn };
                if (itmdata != null)
                {
                    switch (itmdata.type)
                    {
                    case itemDataType.ShapeData:
                        // 쉐이프 선택
                        ShapeData shapedata = (ShapeData)itmdata;
                        ppt.Shape shape     = CustomShapeDataToShape(shapedata.Item, pc.PowerPointPresentation);



                        ableAddBtns   = new ImageButton[] { AddEnumBtn, AddFuncBtn, AddSubBtn, AddTypeBtn, EventMouseOverBtn, EventMouseClickBtn };
                        unableAddBtns = new ImageButton[] { };


                        //ppGrid.SelectedObject = shape;


                        break;

                    case itemDataType.SlideData:
                        // 슬라이드 선택
                        SlideData slidedata = (SlideData)itmdata;

                        ableAddBtns   = new ImageButton[] { AddEnumBtn, AddFuncBtn, AddSubBtn, AddTypeBtn };
                        unableAddBtns = new ImageButton[] { EventMouseOverBtn, EventMouseClickBtn };

                        if (slidedata.IsLoaded)
                        {
                            break;
                        }
                        pb.Value   = 0;
                        pb.Minimum = 0; pb.Maximum = pc.PowerPointPresentation.Slides[slidedata.SlideIndex].Shapes.Count;

                        Thread thr = new Thread(() =>
                        {
                            foreach (ppt.Shape shpe in pc.PowerPointPresentation.Slides[slidedata.SlideIndex].Shapes)
                            {
                                Application.Current.Dispatcher.Invoke(DispatcherPriority.Background,
                                                                      new Action(delegate
                                {
                                    pptComponent.IsEnabled = false;

                                    var inneritm = new ImageTreeViewItem(GetResourceIcon(shpe.Type),
                                                                         shpe.Name + " " + MsoShapeTypeToString(shpe.Type),
                                                                         new ShapeData(false, ShapeToCustomShapeData(slidedata.SlideIndex, shpe)));

                                    if (shpe.Type == Microsoft.Office.Core.MsoShapeType.msoGroup)
                                    {
                                        foreach (var childitem in pc.GetShapeItem(GroupShapesToShapes(shpe.GroupItems), true))
                                        {
                                            inneritm.Items.Add(childitem);
                                        }
                                    }
                                    pb.Value++;
                                    InfoTB.Text = $"슬라이드의 도형 정보를 읽어오는 중입니다. ({pb.Value}/{pb.Maximum})";

                                    itm.Items.Add(inneritm);
                                }));
                            }

                            Dispatcher.Invoke(new Action(() => {
                                InfoTB.Text      = $"슬라이드{slidedata.SlideIndex}의 {pb.Maximum}개의 도형 정보를 모두 읽어왔습니다. ";
                                itmdata.IsLoaded = true; pptComponent.IsEnabled = true;
                                pptComponent.Focus();
                            }));
                        });

                        thr.SetApartmentState(ApartmentState.STA);
                        thr.Start();


                        break;

                    default:
                        MessageBox.Show(itmdata.GetType().ToString());

                        break;
                    }
                }
                foreach (ImageButton btn in ableAddBtns)
                {
                    btn.IsEnabled = true;
                }

                foreach (ImageButton btn in unableAddBtns)
                {
                    btn.IsEnabled = false;
                }
            }
        }
Ejemplo n.º 9
0
        private void button_Click(object sender, RoutedEventArgs e)
        {
            //int enumdata = 1;
            //string str = "abcdef";
            //bool Bool = false;
            //pg.AddEnumItem("Enum1", ref enumdata, typeof(tester));
            //pg.AddEnumItem("Enum2", ref enumdata, typeof(tester));
            //pg.AddStrItem("Str1", ref str);
            //pg.AddBoolItem("Bool1", ref Bool);



            //MethodInfo[] mis = typeof(ppt.Shape).GetMethods();

            //foreach(MethodInfo mi in mis)
            //{
            //    MessageBox.Show(mi.Name);
            //}

            //typeof(ppt.Shape).GetProperties();

            //return;

            var pptItem = new ImageTreeViewItem(GetResourceImage("Component Icon/ppticon_s.png"), "Presentation (프레젠테이션)");
            ImageTreeViewItem slideItem;

            //F:\장유탁 파일\PowerPoint Game\Buster Wars\Buster Wars Final Edition.pptx
            string location = $@"{Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)}\Icon.pptm"; //U. Buster Wars 1.5.0.pptx

            InfoTB.Text = $"'{location}'프레젠테이션을 읽어오고 있습니다";

            Application.Current.Dispatcher.Invoke(DispatcherPriority.Background,
                                                  new Action(delegate { pc = new PresentationConnector(location, false, true);
                                                                        VBProjectConnector vc = new VBProjectConnector(pc.VBProject); }));



            this.Title = location + " - PowerVBA";

            //pc = new PresentationConnector(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "\\Icon.pptx", false, false);
            ImageTreeViewItem SlidesItem = null;

            thr = new Thread(() =>
            {
                Stopwatch sw = new Stopwatch();
                sw.Start();
                //Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "\\Icon.pptx"
                //pc = new PresentationConnector(@"F:\장유탁 파일\Github Project\PowerVBA\PowerVBA\Icon.pptx",false,false);

                //VBProjectConnector vbprojConn = new VBProjectConnector(pc.PowerPointPresentation.VBProject);


                ppt.Slides slides = pc.PowerPointPresentation.Slides;
                int SlideNum      = slides.Count;

                Dispatcher.Invoke(new Action(() =>
                {
                    pb.Maximum = SlideNum;
                    SlidesItem = new ImageTreeViewItem(GetResourceImage("Component Icon/slideicon_s.png"), "Slides (슬라이드 목록)");

                    this.IsEnabled = false;
                }));



                foreach (ppt.Slide slide in pc.PowerPointPresentation.Slides)
                {
                    Dispatcher.Invoke(new Action(() => {
                        pb.Value++;
                        InfoTB.Text = $"슬라이드 정보를 읽어오는 중입니다. ({pb.Value}/{SlideNum})";

                        var sd = new SlideData(false, slide.SlideNumber);

                        slidedatas.Add(sd);

                        var shapeItem = new ImageTreeViewItem(GetResourceImage("Component Icon/shapeicon_s.png"), "Shapes (도형 목록)", sd);
                        slideItem     = new ImageTreeViewItem(GetResourceImage("Component Icon/slideicon_s.png"), "Slide" + slide.SlideNumber + " (슬라이드)");

                        slideItem.Items.Add(shapeItem);
                        SlidesItem.Items.Add(slideItem);


                        this.IsEnabled = true;
                    }));
                }
                Dispatcher.Invoke(new Action(() => {
                    pptComponent.Items.Add(pptItem);
                    pptItem.Items.Add(SlidesItem);
                }));
            });

            thr.SetApartmentState(ApartmentState.STA);
            thr.Start();
        }