コード例 #1
0
        public async Task <IDownsizeResponse> Downsize(IDownsizePotential potential, IDownsizeResponse downsizeResponse, StatsUpdater updateStat = null)
        {
            try
            {
                foreach (CustomLayout layout in potential.UnusedLayouts)
                {
                    layout.Delete();
                    downsizeResponse.CustomLayoutsDeleted++;
                }

                foreach (Master master in potential.UnusedMasters)
                {
                    master.Delete();
                    downsizeResponse.MasterSlidesDeleted++;
                }

                downsizeResponse.IsSuccess     = true;
                downsizeResponse.ResultMessage = Constants.Messages.SlideMasterDonwsizeSuccess;
            }
            catch (Exception e)
            {
                downsizeResponse.Exception     = e;
                downsizeResponse.ResultMessage = Constants.Messages.SlideMasterDonwsizeFailed;
            }

            updateStat?.Invoke(downsizeResponse);

            return(await Task.FromResult(downsizeResponse).ConfigureAwait(false));
        }
コード例 #2
0
        internal static async Task ReportDownsizePotential(IDownsizePotential potential, bool performDownsize)
        {
            var anyPotential = potential.UnusedLayoutsCount > 0 || potential.UnusedMastersCount > 0;
            var msgBoxIcon   = anyPotential ? MessageBoxIcon.Information : MessageBoxIcon.Exclamation;
            var message      = anyPotential ? $"Unused layouts: {potential.UnusedLayoutsCount}{nl}Unused master slides: {potential.UnusedMastersCount}" : Fickles.Messages.NothingToRemove;

            if (anyPotential)
            {
                if (performDownsize)
                {
                    msgBoxIcon = MessageBoxIcon.Question;
                    message   += $"{nl}{nl}Do you want to remove them now?";
                    var downsize = await Task.FromResult(MessageBox.Show(message, caption, MessageBoxButtons.YesNo, msgBoxIcon, MessageBoxDefaultButton.Button2)).ConfigureAwait(false);

                    if (downsize == DialogResult.Yes)
                    {
                        _ = Performer.DownSize(potential);
                    }
                }
                else
                {
                    await Task.FromResult(MessageBox.Show(message, caption, MessageBoxButtons.OK, msgBoxIcon)).ConfigureAwait(false);
                }
            }
            else
            {
                await Task.FromResult(MessageBox.Show(message, caption, MessageBoxButtons.OK, msgBoxIcon)).ConfigureAwait(false);
            }
        }
コード例 #3
0
 internal static async Task DownSize(IDownsizePotential potential)
 {
     try
     {
         var downsizeResponse = new DownsizeResponse();
         await new SlideMaster.Downsizer().Downsize(potential, downsizeResponse, StatsManager.UpdateStats).ConfigureAwait(false);
         _ = Reporter.ReportDownsizeStatus(downsizeResponse);
     }
     catch (System.Exception e)
     {
         _ = Reporter.ReportError($"Failed to downsize the presentation. {nl}{e.Message}");
     }
 }
コード例 #4
0
        public async Task <IDownsizePotential> GetDownsizePotential(Presentation activePresentation, IDownsizePotential potential, StatsUpdater updateStat = null)
        {
            var                 designs                = activePresentation.Designs;
            List <Master>       availableMasters       = new List <Master>();
            List <CustomLayout> availableCustomLayouts = new List <CustomLayout>();

            List <CustomLayout> usedCustomLayouts = await Task.FromResult((from Slide slide in activePresentation.Slides
                                                                           select slide.CustomLayout).ToList()).ConfigureAwait(false);

            foreach (Design design in designs)
            {
                var slideMaster = design.SlideMaster;
                availableMasters.Add(slideMaster);
                List <CustomLayout> designCustomLayouts = await Task.FromResult((from CustomLayout layout in slideMaster.CustomLayouts
                                                                                 select layout).ToList()).ConfigureAwait(false);

                availableCustomLayouts.AddRange(designCustomLayouts);
            }
            potential.UnusedLayouts = availableCustomLayouts.Where(layout => !usedCustomLayouts.Contains(layout)).ToList();
            potential.UnusedMasters = availableMasters.Where(master => !(from CustomLayout layout in master.CustomLayouts select layout).ToList().Except(potential.UnusedLayouts).Any()).ToList();

            updateStat?.Invoke();

            return(await Task.FromResult(potential).ConfigureAwait(false));
        }