private void Render(Template template, GenerationEvent generationEvent)
        {
            try
            {
                var stopwatch = Stopwatch.StartNew();

                var path = generationEvent.Paths[0];
                Log.Debug("Render {0}", path);

                var metadata = metadataProvider.GetFile(path);
                var file     = new FileImpl(metadata);

                var success = template.RenderFile(file, false);

                if (success == false)
                {
                    solutionMonitor.TriggerFileChanged(path);
                }

                stopwatch.Stop();
                Log.Debug("Render completed in {0} ms", stopwatch.ElapsedMilliseconds);
            }
            catch (Exception exception)
            {
                Log.Error("Render Exception: {0}, {1}", exception.Message, exception.StackTrace);
            }
        }
Esempio n. 2
0
 public bool Equals(GenerationEvent other)
 {
     if (other == null)
     {
         return(false);
     }
     return((Type == other.Type) && Action == other.Action && (Paths.SequenceEqual(other.Paths)));
 }
Esempio n. 3
0
        private void Render(GenerationEvent generationEvent)
        {
            try
            {
                var templates = templateController.Templates;
                if (templates.Any() == false) return;

                var stopwatch = Stopwatch.StartNew();
                Log.Debug("{0} {1}", generationEvent.Type, string.Join(" -> ", generationEvent.Paths));

                switch (generationEvent.Type)
                {
                    case GenerationType.Render:
                        var metadata = metadataProvider.GetFile(generationEvent.Paths[0]);
                        var file = new FileImpl(metadata);

                        foreach (var template in templates)
                        {
                            template.RenderFile(file);
                        }
                        break;

                    case GenerationType.Delete:
                        foreach (var template in templates)
                        {
                            template.DeleteFile(generationEvent.Paths[0]);
                        }
                        break;

                    case GenerationType.Rename:
                        foreach (var template in templates)
                        {
                            template.RenameFile(generationEvent.Paths[0], generationEvent.Paths[1]);
                        }
                        break;
                }

                foreach (var template in templates)
                {
                    template.SaveProjectFile();
                }

                stopwatch.Stop();
                Log.Debug("{0} completed in {1} ms", generationEvent.Type, stopwatch.ElapsedMilliseconds);
            }
            catch (Exception exception)
            {
                Log.Error("{0} Exception: {1}, {2}", generationEvent.Type, exception.Message, exception.StackTrace);
            }
        }
Esempio n. 4
0
        private void Render(GenerationEvent generationEvent)
        {
            try
            {
                var templates = templateController.Templates;
                if (templates.Any() == false)
                {
                    return;
                }

                var stopwatch = Stopwatch.StartNew();
                Log.Debug("{0} {1}", generationEvent.Type, string.Join(" -> ", generationEvent.Paths));

                switch (generationEvent.Type)
                {
                case GenerationType.Render:
                    var metadata = metadataProvider.GetFile(generationEvent.Paths[0]);
                    var file     = new FileImpl(metadata);

                    foreach (var template in templates)
                    {
                        template.RenderFile(file, true);
                    }
                    break;

                case GenerationType.Delete:
                    foreach (var template in templates)
                    {
                        template.DeleteFile(generationEvent.Paths[0], true);
                    }
                    break;

                case GenerationType.Rename:
                    foreach (var template in templates)
                    {
                        template.RenameFile(generationEvent.Paths[0], generationEvent.Paths[1], true);
                    }
                    break;
                }

                stopwatch.Stop();
                Log.Debug("{0} completed in {1} ms", generationEvent.Type, stopwatch.ElapsedMilliseconds);
            }
            catch (Exception exception)
            {
                Log.Error("{0} Exception: {1}, {2}", generationEvent.Type, exception.Message, exception.StackTrace);
            }
        }
Esempio n. 5
0
        public void Enqueue(Action<GenerationEvent> action, GenerationType type, params string[] paths)
        {
            if (paths[0].EndsWith(".cs", StringComparison.InvariantCultureIgnoreCase) == false) return;

            lock (locker)
            {
                this.timestamp = DateTime.Now;

                var generationEvent = new GenerationEvent { Action = action, Type = type, Paths = paths };
                if (queue.Any(e => e.Equals(generationEvent)))
                {
                    return;
                }

                queue.Add(generationEvent);

                Log.Debug("{0} queued {1}", generationEvent.Type, string.Join(" -> ", generationEvent.Paths));
            }
        }
Esempio n. 6
0
        public void Enqueue(Action <GenerationEvent> action, GenerationType type, params string[] paths)
        {
            if (paths[0].EndsWith(".cs", StringComparison.InvariantCultureIgnoreCase) == false)
            {
                return;
            }

            lock (locker)
            {
                this.timestamp = DateTime.Now;

                var generationEvent = new GenerationEvent {
                    Action = action, Type = type, Paths = paths
                };
                if (queue.Any(e => e.Equals(generationEvent)))
                {
                    return;
                }

                queue.Add(generationEvent);

                Log.Debug("{0} queued {1}", generationEvent.Type, string.Join(" -> ", generationEvent.Paths));
            }
        }
Esempio n. 7
0
        private void Render(Template template, GenerationEvent generationEvent)
        {
            try
            {
                var stopwatch = Stopwatch.StartNew();

                var path = generationEvent.Paths[0];
                Log.Debug("Render {0}", path);

                var metadata = metadataProvider.GetFile(dte.Solution.FindProjectItem(path));
                var file = new FileImpl(metadata);

                var success = template.RenderFile(file, false);

                if (success == false)
                {
                    solutionMonitor.TriggerFileChanged(path);
                }

                stopwatch.Stop();
                Log.Debug("Render completed in {0} ms", stopwatch.ElapsedMilliseconds);
            }
            catch (Exception exception)
            {
                Log.Error("Render Exception: {0}, {1}", exception.Message, exception.StackTrace);
            }
        }
Esempio n. 8
0
 public bool Equals(GenerationEvent other)
 {
     if (other == null) return false;
     return (Type == other.Type) && Action == other.Action && (Paths.SequenceEqual(other.Paths));
 }