From e63e6cd3631f63b9f89ec21b5a0d523934b5d6bf Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Fri, 17 Feb 2012 00:12:10 -0500 Subject: [PATCH 01/88] Moving src to root --- App.xaml | 5 + Framework/CommandSink.cs | 86 ++++++ Framework/CommandSinkBinding.cs | 206 +++++++++++++ Framework/ICommandSink.cs | 45 +++ Framework/InMemoryTextWriter.cs | 43 +++ Framework/ViewModelBase.cs | 24 ++ MainWindow.xaml | 89 ++++++ MainWindow.xaml.cs | 77 +++++ Properties/AssemblyInfo.cs | 55 ++++ Properties/Resources.Designer.cs | 63 ++++ Properties/Resources.resx | 117 +++++++ Properties/Settings.Designer.cs | 26 ++ Properties/Settings.settings | 7 + RazorPad.EditorUI.csproj | 144 +++++++++ RazorTemplateEditor.xaml | 11 + RazorTemplateEditor.xaml.cs | 53 ++++ RazorTemplateModelProperties.xaml | 23 ++ RazorTemplateModelProperties.xaml.cs | 69 +++++ ViewModels/MainWindowViewModel.cs | 128 ++++++++ ViewModels/RazorTemplateEditorViewModel.cs | 287 ++++++++++++++++++ .../RazorTemplateModelPropertiesViewModel.cs | 61 ++++ .../RazorTemplateModelPropertyViewModel.cs | 40 +++ app.config | 3 + razor.ico | Bin 0 -> 87391 bytes 24 files changed, 1662 insertions(+) create mode 100644 App.xaml create mode 100644 Framework/CommandSink.cs create mode 100644 Framework/CommandSinkBinding.cs create mode 100644 Framework/ICommandSink.cs create mode 100644 Framework/InMemoryTextWriter.cs create mode 100644 Framework/ViewModelBase.cs create mode 100644 MainWindow.xaml create mode 100644 MainWindow.xaml.cs create mode 100644 Properties/AssemblyInfo.cs create mode 100644 Properties/Resources.Designer.cs create mode 100644 Properties/Resources.resx create mode 100644 Properties/Settings.Designer.cs create mode 100644 Properties/Settings.settings create mode 100644 RazorPad.EditorUI.csproj create mode 100644 RazorTemplateEditor.xaml create mode 100644 RazorTemplateEditor.xaml.cs create mode 100644 RazorTemplateModelProperties.xaml create mode 100644 RazorTemplateModelProperties.xaml.cs create mode 100644 ViewModels/MainWindowViewModel.cs create mode 100644 ViewModels/RazorTemplateEditorViewModel.cs create mode 100644 ViewModels/RazorTemplateModelPropertiesViewModel.cs create mode 100644 ViewModels/RazorTemplateModelPropertyViewModel.cs create mode 100644 app.config create mode 100644 razor.ico diff --git a/App.xaml b/App.xaml new file mode 100644 index 0000000..d424a18 --- /dev/null +++ b/App.xaml @@ -0,0 +1,5 @@ + + diff --git a/Framework/CommandSink.cs b/Framework/CommandSink.cs new file mode 100644 index 0000000..de6ae80 --- /dev/null +++ b/Framework/CommandSink.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Windows.Input; + +namespace RazorPad.Framework +{ + /// + /// This implementation of ICommandSink can serve as a base + /// class for a ViewModel or as an object embedded in a ViewModel. + /// It provides a means of registering commands and their callback + /// methods, and will invoke those callbacks upon request. + /// + /// + /// Taken from Josh Smith's CodeProject MVVM article: + /// http://www.codeproject.com/KB/WPF/VMCommanding.aspx + /// + public class CommandSink : ICommandSink + { + readonly Dictionary _commandToCallbacksMap = new Dictionary(); + + public virtual bool CanExecuteCommand(ICommand command, object parameter, out bool handled) + { + VerifyArgument(command, "command"); + + if (_commandToCallbacksMap.ContainsKey(command)) + { + handled = true; + return _commandToCallbacksMap[command].CanExecute(parameter); + } + + return (handled = false); + } + + public virtual void ExecuteCommand(ICommand command, object parameter, out bool handled) + { + VerifyArgument(command, "command"); + + if (_commandToCallbacksMap.ContainsKey(command)) + { + handled = true; + _commandToCallbacksMap[command].Execute(parameter); + } + else + { + handled = false; + } + } + + public void RegisterCommand(ICommand command, Predicate canExecute, Action execute) + { + VerifyArgument(command, "command"); + VerifyArgument(canExecute, "canExecute"); + VerifyArgument(execute, "execute"); + + _commandToCallbacksMap[command] = new CommandCallbacks(canExecute, execute); + } + + public void UnregisterCommand(ICommand command) + { + VerifyArgument(command, "command"); + + if (_commandToCallbacksMap.ContainsKey(command)) + _commandToCallbacksMap.Remove(command); + } + + static void VerifyArgument(object arg, string argName) + { + if (arg == null) + throw new ArgumentNullException(argName); + } + + + + private struct CommandCallbacks + { + public readonly Predicate CanExecute; + public readonly Action Execute; + + public CommandCallbacks(Predicate canExecute, Action execute) + { + CanExecute = canExecute; + Execute = execute; + } + } + } +} \ No newline at end of file diff --git a/Framework/CommandSinkBinding.cs b/Framework/CommandSinkBinding.cs new file mode 100644 index 0000000..658eb0e --- /dev/null +++ b/Framework/CommandSinkBinding.cs @@ -0,0 +1,206 @@ +using System; +using System.Windows; +using System.Windows.Input; + +namespace RazorPad.Framework +{ + /// + /// A CommandBinding subclass that will attach its + /// CanExecute and Executed events to the event handling + /// methods on the object referenced by its CommandSink property. + /// Set the attached CommandSink property on the element + /// whose CommandBindings collection contain CommandSinkBindings. + /// If you dynamically create an instance of this class and add it + /// to the CommandBindings of an element, you must explicitly set + /// its CommandSink property. + /// + /// + /// Taken from Josh Smith's CodeProject MVVM article: + /// http://www.codeproject.com/KB/WPF/VMCommanding.aspx + /// + public class CommandSinkBinding : CommandBinding + { + private ICommandSink _commandSink; + + #region CommandSinkProperty Dependency Property + + public static readonly DependencyProperty CommandSinkProperty = + DependencyProperty.RegisterAttached( + "CommandSink", + typeof(ICommandSink), + typeof(CommandSinkBinding), + new UIPropertyMetadata(null, OnCommandSinkChanged)); + + public static ICommandSink GetCommandSink(DependencyObject obj) + { + return (ICommandSink)obj.GetValue(CommandSinkProperty); + } + + public static void SetCommandSink(DependencyObject obj, ICommandSink value) + { + obj.SetValue(CommandSinkProperty, value); + } + + private static void OnCommandSinkChanged(DependencyObject depObj, DependencyPropertyChangedEventArgs e) + { + var commandSink = e.NewValue as ICommandSink; + + if (!ConfigureDelayedProcessing(depObj, commandSink)) + ProcessCommandSinkChanged(depObj, commandSink); + } + + #endregion + + public ICommandSink CommandSink + { + get { return _commandSink; } + set + { + if (value == null) + throw new ArgumentNullException("CommandSink", "Cannot set CommandSink to null."); + + if (_commandSink != null) + throw new InvalidOperationException("Cannot set CommandSink more than once."); + + _commandSink = value; + + CanExecute += (s, e) => + { + bool handled; + e.CanExecute = _commandSink.CanExecuteCommand(e.Command, e.Parameter, + out handled); + e.Handled = handled; + }; + + Executed += (s, e) => + { + bool handled; + _commandSink.ExecuteCommand(e.Command, e.Parameter, out handled); + e.Handled = handled; + }; + } + } + + // This method is necessary when the CommandSink attached property is set on an element + // in a template, or any other situation in which the element's CommandBindings have not + // yet had a chance to be created and added to its CommandBindings collection. + private static bool ConfigureDelayedProcessing(DependencyObject depObj, ICommandSink commandSink) + { + bool isDelayed = false; + + var elem = new CommonElement(depObj); + if (elem.IsValid && !elem.IsLoaded) + { + RoutedEventHandler handler = null; + handler = delegate + { + elem.Loaded -= handler; + ProcessCommandSinkChanged(depObj, commandSink); + }; + elem.Loaded += handler; + isDelayed = true; + } + + return isDelayed; + } + + private static void ProcessCommandSinkChanged(DependencyObject depObj, ICommandSink commandSink) + { + CommandBindingCollection cmdBindings = GetCommandBindings(depObj); + if (cmdBindings == null) + throw new ArgumentException( + "The CommandSinkBinding.CommandSink attached property was set on an element that does not support CommandBindings."); + + foreach (CommandBinding cmdBinding in cmdBindings) + { + var csb = cmdBinding as CommandSinkBinding; + if (csb != null && csb.CommandSink == null) + csb.CommandSink = commandSink; + } + } + + private static CommandBindingCollection GetCommandBindings(DependencyObject depObj) + { + var elem = new CommonElement(depObj); + return elem.IsValid ? elem.CommandBindings : null; + } + + #region Nested type: CommonElement + + /// + /// This class makes it easier to write code that works + /// with the common members of both the FrameworkElement + /// and FrameworkContentElement classes. + /// + private class CommonElement + { + public readonly bool IsValid; + private readonly FrameworkContentElement _frameworkContentElement; + private readonly FrameworkElement _frameworkElement; + + public CommonElement(DependencyObject depObj) + { + _frameworkElement = depObj as FrameworkElement; + _frameworkContentElement = depObj as FrameworkContentElement; + + IsValid = _frameworkElement != null || _frameworkContentElement != null; + } + + public CommandBindingCollection CommandBindings + { + get + { + Verify(); + + if (_frameworkElement != null) + return _frameworkElement.CommandBindings; + else + return _frameworkContentElement.CommandBindings; + } + } + + public bool IsLoaded + { + get + { + Verify(); + + if (_frameworkElement != null) + return _frameworkElement.IsLoaded; + else + return _frameworkContentElement.IsLoaded; + } + } + + public event RoutedEventHandler Loaded + { + add + { + Verify(); + + if (_frameworkElement != null) + _frameworkElement.Loaded += value; + else + _frameworkContentElement.Loaded += value; + } + remove + { + Verify(); + + if (_frameworkElement != null) + _frameworkElement.Loaded -= value; + else + _frameworkContentElement.Loaded -= value; + } + } + + private void Verify() + { + if (!IsValid) + throw new InvalidOperationException("Cannot use an invalid CommmonElement."); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Framework/ICommandSink.cs b/Framework/ICommandSink.cs new file mode 100644 index 0000000..971ec28 --- /dev/null +++ b/Framework/ICommandSink.cs @@ -0,0 +1,45 @@ +using System.Windows.Input; + +namespace RazorPad.Framework +{ + /// + /// Represents an object that is capable of being notified of + /// a routed command execution by a CommandSinkBinding. This + /// interface is intended to be implemented by a ViewModel class + /// that honors a set of routed commands. + /// + /// + /// Taken from Josh Smith's CodeProject MVVM article: + /// http://www.codeproject.com/KB/WPF/VMCommanding.aspx + /// + public interface ICommandSink + { + /// + /// Returns true if the specified command can be executed by the command sink. + /// + /// + /// The command whose execution status is being queried. + /// + /// + /// An optional command parameter. + /// + /// + /// Set to true if there is no need to continue querying for an execution status. + /// + bool CanExecuteCommand(ICommand command, object parameter, out bool handled); + + /// + /// Executes the specified command. + /// + /// + /// The command being executed. + /// + /// + /// An optional command parameter. + /// + /// + /// Set to true if the command has been executed and there is no need for others to respond. + /// + void ExecuteCommand(ICommand command, object parameter, out bool handled); + } +} \ No newline at end of file diff --git a/Framework/InMemoryTextWriter.cs b/Framework/InMemoryTextWriter.cs new file mode 100644 index 0000000..fc2901c --- /dev/null +++ b/Framework/InMemoryTextWriter.cs @@ -0,0 +1,43 @@ +using System.ComponentModel; +using System.IO; +using System.Text; + +namespace RazorPad.Framework +{ + public class InMemoryTextWriter : TextWriter, INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + + private readonly StringBuilder _builder; + + public InMemoryTextWriter() + { + _builder = new StringBuilder(); + } + + public override void Write(char[] buffer, int index, int count) + { + _builder.Append(buffer, index, count); + + if(PropertyChanged != null) + PropertyChanged(this, new PropertyChangedEventArgs("Buffer")); + } + + public override void Flush() + { + _builder.Clear(); + base.Flush(); + } + + public override void Close() + { + _builder.Clear(); + base.Close(); + } + + public override Encoding Encoding + { + get { return Encoding.Default; } + } + } +} diff --git a/Framework/ViewModelBase.cs b/Framework/ViewModelBase.cs new file mode 100644 index 0000000..9ee1bf0 --- /dev/null +++ b/Framework/ViewModelBase.cs @@ -0,0 +1,24 @@ +using System; +using System.ComponentModel; + +namespace RazorPad.Framework +{ + public abstract class ViewModelBase : CommandSink, INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + + + protected void OnPropertyChanged(string propertyName) + { + if (PropertyChanged != null) + PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + + protected void SafeInvoke(EventHandler handler, TEventArgs args = null) + where TEventArgs : EventArgs + { + if (handler != null) + handler(this, args); + } + } +} diff --git a/MainWindow.xaml b/MainWindow.xaml new file mode 100644 index 0000000..5e8f2d8 --- /dev/null +++ b/MainWindow.xaml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs new file mode 100644 index 0000000..92d0ccc --- /dev/null +++ b/MainWindow.xaml.cs @@ -0,0 +1,77 @@ +using System; +using System.IO; +using System.Windows; +using Microsoft.Win32; +using RazorPad.ViewModels; + +namespace RazorPad +{ + /// + /// Interaction logic for Main.xaml + /// + public partial class MainWindow : Window + { + protected MainWindowViewModel ViewModel + { + get { return (MainWindowViewModel)DataContext; } + } + + public MainWindow() + { + InitializeComponent(); + + ViewModel.GetSaveAsFilename += GetSaveAsFilename; + + InitializeDemoTemplate(); + } + + private void InitializeDemoTemplate() + { + ViewModel.CurrentTemplate.TemplateModelProperties.Properties.Add("Name", "Razor Pad"); + ViewModel.CurrentTemplate.TemplateText = "Hello, my name is @Model.Name!"; + } + + private static string GetSaveAsFilename(RazorTemplateEditorViewModel template) + { + SaveFileDialog dlg = new SaveFileDialog(); + + string currentFilename = template.Filename; + + if (!string.IsNullOrWhiteSpace(currentFilename)) + dlg.InitialDirectory = Path.GetDirectoryName(currentFilename); + + if (dlg.ShowDialog().GetValueOrDefault()) + return dlg.FileName; + else + return null; + } + + private void OpenFile_Click(object sender, RoutedEventArgs e) + { + // Create OpenFileDialog + OpenFileDialog dlg = new OpenFileDialog(); + + // Set filter for file extension and default file extension + dlg.DefaultExt = ".cshtml"; + dlg.Filter = "C# Razor Documents|*.cshtml"; + dlg.Filter = "VB Razor Documents|*.vbhtml"; + dlg.Filter = "All Files|*.*"; + + if (dlg.ShowDialog().GetValueOrDefault()) + { + ViewModel.AddNewTemplateEditor(dlg.FileName); + } + } + + private void SaveFile_Click(object sender, RoutedEventArgs e) + { + ViewModel.CurrentTemplate.SaveToFile(); + } + + private void SaveAsFile_Click(object sender, RoutedEventArgs e) + { + var filename = GetSaveAsFilename(ViewModel.CurrentTemplate); + ViewModel.CurrentTemplate.SaveToFile(filename); + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..59e4ded --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("RazorPad")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("RazorPad")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..3a20c5b --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace RazorPad.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RazorPad.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e1e3aea --- /dev/null +++ b/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace RazorPad.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Properties/Settings.settings b/Properties/Settings.settings new file mode 100644 index 0000000..8f2fd95 --- /dev/null +++ b/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/RazorPad.EditorUI.csproj b/RazorPad.EditorUI.csproj new file mode 100644 index 0000000..c279018 --- /dev/null +++ b/RazorPad.EditorUI.csproj @@ -0,0 +1,144 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {A635596E-2215-4FEF-BC10-92F63EAAAA97} + WinExe + Properties + RazorPad + RazorPad + v4.0 + + + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + razor.ico + + + true + + + + + + + + + + + + + + 4.0 + + + + + + + + + + MSBuild:Compile + Designer + + + + + + + MainWindow.xaml + + + RazorTemplateModelProperties.xaml + + + + + + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + RazorTemplateEditor.xaml + Code + + + Designer + MSBuild:Compile + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + {511D144C-F4C7-40A3-B3B4-80D891FCE2F5} + RazorPad.Core + + + + + + + + \ No newline at end of file diff --git a/RazorTemplateEditor.xaml b/RazorTemplateEditor.xaml new file mode 100644 index 0000000..e95d559 --- /dev/null +++ b/RazorTemplateEditor.xaml @@ -0,0 +1,11 @@ + + + + + diff --git a/RazorTemplateEditor.xaml.cs b/RazorTemplateEditor.xaml.cs new file mode 100644 index 0000000..7868a04 --- /dev/null +++ b/RazorTemplateEditor.xaml.cs @@ -0,0 +1,53 @@ +using System; +using System.Windows.Controls; +using System.Windows.Forms; +using RazorPad.ViewModels; +using TextBox = System.Windows.Controls.TextBox; +using UserControl = System.Windows.Controls.UserControl; + +namespace RazorPad +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class RazorTemplateEditor : UserControl + { + private static readonly int TemplateTextChangedEventDelay = (int)TimeSpan.FromSeconds(.5).TotalMilliseconds; + + + Timer _templateTextChangedTimer; + + protected RazorTemplateEditorViewModel ViewModel + { + get { return (RazorTemplateEditorViewModel) DataContext; } + } + + public RazorTemplateEditor() + { + InitializeComponent(); + InitializeTemplateTextChangedTimer(); + } + + private void InitializeTemplateTextChangedTimer() + { + _templateTextChangedTimer = new Timer { Interval = TemplateTextChangedEventDelay }; + + _templateTextChangedTimer.Tick += (x, y) => + { + TemplateTextBox + .GetBindingExpression(TextBox.TextProperty) + .UpdateSource(); + + _templateTextChangedTimer.Stop(); + }; + } + + private void TemplateTextChanged(object sender, TextChangedEventArgs e) + { + if (_templateTextChangedTimer.Enabled) + _templateTextChangedTimer.Stop(); + + _templateTextChangedTimer.Start(); + } + } +} diff --git a/RazorTemplateModelProperties.xaml b/RazorTemplateModelProperties.xaml new file mode 100644 index 0000000..dc4f255 --- /dev/null +++ b/RazorTemplateModelProperties.xaml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + diff --git a/RazorTemplateModelProperties.xaml.cs b/RazorTemplateModelProperties.xaml.cs new file mode 100644 index 0000000..5fc6520 --- /dev/null +++ b/RazorTemplateModelProperties.xaml.cs @@ -0,0 +1,69 @@ +using System; +using System.Windows; +using System.Windows.Forms; +using RazorPad.Framework; +using RazorPad.ViewModels; +using UserControl = System.Windows.Controls.UserControl; + +namespace RazorPad +{ + /// + /// Interaction logic for RazorTemplateModelProperties.xaml + /// + public partial class RazorTemplateModelProperties : UserControl + { + protected RazorTemplateModelPropertiesViewModel ViewModel + { + get { return (RazorTemplateModelPropertiesViewModel) DataContext; } + } + + protected DynamicDictionary PropertyDictionary { get; set; } + + public RazorTemplateModelProperties() + { + InitializeComponent(); + PropertyDictionary = new DynamicDictionary(); + } + + private void OnAddPropertyClick(object sender, RoutedEventArgs e) + { + string newPropertyName = NewPropertyName.Text; + + if (string.IsNullOrWhiteSpace(newPropertyName)) + return; + + PropertyDictionary.Add(newPropertyName, string.Empty); + + PropertyGrid.Refresh(); + } + + private void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e) + { + UpdatePropertyGrid(ViewModel != null ? ViewModel.Properties : null); + } + + private void UpdatePropertyGrid(DynamicDictionary newDictionary) + { + if (newDictionary == null) + { + newDictionary = new DynamicDictionary(); + } + else + { + foreach (var item in PropertyDictionary) + { + if (!newDictionary.ContainsKey(item.Key)) + newDictionary.Add(item); + } + } + + PropertyDictionary = newDictionary; + PropertyGrid.SelectedObject = new DictionaryPropertyGridAdapter(PropertyDictionary); + } + + private void OnPropertyValueChanged(object s, PropertyValueChangedEventArgs e) + { + ViewModel.TriggerPropertyChanged(); + } + } +} diff --git a/ViewModels/MainWindowViewModel.cs b/ViewModels/MainWindowViewModel.cs new file mode 100644 index 0000000..e30aa71 --- /dev/null +++ b/ViewModels/MainWindowViewModel.cs @@ -0,0 +1,128 @@ +using System; +using System.Collections.ObjectModel; +using System.Linq; +using System.Windows.Input; +using RazorPad.Framework; + +namespace RazorPad.ViewModels +{ + public class MainWindowViewModel : ViewModelBase + { + public Func GetSaveAsFilename + { + get { return _getSaveAsFilename; } + set { _getSaveAsFilename = value; } + } + private Func _getSaveAsFilename = + template => template.Filename; + + public RazorTemplateEditorViewModel CurrentTemplate + { + get { return _currentTemplate; } + set + { + if (_currentTemplate == value) + return; + + _currentTemplate = value; + OnPropertyChanged("CurrentTemplate"); + } + } + private RazorTemplateEditorViewModel _currentTemplate; + + public ObservableCollection TemplateEditors + { + get; + private set; + } + + public string StatusMessage + { + get { return _statusMessage; } + set + { + if (_statusMessage == value) + return; + + _statusMessage = value; + OnPropertyChanged("StatusMessage"); + } + } + private string _statusMessage; + + public InMemoryTextWriter ErrorMessages + { + get { return _errorMessages; } + set + { + if (_errorMessages == value) + return; + + _errorMessages = value; + OnPropertyChanged("ErrorMessages"); + } + } + private InMemoryTextWriter _errorMessages; + + public MainWindowViewModel() + { + InitializeTemplateEditors(); + RegisterCommands(); + } + + private void RegisterCommands() + { + RegisterCommand(ApplicationCommands.Save, + x => CurrentTemplate != null && CurrentTemplate.CanSaveToCurrentlyLoadedFile, + x => CurrentTemplate.SaveToFile()); + + RegisterCommand(ApplicationCommands.SaveAs, + x => CurrentTemplate != null && CurrentTemplate.CanSaveAsNewFilename, + x => GetSaveAsFilename.Invoke(CurrentTemplate)); + + RegisterCommand(ApplicationCommands.New, + x => CanAddNewTemplate, + x => AddNewTemplateEditor()); + } + + protected bool CanAddNewTemplate + { + get { return true; } + } + + private void InitializeTemplateEditors() + { + TemplateEditors = new ObservableCollection(); + AddNewTemplateEditor(); + } + + internal RazorTemplateEditorViewModel AddNewTemplateEditor(string filename = null, bool setAsCurrentTemplate = true) + { + RazorTemplateEditorViewModel loadedTemplate = + TemplateEditors + .Where(x => !string.IsNullOrWhiteSpace(x.Filename)) + .SingleOrDefault(x => x.Filename.Equals(filename, StringComparison.OrdinalIgnoreCase)); + + if (loadedTemplate != null) + { + loadedTemplate.LoadFromFile(filename); + + if (setAsCurrentTemplate) + CurrentTemplate = loadedTemplate; + + return loadedTemplate; + } + + var templateEditor = new RazorTemplateEditorViewModel(filename); + templateEditor.ErrorMessages = ErrorMessages; + templateEditor.OnStatusUpdated += (sender, args) => StatusMessage = args.Message; + + TemplateEditors.Add(templateEditor); + + if (setAsCurrentTemplate) + CurrentTemplate = templateEditor; + + return templateEditor; + } + } +} diff --git a/ViewModels/RazorTemplateEditorViewModel.cs b/ViewModels/RazorTemplateEditorViewModel.cs new file mode 100644 index 0000000..9221692 --- /dev/null +++ b/ViewModels/RazorTemplateEditorViewModel.cs @@ -0,0 +1,287 @@ +using System; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Web.Razor; +using RazorPad.Compilation; +using RazorPad.Framework; + +namespace RazorPad.ViewModels +{ + public class RazorTemplateEditorViewModel : ViewModelBase + { + public ITemplateCompiler TemplateCompiler { get; set; } + + public event EventHandler> OnStatusUpdated; + + public string DisplayName + { + get + { + if (string.IsNullOrWhiteSpace(Filename)) + return "New File"; + + return new FileInfo(Filename).Name; + } + } + + public TemplateCompilationParameters TemplateCompilationParameters + { + get + { + return TemplateCompiler == null ? null : TemplateCompiler.CompilationParameters; + } + } + + public RazorTemplateModelPropertiesViewModel TemplateModelProperties + { + get { return _templateModelProperties; } + set + { + if (_templateModelProperties == value) + return; + + _templateModelProperties = value; + OnPropertyChanged("TemplateModelProperties"); + } + } + private RazorTemplateModelPropertiesViewModel _templateModelProperties; + + public TextWriter ErrorMessages + { + get { return _errorMessages = _errorMessages ?? Console.Error; } + set { _errorMessages = value; } + } + private TextWriter _errorMessages; + + public string ExecutedTemplateInput + { + get { return _executedTemplateInput; } + set + { + if (_executedTemplateInput == value) + return; + + _executedTemplateInput = value; + OnPropertyChanged("ExecutedTemplateInput"); + } + } + private string _executedTemplateInput; + + public string ExecutedTemplateOutput + { + get { return _executedTemplateOutput; } + set + { + if (_executedTemplateOutput == value) + return; + + _executedTemplateOutput = value; + OnPropertyChanged("ExecutedTemplateOutput"); + } + } + private string _executedTemplateOutput; + + public string Filename + { + get { return _filename; } + set + { + if (_filename == value) + return; + + _filename = value; + OnPropertyChanged("Filename"); + } + } + private string _filename; + + public string GeneratedTemplateCode + { + get { return _generatedTemplateCode; } + set + { + if (_generatedTemplateCode == value) + return; + + _generatedTemplateCode = value; + OnPropertyChanged("GeneratedTemplateCode"); + } + } + private string _generatedTemplateCode; + + public GeneratorResults GeneratorResults + { + get { return _generatorResults; } + set + { + if (_generatorResults == value) + return; + + _generatorResults = value; + OnPropertyChanged("GeneratorResults"); + } + } + private GeneratorResults _generatorResults; + + public string TemplateText + { + get { return _templateText; } + set + { + if (_templateText == value) + return; + + _templateText = value; + OnPropertyChanged("TemplateText"); + Refresh(); + } + } + private string _templateText; + + public bool CanSaveToCurrentlyLoadedFile + { + get { return !string.IsNullOrWhiteSpace(Filename); } + } + + public bool CanSaveAsNewFilename + { + get { return true; } + } + + + + public RazorTemplateEditorViewModel(string filename = null) + { + TemplateCompiler = new TemplateCompiler(); + + if(!string.IsNullOrWhiteSpace(filename)) + LoadFromFile(filename); + + TemplateModelProperties = new RazorTemplateModelPropertiesViewModel(typeof(object)); + TemplateModelProperties.PropertiesUpdated += (x, y) => Refresh(); + + Execute(); + } + + + public void Parse() + { + UpdateStatus("Parsing template..."); + + GeneratedTemplateCode = string.Empty; + + using (StringWriter writer = new StringWriter()) + { + GeneratorResults = TemplateCompiler.GenerateCode(TemplateText, writer); + + var generatedCode = writer.ToString(); + generatedCode = Regex.Replace(generatedCode, "//.*", string.Empty); + generatedCode = Regex.Replace(generatedCode, "#.*", string.Empty); + + GeneratedTemplateCode = generatedCode.Trim(); + } + + if (GeneratorResults != null && GeneratorResults.Success) + { + UpdateStatus("Template successfully parsed"); + + try + { + Type templateModelType = TemplateCompiler.GetTemplateModelType(TemplateText); + TemplateModelProperties.TemplateModelType = templateModelType; + } + catch (Exception ex) + { + ErrorMessages.WriteLine(ex); + UpdateStatus(ex.Message); + } + } + else + { + UpdateStatus("Template parsing failed!"); + + ErrorMessages.WriteLine("*** Template Parsing Failed ***"); + if (GeneratorResults != null) + { + var errorBuilder = new StringBuilder(); + foreach (var error in GeneratorResults.ParserErrors) + { + errorBuilder.AppendFormat("\nLine {0}: {1}", error.Location.LineIndex, error.Message); + } + + var errors = errorBuilder.ToString(); + ErrorMessages.WriteLine(errors); + ExecutedTemplateOutput = errors; + } + } + } + + public void Execute() + { + Parse(); + + UpdateStatus("Executing template..."); + + var model = TemplateModelProperties.Properties; + + try + { + ExecutedTemplateOutput = TemplateCompiler.Execute(TemplateText, model); + UpdateStatus("Success!"); + } + catch (Exception ex) + { + ErrorMessages.WriteLine(ex); + UpdateStatus(ex.Message); + } + } + + public void LoadFromFile(string fileName) + { + try + { + using (var reader = new StreamReader(File.OpenRead(fileName))) + TemplateText = reader.ReadToEnd(); + } + catch (Exception ex) + { + ErrorMessages.WriteLine(ex); + UpdateStatus(ex.Message); + } + + Filename = fileName; + } + + public void SaveToFile(string fileName = null) + { + var targetFilename = fileName ?? Filename; + + try + { + if (string.IsNullOrWhiteSpace(targetFilename)) + throw new ApplicationException("No filename specified!"); + + Filename = targetFilename; + + using (var writer = new StreamWriter(File.OpenWrite(Filename))) + writer.Write(TemplateText); + } + catch (Exception ex) + { + ErrorMessages.WriteLine(ex); + UpdateStatus(ex.Message); + } + } + + private void UpdateStatus(string statusMessage) + { + SafeInvoke(OnStatusUpdated, new EventArgs(statusMessage)); + } + + public void Refresh() + { + Execute(); + } + } +} \ No newline at end of file diff --git a/ViewModels/RazorTemplateModelPropertiesViewModel.cs b/ViewModels/RazorTemplateModelPropertiesViewModel.cs new file mode 100644 index 0000000..a455637 --- /dev/null +++ b/ViewModels/RazorTemplateModelPropertiesViewModel.cs @@ -0,0 +1,61 @@ +using System; +using System.ComponentModel; +using RazorPad.Framework; + +namespace RazorPad.ViewModels +{ + public class RazorTemplateModelPropertiesViewModel : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + public event EventHandler PropertiesUpdated; + + public Type TemplateModelType + { + get { return _templateModelType; } + set + { + if (_templateModelType == value) + return; + + _templateModelType = value; + OnPropertyChanged("TemplateModelType"); + } + } + private Type _templateModelType; + + + public DynamicDictionary Properties + { + get { return _properties; } + set + { + if(_properties == value) + return; + + _properties = value; + OnPropertyChanged("Properties"); + } + } + private DynamicDictionary _properties; + + + public RazorTemplateModelPropertiesViewModel(Type templateModelType = null) + { + TemplateModelType = templateModelType ?? typeof(object); + Properties = new DynamicDictionary(); + } + + + protected void OnPropertyChanged(string propertyName) + { + if (PropertyChanged != null) + PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + + public void TriggerPropertyChanged() + { + if (PropertiesUpdated != null) + PropertiesUpdated(this, EventArgs.Empty); + } + } +} \ No newline at end of file diff --git a/ViewModels/RazorTemplateModelPropertyViewModel.cs b/ViewModels/RazorTemplateModelPropertyViewModel.cs new file mode 100644 index 0000000..6c492c5 --- /dev/null +++ b/ViewModels/RazorTemplateModelPropertyViewModel.cs @@ -0,0 +1,40 @@ +using RazorPad.Framework; + +namespace RazorPad.ViewModels +{ + public class RazorTemplateModelPropertyViewModel : ViewModelBase + { + public string Name + { + get { return _name; } + set + { + if (_name == value) + return; + + _name = value; + OnPropertyChanged("Name"); + } + } + private string _name; + + public object Value + { + get { return _value; } + set + { + if (_value == value) + return; + + _value = value; + OnPropertyChanged("Value"); + } + } + private object _value; + + public RazorTemplateModelPropertyViewModel(string name = null) + { + Name = name; + } + } +} \ No newline at end of file diff --git a/app.config b/app.config new file mode 100644 index 0000000..cb2586b --- /dev/null +++ b/app.config @@ -0,0 +1,3 @@ + + + diff --git a/razor.ico b/razor.ico new file mode 100644 index 0000000000000000000000000000000000000000..94bcd737a8ee7e16fa97d71d7c188573aa27526c GIT binary patch literal 87391 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 Date: Sun, 19 Feb 2012 19:39:40 -0500 Subject: [PATCH 02/88] Integrated Raven DB. Implemented saving/editing the fiddle. --- RazorPad.EditorUI.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/RazorPad.EditorUI.csproj b/RazorPad.EditorUI.csproj index c279018..c982e7c 100644 --- a/RazorPad.EditorUI.csproj +++ b/RazorPad.EditorUI.csproj @@ -44,6 +44,7 @@ + From 4b1b1dcb139728cc6226fb5c26885d058131d75b Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Mon, 27 Feb 2012 18:40:55 -0500 Subject: [PATCH 03/88] Enabling NuGet package restore --- RazorPad.EditorUI.csproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RazorPad.EditorUI.csproj b/RazorPad.EditorUI.csproj index c982e7c..bdb4fa6 100644 --- a/RazorPad.EditorUI.csproj +++ b/RazorPad.EditorUI.csproj @@ -16,6 +16,8 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 + ..\..\RazorPad\ + true x86 @@ -135,6 +137,7 @@ + Ds6+0*QyV2o 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 OglF|#haSW)p#K5FI#wb8 literal 0 HcmV?d00001 diff --git a/assets/RazorPad.png b/assets/RazorPad.png new file mode 100644 index 0000000000000000000000000000000000000000..4e382b8a8c4de16b40a01dfe05e2d1912d031baa GIT binary patch literal 156675 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

>+PBa3Vu8n_)~BEO zY)jS!pN!iV-Z>!O3aEYIt@pQ_vU=(W?>wRR73|jdn`Y=%=xy&&xT|vL0){o&7iDi| zwh^;gV5eV7Z{3)&up3CYK~ zGNLdC=}tA;%HfS=>Nnr8*7a|nQzbYdNr^`!BRx^FPiIh)KOn2g)|bu;l1-}?B9vQ+ zSZ#qUTofkzSW|k8(YW0^cgPaLiESU6-{?on{H_ z#?oKc%v`he@qm2d)R{5`pLbQgPotMUb5;mY4>CUaYp{l0qT9u=wOzRai&!%C4V$;g zRz}()cJBe`$#S0k>DO7Us`jv7V?6WScj_i*yX-NxcAoLUD2!?rqXO^P@ncHvEu=}) z=F*^16RA~?l6&1cQl&01uUD5+JLUH()c|;PsQ}n3(o?U%cv~f0<|~P?)~PBz`}CAGnBt^RZLxajH_a@%F_oc*p2fDc(^_`N>h&aJjSBH3 zEMOD(_ddeKTs+4_9OKSn{kjijzY5Pg&yiB82yQU7@b7UWGa0gI(A6b=oZtudhGdmYq z5uu@Qw*Y@8!oZzyGItB`9>_be_W(aP=$q2L4SWauK1Z($1^fA?uCYxGr5vwi`8jiD8;ExLxC3S5s#37v2dLv;llM8+Y}7!;O`jo= zhhpX0&D+*!m*%a`EV~VPr#!D_ExM*O`&^csJb7HMUO6vkPp8X~gZpIbTAbV#hspZo z3uWWVC79AIk}Vrok-cv=8T`&2fOb7*Cv!q1Q0L6~yXqf50cHL~#B)=pPDNNZ8PKb* zJ2tR7w#H)<=*Lf1kM|k$&}Rk7tbh=_-nn?8BB7se$>PP#(Oag$Ix>K|&fux?4m-L6Da2p@wb{h8jvl3F(F*q#NlPy1TnOhM~LOIp_S| zFVA1FpS|x`>snXV;XGw!Q}3k84HMHpIF-v4!sNG$)KCf%3-y!+v@DgO(X}>$eRKT_ z#b@=Qdp6^)j$Gv-j~T z+r_++bJI1be!cuYl5UrQq|2hYl8*_ax-(xm7uO+hT{LIBM`5DIk(uOF;GIB_F>ceZ zArDgit@9mS<5?^znsTDwUrYTmfNF{1m0#C=&Xm)Ix0job6-4}}z*|o90dq$SrTYHM z(?+ALJ;gOCszbISPm7LEZ-iNUGd@7OZuEl<&=7JZ&W5dNd^bw~k~4*hXhUvWZ8c&e zp4qsaNE*?B2k*bsORd_q4hDasl~~?3?)y_V&Fb>AW@m%)uW3KKeS)4}z%chMGdErm z4^5Ei;Z!;QNge#ySf+3I_1TAl9w?X4LZ&}g1BV#3x)s}*8rle?&TqVge>p-TAO!UM zJ^BYen#3K~=}wsLTsHWNj0m*bNV}!ZIz~m8MB6VmLaSfw4W|kxS}3Jb{7zN#HhkgY zc3>v-V;%4DqG;OY>ur&yl17ml)Wusc0j?1vPs)yl2vv&)dUa2j=SqjDspToM$}F=H z#pl{JRI1hbup$x7jqXQp*|p04o;k~mn6hN&@mcCLZlHfB?P~D%O}(!x6p&uXJ00${X~$2yxL6wB*|6!Qp9%suh|Psm2J(Ntp8bLY)} z!9|CbfT-tyf(fhbvIes&W|?ommEvMK(uH&ND)7t2%X<3Z(4S0rThO6pYSJf>`6kRW z953dNxnB7o$HXI77@+UyFa0jBO1}hgW`<6p^Ug8VoCz%YwCXZEy>#0$PSjG))Xr@K|k=Sbl;it{6hm;XJWWUX&9*zT_38a`bXR93V$%K z+>Na?s%z#Q6enb#f7v`BC50l&XbxQ`Fv*_(y)M-+NhROjfsU-AjgXI5jzP`9M5&*j zZb;2R_u;JJh-(6`QUto;$k{9O&6-2<{i6)f;k>hmACo#?Y-In)pF_|STsLm5vu~ts zkXEK6fx~QZ?qJ&`#^up6V>J`cSFTbeXRzf+-~6y~x-uYx6XgkacbM1rENpkwoYq%7 zl4!}OkE4b12pI(AWKdxoP$<7QkpNv}NXl9brWmo%9cEcZK)koD-g5a|+#_kg|5}v3 zY$g7rr5}7h0O_w^;e0@Vd9P|?#2>Eksm!-dh$gbswXLTS4A#?)uxhJuc}i9H@8s>P7wk7n=vsLnC>nE}FgLpL-IpHV z{PVxIOA{t){K|N=)hUL11glBPlN&!T5p{0^9xp}xpG>ALL7(%%AowrG50b5TL;6IK z&xg;K_eSmiZO_SFG3>mx1*3Jx%w&fe&8_E~zB%_=wR!;u_MMnJ{2N~ht<`aV>)S>3 zYWjE_0K@kZ%@&5;ETNsC-DHs7QHF)&_Kr%IDNDFI81~FNk}P4};I+{d9FBiPc)|mD zxC!B-RCD|?mXB$xg8}c$*8`C~`%jS~Z#1{Z1|W%*qhUJ&-HH2CdY#KkHEID?&SZwB z`NNwbW1$KapQjFVEmrY&Q%O@C7EGS*ebm%@GK0Nl@AsR_;S6($*HT1qO}fENxjVvLJ@P*GMOEb;S0>F zbDKSUcZorK4_k%mF3Iy3hrhRCZeebA2BHFtd|0LYx6vsh2y>OsTBTvC|D8HpN$rx+A}ZKh$h}1RItu01I!LJOP@}tHS18Y zs#VvMZ~{NeN7rai(25FGk`5$b?Bv!1SeSm|Y{$nihE;BtmcAIpPT0B-Xy`kOFZN&l zk9B`wM0Y4q;+e}}L*P8!;l93jZ6OS_aSspXR(dD3(nO>5U_bbltE?Q{rl7f-vs=+gY zCVV>C4oX^y0iRK95}S4Sv6yU+EU*;&R}u3WpC#Sy;36Er&7lP0BSG6*T1sNOffL;1 z?V04O5VlM-7M$c}^p)6;=&wDCHT3lSCVp}{7XQ zQU&D+ZYPr9p>YLAn?g>ZX+QS7jeQXZXXP*z>3^?J7U6=7cv3&7UM}=~FFwN2OMyP+ zZN@cOcMaHI$t6ENHnSezk+Pm?#{b-)HSv4+^Sy(Z=-_9fvgLE$E0b0AekFYCf1C2)nE__^Mg(O-~+h@qm6V zzi#?7mv`kcz(*XK+v>B40XZKPReez#y!cDQmM8U&}h3QMbEmF-iZKJqAZ5p+T(C@ZnBCVGjCMP-cR z4>t2F*l0ItCtQp77T1XTxElrmvTrM3R7XTXd||%0VXE`heVXE8V7;hf&k;dWP+1!g ztxelJEuOS@6pIw+)nLP)wUGx!loqB*FWPwAS6+)a=;DkJKx~9>Ud#cNDtWXi*8S+8*AAJ-2zx?YaoDYfcao@N7a^HQXdr@(qUO4gWnttCDr!Rl3rKvaLWfL-DXf$iEdp_iQXT~Ez8j~v@=Ua z?AGfXvwqNnF5o%Iu0x4C0vB5Kdd#Y}6-9KBB7FW&=Ys|H%J~mW{6xgEm)tCuSP~f$ z&nf|b$EjZ(D+7WnrPRGR;miRp%Sgh~H41>g24pl@b@T9YuldvpzGJT$D29@8F(CoP z+aJkHT!AL?r;ItEkQlXU9cR|g^P;Hv#IkR|0nJjY=1uk!?=SNe+A+MHTBUlKj98xv zGk&W)Yc}+IKvBhFM=O(a1yZt9IvJG*4=sprWjPy=vq&?(>~D4cEgagJ!rbQtihF6Y zJ#IdWtPQI#cCvr(`VkpPKM}6~x5_ThKv|T|bKcZ!;@f3R$FV%0Yj>+JLq~J*Z~2l% zi#ir!p9MOg)SB_tLu=Dt=Ndk=mp^Y=mt4VjcctQa23fTNGlW-}FL>Dis)On(5bQC( zdaAKwe-Y!^l10#pJ6YK_c(*n-fW1UJH-q2FC@^g9FG+%TMX4<|u6P2S1bYD-1}Gd#Jp6-TN{E?e@ zGf7tmD@v5p<{Y>c2^`TX18578jqWkqR5M>O%ul(W?s9t>md$2NGabqu&ELWA9b4lS z?0zf)j4jbF8bIwffs>``veqk^Ek1L3xflD>&?7qrovV(oRAiNulWw=T2M?#&vV&MV z2bfof?68K{dl7OYy&A*|H4a>yDS}Zl;cL@>uZ{iyzu)pPBHtJrE@}BhPNtdz?Zg%| zZw2Eq4m;aAp4JRN^Ju1f@7hnTE@g|Ea(>z?ZLQe!e(^tt%WvkZeFY)Uj2807Z>!F; zW&Yhm_IPAQ?&J~?V!4L*5feq`qJQ!APxKVbGJ$m_ukH>mPkqYmFDKbGO$`2UK;Z`2 zNE%H@$CuFPTr~LG?%c0gfBjRVYt_tiUvJ-5#Tkeo4iUUR}of1!bmiR6#a_OSwmd{Zy zucuS8wKl~|# zxz6gvDXC+ZPL4MdC%en>xtv^cumxnq;3xmw-`TA8d37`WXqguXVww<{b!>CAGlsrlZ=YE z)c~lopv$N{$Lg!)m+3BC9B@7fa>{*wv4ob&UjFodO#BCVP4oQ=yDW40DzPXKZ-w(7 ztai5ew?8<-FImN|9O(G2VL{0k0$#hq9Od7&gUh}>N1WZSCb_C)55dA+99i@?hing@ z!2X3ZH6QrP#UQ0G_g1Goy-Hv2sY2J%u%uoHOW2_lo9pUiBRs04Jn>0R;_}ce(UW-V zLNgeN{moN!hH5(eG|1@R~Sr2CUaqaR5-@z0g~wm^#cNtyh%LQ2*e zV~I+@Dj2mTKm+B#JXwW1tX)y0@{*V_R8=`Y!@=tyZmq#kF#s494pnQun#GMN-R0JM zJ$L9DrXH+KMDut#ky{_N@ixvm*c=zlfDv zW;%z^6<+TBEj_PYOpT~KK!&G)?PN)|ZYn7p1Mwo#QL7>rmg;1F%oKKw4*R@9lSi&% zaf}3Qtt@9hTROOYsxb2%D101@scOkKGzJ_6*P?72cC;;$uYvZ%4?NMYYSKBVH>v(@ zr1g)GA_fJ#F%J~fN;mn2m--L>?2RD0cQ4@fZ_@V%y?-pJla94ICZ21bgHI+BH_5pM ziJIHp{`HfQAQV`K4-$lFX!uu7hkP(AJj}Po0w%KTT?^G=92Cw(94ZQf%uv1lw9I}` z-S|*$M(n5rETsM@!N=?HLonC8%U+wWZW&K+x;ufHr7KAnQ;Ep!d@WH#AVeq-CK8mg zku^)L)Px5A z^bRZkbd@T2eSw%X^19qpkfUuwyAs0MqZD>v6toqL3dPzU(9ZJ#HdMyF+2jfUl;LgK zkPc`|`sk?2$Fta1x}&?b{QbFw_SSFxGoa;Vt_K?)qXKfMDE9p*Ti9ZAq2wvo z+$Qq#e>`3|m!l!MHqUqE5ZoKT#s4;95>I$@hpLCd`c=#xW9c_1N0wZv<}5gC``FAv zBVXVDv+fyxm1;p;6_I`-xs2+a(7ym3qUm#-t^gcIs4rG)9KUF*tGW@5$P<1Z{iOv^ zKEhKFC#@sNWEWUA6%_7+wA+gvubj+?dlIzS|7P!l@=!E^dCa)q?@$z&l}R-`l@P63 z&->=C>=cmGGF>=-rmO2{Y-N+;rso(>zipt=FXVa0e^x8;NB1hJQ>OqCN6OOH2?*93 zV4LbpvM0n#V$JRgYy#UcD;;V@>uux8!3KWj-2b`+%>+GFnm!5WwhFwyyrI@@unU-f zNgntEYO#g$ebCQ0f+J_B)n8Qry#{mbql)7pwbxgt3Xu;IxF)f>SQITXBj+e$V|6=6 zm+ln}<;P&!^MiAba@!o6+38r=R8%kZ0@x^Z`IB!pt^uxXmg!0f&N3@JZRZ`$Q5q>6i^+#RChs+uyB zoOR2S$Wr;g!OwzScl^XTyC==@VI;YDJsrmaB)K6swks>TI9%1%`nTauB@a1*+6I?} zg8yXTUdVLQ#jLe&o68)(1uWk*_{rJ5Te*vT<~#EPJX4%x1Ux@cRG2)yp1+-ntfR)t zaOJQi<=^FXRagGW-j&~N>5!HX)u7s5mi4W!z07HK3v{HsL$Fn6rIUFb2t$EU-6ZrO zBIbI`8eT9$j+S?cWpeV#vE=gIhgHOrs|9Yiu5rGgXA+g{>!h&zR5|Rnh~BrnS`&ZS zO4UZXfw2WTe4$D3YG{RO?QoS(-gDIMW82K^+bSb@ZeL!QC;rhOH$x{_{!VXX7QXr_ zkJ7kX$e*seGUhA%3%K&H>vpInsEy1=uvqIGn+9_P4JWMedz2Qw?N><8IHe{xlRZ@e z8Uml!`ptbePmjMrm16{s{&0bInSu4g%JsidZ=^v{o6d_Jch=>>=gOV???ZX0&*qC> zd&4(PFU#FHoAepIydIm$VeiN6Bs7j3ZmF06%`NGHK0Uzhc(i zQ4#o5Yn{NdoH!;|ZtdC%jZ!@sNzYwHtrtMt;IkX*<;fkjv88#WKa6*cG|JI#t;rNP8Ne5-+|tVHQ;U?Va` zRHYVJNiFZecV!y4(ZApp3=1L}an4x+zJ6o4^6>k4fOkhLH!zMty}V2O>J0SQ-3P}d z>0{nza~Ua=R?K9}>ZrT*XfFOb!V4XTKL9Bj9Sl;%s?&xJ)OGHJ1gK`8WZ-Yl9qPZ{|47eSKKlmsMjT~;J{6Vu28q-}zb4CBa;NFqe98kTB+8H-l zinrX~Q9885wtjeiSrxG4Ojn=hVyzk}cuj7*u5(aZW{!(ujIBmL;|0 zR+s;;0w+~USY=)Au&$ZPCl{#u*6|n8C&Yr;rmJ!*xZ{gBEGbJoGP2gJv~QvbfSI z-aGxixXDSZcAQn!+k8LUtm_(gqU7(*V5Y2|3_Zvt8j4p-+N8`^CGJc%%^g6yJ&W5I zl&9!f&_Fi|Z}E!mNP&_IQuvHdFy`WQw8rGh$L3C&<&OgYN~>m;ZHTl1t25)uwd5MF zj~E%4m1Ax-v@IGGElKudwt=T3F-=@n*feT-7FS&K5K8fU$>-4blFiq2&p)@G0sk{u z!TzJ>`q<;_UH-e?X=-sjT(%TwgJl_6kM;UUsifYBSxrh55c?;o5^U${~6vC1UoP zxwZvP_8}43$wSG+b^AZi>^~1KrK>d-m-q_*wv{OZfTfl|NKh0Q{rpUF4pC~`zZ|#d zy5GNO?#3)CT#jFzxX@ZWFS_Yj35bWGKsMx(Ash;yBh#ZqLUf5o^hSSI$Cel=@h24F zto{TI;kYvxPeu##IZmR1?+|Q7u6(XX0f(a=c1TrlrPzM`i+7;DxEs8A&$F}=33r2p z?st6yogtNPSPg4wC0G~vNBbgPSq}52%_T&0>PKY63>Pw+tDj-dMn8Lv4aA^fSH3^sDRW91;VH`_2NZ41Itxsrvvf@_0@+dWT-xr(V;&5aE&|ce%%^^v zOk_c93k}uL?SD_7wJOvaMAa0==a@GolzgWNz+I-4S>M>EF1nfQon-uAnpmP2%9f7% z`f`X)#3$$Ca52LUR`>m2N^YUn9(Qd~{ygDgc78<*JMud829}D>9bOXO4ayTp_-8IS zpz)6FE4F3}e=o55H`|74bD{<>jg4pJ)n}IN8bzdnu_JCbOg)`jJ6#-7NF0+Wa@8E( z9G@ld?3@_E7sb{|T||Xk{SD16*m1d}X!~qO&^Drqd3@tdUSY_%D0B3G5{#DKdOU`_ zy73$Q|9S;*)*CXTq;9nNGBeFz1zUVqW@_D!!jr2c;;)TyPle0 z!%Lo;NJX~YAgg3^qzCx{ch<>~e`$~WhtLq`7hi`M!&c>cS{S#3sC(nS@NX;G5lkxT z3?i>HQKUuB5-h)mkuC{T*jsdRQczJzL=R!c8)BxDOYHwOX&yuKija={54N*bICIZD zuaJ;Z53PJGFQ%*MMSuVWgkDpo;q$TMT2+aXI4gUk`M^d!$^6Sit0D8Z&f$}aK!qo- zPo|~mHC>)XdD?V5Ii!rZ4==x7+v+fb`=rc6C? z1;Tj;=K!}80uviFiZ!5WNIeMO4KdbU=*9EgoTrq-=wauV5HJl;xz!yLu#`JSO`h1IW!B8jM6GO;pJkl! zVoH#s-Vy-*GlWmc8> z6U@fcAuP0O8WR3Nb9wZ3W)^W&j*=afzb3d@=f8^@GBR-pSPHDC+9DY0W$!YB-%#+- zHArX*$Vlh+IcY2IfD@^Q<0^D&Csb+P`##hsORWY3LWWZWY3ub#F{iQi`hW$Bm?I1r zgb5KxizthgYSm-j@0Va9pN23c>tm`vy?$@^@Kv|T4F*aZ0%hyxN%O1KrZBRc@2#p> zru%Meg}}Y(-ax#rqa6&J7}AhK$O>UgG2855{P~&@`5CXvoR-GX=`GYiB?nU0!Q#&? zAVy^7!odJTo_aws#BTlXhaRmo5x2p#o}pTP3~ihO_6xV6Qmbgxf_2;tIN}YxxKJSXP6gCZo;P8NmpDX zOVVAd9@xf_ANCbIpRN?z^vUZIqcdi^5R`H^dcmRrt8}9C=cd00qhg9VfA$-taOOX$ z_1*;=a9A<6$8U?0W8pZ*7A^*mmh*JTp0to6+<9u~4_N}r!&UyZwcuB%FI<7(pf)zU z#Rk`Wy9kw-WE_M}rK9M@m2~W%{N!)`w&7J$CgMBa*mOOWtuPSK_$3hJg|%*AtEUtNpI5z|i4r^{mO1>=Zera7+o(=UYeP@i zwnu|P+~+sm>-SO4b-v9b%yFAd-y$rlsBn!_P_KhI0t(d=haK!()lm#JE8RK!*@xHx zHxo9jgLvL={DBo#*sNG%ZoaUnqO~xR+^rESYF!8sE%&zy`g1sAJr+xM~kCTt$9hYyTvZ++GQ9C5uNjO4CAXFhTLVsynhTB$ob9Xs6nL=lmYXW1rFfHyd-c zY^(JsZ7(|)6a)7Jza3NKzMx4liTsdM8>&;v%M|=uNgsbr&_&Ym6OjMLjk3jGyU+GL zMf2fTjEr?0+$*j8G)sy#H z{`%YYd~4aDw$o(d7^lzmEPws}7~}tDGgw{^1}7!-4%_PRjuJrd?)77TdP_Q3uH!gk zZiys&D9eA)(%2oaD?SmnZ$UBm24~gRk*wNmJ9YaMzk*3_Lp|7WA)P?iKUb zRdKOg=WH*m37oGhge%bxx2%qdY)qGw)A8xQ_jb4p-&ybXZtq+cyL{l6ddpLo9A*SV z_|oxPe5AOyvY7v+Fbaezv9@sL-Y{Y99SF~$^C;zzmAPu31ef<%)E-Q`3EG;oe#vOo zX>d`C^7VT2aU+aGmXxq7j3*oTt;${Fj8Q(G;fHqSp^iQ;Lppo^xhAI(-nhZ1nnm+s z;3=`rkx}*UX3S+Kcwk5S|@-d26zaJvC?b+^st?LaxV9e<6 z)JpMDZ~;qYQ%!x+5$*?fm%+Xtg~h+3RLrI}LkyK`d+A zvkei1d6uUbSrLJ^5=1oLoqEEuN5cpkbw;~(#n(PwneH8(qkf&?{9PO}m%AVL&lRO! zy<-G_OG^uZL$yaR1kKhCS&Vhw1@)c-ay!IW-l(Gnz-VjWr99J$tH{ZWNY4kP;|a&I zxa2tY51N}%l36_ac}cod`XivXbYdF`ZK`n0M ze2xFPjKt!h)Mwk}%%qo)F-WjN)y}iYUvBvJe0Tni>}UT7ANFVed?rB#neeEr&R~Ud zAcQA>|6S>#FH7l3sN)i#TkL+ec($Bd@Q_bS*0UAQ_Za7r*n9vLB$zt>lWXW78r%nT zfR5rh{?@<63ER%Re+ieQ+rI3h@9D)l(MWt-Tpma+ZC`^h>RPP-nb!AaNlSnJ&5!%R zJhw2=edst}LBBe3NvsonvyA-r%bp(|B72?e1R;;RYzg~5scQD^JpntF1 zP+X1hPvaFoZ=}T7PzIbCuY?6ZLGX`aZHN9Y@ch7yww8U_KF*KKP{3L-E#bRk;Y>uk zTJORVCD|j}i|nVTm+*gG|7&q+R&nto`PwSBi(^s~zbovhf5U(qhho!}2T2@||Stwq!o947tewPoQPr}k?KPIm05 z!-2j2O~yN80d^CW^>nZd@n&Qarz3y9l3=iK_GvL44?thn3r@2Lj&bK)FsoTiW0N%F zb62$Ko2YpJqA>d0;{4trnRq=(!l1xClB93avxM_DfxYdwzKJm~&<^$<;tqA?ZXfdI z9XQDa__1cDw;GG92XYS-=o9^|NZ2~}qu10S;CK3_^6{DoSNWzdz>CxWsW;VVBnW2DaZEI0&U3Nd2^mE- zH4<5oa@PDx()Ul#T+*g(z#|Q+sA%f-zy`DucE1;g@EdU+Sl=W9Ja!rIDbnn^ys&K9 zc3tJWqoJrLY$n}m0kkrxGpT1BhoptivzF=?ovY_9(MTtYzqGP>aS9|oX%9jXqlbES z1tP%?IAHYJ&}A3&hEglx^78rmS7m37PfGaA>|jYmo534eV=g|Dod<|$UTm&w^t)Ji zdIM{fx`Xz1<13t-aXoo$9kk0Vf+X99v%2hhfk|0N)XeON!;Y!z=HRWf+&gEaTv=6XAA{MU; zWe;}5@`3m6)l_HiH9D=Fgec}$8^1;3vcj*!#B~kc3%CL0tkC<8McEKUv3#AzRzd|Q z=Gu&XKKzK)ujy_RQP~*(GlMwo2n)9s$MNU>MJENHppao+G{q>rlvdvdm?xxc5*Hj% z1QK57Ds3`Gj10h#mB1#(mb(_h-v{G-hu^;e6{6?U7;q>3!pR}YJ7fiU0-Bl;7ej*V zbU1sYJIDZwuNj7?6YOt+Uaufv#;+3S%_xw!Q4$#NR~&P$`T-LDE>AGYGM?FQD9~E0 z??Xv$pU7T)FAH#%@T7JOV9uro--O~pE1VIk8{=7h-e!^ z_Z@w$;{dqs@34fiOGySva%U~I^<0L=@A?~IkHJ=7pORy?-7jA zproO>%HHf~{qr7xtH#YL0X#(+w5_gD;9_9vXotnkob%e(`va%3G{15!yNLGD)-FXb zu5kRs*!C`Yk?+KvxZ+@-RqGr1fuHtq*Lj=?KCwIfZJhU8ZTn#{Zl|F+d3luU8AY3< zJ9@seV~YwDhPc_k#8KRQiW8KE3l^J>o8Nk3bN07t(?@C)=_>_CP%(Ntw=_BJ$E1lt zIio%HFqKjxjGn&vEZqP51xxjr$d3GewD8BRlyk@eF}l)n6_F_X%dzQr_2lw2mODD$bEB>aEVCpGYHPcX=%OLe z>zipxP)b#m>tl9oIStk|oouwHnh#Jn{xt$cD99^38hIK?-1a=G{AcCSg%puxyu+9j z&5#fgvhUp3w5%)S*KdW$DcmoNbMsjj$~^aN<>K6;fDR>>K}Sr0CiMhi|6S8I0+rQe z1kCn%8JjyAx*T?m+Ds0w@i~5FrV)PqidT^7$my%kU4D8rAJyImV4jIglikwr@CD^&o50N-R`mw@~x#-0D%{;*56fc=vmDx&P`n~SA${Ur+wQuCgBL0B*HYhSQ|(%Q1&TjZpg{6V ze+~UxbT@82|9vrS2OPXYx~qC~Q)ws%jIP4(|o;iHpQfR0VXnNNk*_JVRkbJdo#!TdgP*$U4Et6aZvQQnLq$3 z(Y?j-s0JU;s_$?avB*)d=8d-4Y6mH%@X29ZA|kavCRCQ#KNg7nZP2pMF;A_XC~~7J zT+PgyDljDc;=@^}lf_0gUql~REa_gBI{&S?n3y)>hS(0wuKzDaqgcIHZ?#BtA)q02 z@50?=%?fUQtDB5-pz*7X;77{a`jKr1;jCb1%qlZg&|ucK9F$O-lO?qzD(6~Wwc zvk@ly3|%$U<~F*8$avkoI^P-b-H`nLef7`bjKVR}F_zWH^YngJWa@jhwG}Ux@5@j@ctI;EA(uOG#oxxAvM&ivLx>|?vDQ$bz@Cw zS&Vf4nh-vQaXW{|(6RfhBQ^GIG;QolNR`g^?OxnAQdHKz<3*3O_8@<#*>W{p`v2%QiD3>pB*2IgJ~tVYX-Q{DU2a&1tA#wKMZO(V|hyQB+4^ zwMcC?y@r3&K5+`_(%9d1lr%ifR;a%Y+VJ`gDBE^oXRqUPMRV3RK0zBQ#j0p8d#PRZ z8olurInr8=th+nYdNv%qR7ZILS=0;Wz4Y??5XpW5Em=Zyq1suYuk+et3r`*T*ceRI zw?E{`m2J%=3bq(rHnXOUTI3OixwHH9PErfrOJwfpx&+jV27D&b8e9#qpt}i&or} z`gBTVrGH`C$+F!iVSv6URm7DE;VhOb9^q;Oh~0$>Z`rRsAut^kR)}wN=X*;*S~>-G zot|6-rv_bl!^8vB51F5S^aeIHG8);DNTepUViCrv|(TJux6u1NbRKUDKVKT1rLI27_zoUPEP*qYWS7c&C6<_sG2`q z5gO)jJae~Z_+6gg_^l%Ku-PL3dOw;s21Ya4h`%L`*5jxAi#(wDG27#R-D20&`X#+U z?^op4D~IS{s*?}}!7%3LfisK~cMm=fsuLVfW*?K|ID{)2Y&m}x2ovqRZamVTs5>rC zr;K%>&U`jD-v9?kfIU0RJ2p_7N-4oF?DSeRJ=mrM)6QzQTPzaGp%Zni-c2YD*lW!% ztZR9O0ZUrQp2Uis0sJYgC?LPL6yi{gLaE0!yLuisGwfYWy-r-%-!W>kyT0kBCzmOkm5Tq z4Tr(l9VeT7BVByN@oeS)Rl%;KP?DyD6y81E+VT`)%Oc;tkL=n|7 zDdj5v=uyizF)N&{Aleb&2>A3-n^Mqczw$$^OlAbP+z#+-yHag&)@PBQu*MP6H~QS| zkmVDtv|WDtx{oNBIfg%3O-flv!2akQPMQ@jn{dz?Txc8GOSf7WyPb6lMfu7UIa99b+ zsdgfV&NkSoNkL;>q4wR{WB;JUJmkA-x5hO7|H&*yq^&WbvdkEwUmOcjbVBnR2|BCYCI?R>oSYo{#E_ zDAdX5w(HHt{(i1~xhOw<@TvGM)VCI22hCcuV$sHJI7#qF?ON$eaAatM{5nAwejBu+ z+vaN3`MRM-y6pP$n5B&-s_A|+!DYD-fDFSen6pnQnj!78!9ok_ z0(c#zrmlfCUhjI;ik|PAO}+1Nhq&t3?ZnN|Tni)1_8pO6-VX^oluE9{iT6cwG^eSq z@W}Z;!4aMNA{m{Ydv%8u8oJe*IOt_jKCzuSn`foO0d(zLpR;JeJ2CIlT0a}aGwgDu z-ZQcE(}`G$`6A9V!|{cjKfY)+rUGE zWv|NsFZ{|GHnpE6&BX4NjB`7Aj2^>dg5Q@)-{;=E1#NWu*HVtfF~!b`d#kRM&3k>S z^dOxe?FuQAZ2#QW@;V>|2;Jo=^b{Qxy;#RpsM;CkS;vll#JoBdB>@*K4Uam)-0Qge zRUDVOi0Q!f2FK}0-Hqc4hgg$)yqd>^#QD}M&=P1fZkluqV+pYM0szi@^7gd|+)T<1lbm1Y2@6LB@dB4qP zF_;^I89Cs!>?YB{fy=>7C_aRaZMGPMTlV$G=m<)#Hg9^zumcU9-Jqgfs2aq9(fb$< zRJbWB18=O514h2IR}|#@0X%}R#$4{^X#-MvG2+u3^s+vzrz~DcE{ffmuWB`EsN5us z9dUfL+`_Yp>9z^c=Lew|;w+*L7o-T5CYy8p z{00%!v9up)Yi(#b2&HYH%})tm4(-2KBZX&wPdE5u>VJqO7>1IRjZ&L35RP`X**74_ zFB}RsK$^54Z@>2bf`7FHGH=sA5cerm=z>&-e)gug94MW3}sz;`z19 zzRzpE-LXBx zVY|H!ZRXabnvQ$(dv6A%qvj&f&A?${tDmpp8Nh}0A!XQsQ{RMfu_T#jbh>O9PgJWi zKA^E^aWG+Wx)g4fPi>SkMgwOHXV0QNsUO*oN!*Z*-pJ)G8gIDz41ls2V4?eBH-T=Au=0cr3Ti-dg(y zgP^JT8nfN*d3a2DFLGgQDXxcZ2}^GuNW9HHi=Oos4Zq9)xCnj0R+K;{H2 z;<&>M|9P2Mjyq`B}V^ulVyUf8!ZUuZ^s*Kt45AfhFnPfn{!;HI|8{R4Lgx; zB5)mACU<3Ld;@bzWiw5BOB1w4blzK;Fr5#Uo2HEp1J6Brpg+P;-vH&2EXMuABNNpS zWRaqXwdNA}d*5DVl&WGCcQ2j7fv#YcbPo~JSR9mYHusm!tvI8U(b4cdACZ;vTaB(f zr`omjFHEHYlEbfXjH%WzdRj~civ`NEB=~jfW22Fpxe9bgg0X218L3Zu7>x;w%!^r! zZp;FrbP96b?>htq!zq5hREm^h@g`(w()vLGl@hMn!$Eqm96Fccq58TFq|Z3WVeoe- z@Eg%q6bxIN;gBUjue`Go##E)SAO?Xh}z#H!9DF9A0{oR#g$ zGjnu=S$G|lx13fsD`6PrI=JnxwAQ^C#*fF>7fKC>4CM6ld5lT!Py8%(z}iWvv68D@ z`AjM7zNVZ3(?ToMsljMkVgHIgQ+tpy^B1(m_!`3gr3WZ4yM`Pk6hiDwXk6KC%=d7d zAJ$0^&~YmLmhF7lL+g>YzX#7hMn2*Lr=D&^cx3g%^PCd=P6;IjH7?d)zkVymr<&38t27e7-;;vo{WCiy6ikLJowHOsM#cCvap=ZMr1q100$QVMO29)&^s z<*r24c9$+lPUm#oncq!@8-@m!th;#2EdAxsT8yF`#9EuAnFq7c)yyBDxUle z$x-U{O@e2wBXFujZIJsbMfgun6AiYRPXiA^Z26Zgp|ScEFp&t$UCS-(xk); zmwzM}TdBR{_Xdt`v_$Jj(I)oj=7QxjeYu0{Anq3KiR;qtUd?Vk$uko<{jn*hewCKn z&TeY-ZDJHNYoRUS16Xnvw20$)x7x~FrS;nO{o|>qKVo1=>3E4ig>|K+9CDElglI91 zCV8d&t4onMR2Y7KhfMRVfg;TxJA~A-H9)!=(~GAq!MQAl&IWrW?Y3o;-e?|EUs=?O zRHrrvbA+st2Y_%Zpb0zw<1y>xy?;w$C_K&Sa$Si#9dIT+p%Tp5<@&<&`Xj+A_@Zq} zigh;Jv2n7uwp6pG7tYcN{l|MfUMdO3ogcEdRQ{-asBzp;3W~8IFnA^H!b^q}i<4@IPc z`Z&}XbKZ62%P&i!u=&iq)QPD@nwm!EA604V0#mPLdIzQ?^L9r%cM5RaAVW$0@XfdW z_3T5gD9y>D!smMrG&0j1`pX>qjfFZ}&glxP;lyJx&+TdQ?QLzNm|50-ayCtAJ$D=K%{-Na+c2`s3L`FD za?UuD`cXI8kF)DiZ7WDi?R+!-;!Fw^ieZgjO^*C9rCOnk+Y67ln?W<>&JwRrGBam~ zWWs;3=()bGHop`@e7+dRjV|3~P#7&v{-Ar0d8^tQo7;NbejmOH8+^SYdbVI&-d8m$ z&Oj*f5cO~x30RD`_iigSp0(5Gcg&Y?2wQIEbDbTfUSl8nGw}Fy590zT_CpmP`?b^K zqs?Ud*X!$FA!FFw{Onh!pGFTQ&?G!D;Jh`c_*&8>4?QOcKRShkce_-xNg5AVTLvI~i zFAhR>FM6RZ_2$Jz{Hrrdb^G?VwGN5X_(Aq3Y<9z@B=Q%V{&@+_f@yfb!8JBLD%)QU z60Xv=Mba662i)Zkka8(@b}*j{<__3@$w2x9OuD6kPyJh;el(z=ia^kkvk3ZcvG|)C z&B06m;x#Q&FG4e7vxd%nyM|!#74{7t=Puv0e*&0SwccrHj;q;?Bm3Q5rg>xq1AV`! zcwzwmDL;1(ou)BtjlbzI&FM&C0bar*MAV5o7Frrx&(r$i*SM{4eJrJ{q1XUQUH;_)LBrv0WzSV) zR#v@6vFFl!ecvL`%*=OJ&zsJ}ukNDGdMxE$wbvk%Vy}%^wSqfSQHh0NvEq(TduAhvAXQwI;=R#l4R%F4iEvuFNPBbo3(Nss%l$Qz0#MMShwr5KXAs7P`7P-8~IBrXIPu_5XpC z0rWkOeBBY_0GD-dhrQ)-cuUMSPI2(=chHSGGzmCoJy~#(lRoI&4+|!IUJCGP`4QZd zSp}K+-As+aOf-|7XWWO=dedz+k@{AjcQ=Gm;3TmADrZmX;2m=KL+$n5_Z_f*A$x{y zMQA%tjEta7%r_p_n2CjlRi7+PdW@!90DZvf{3ixtOd3KNd-F`QBcX3&D~BI6%`MeG zo;A5Ec{oD0;^~6qDFOMrRUCs*hC@kj zC*H?==~&GJjU5CVstU23jSMv;P8-*384V!h0e05{o&U11bN8NmBsohC;2@ksi9OUa zgR$9(nL4o)BSj%(-`=@8=YSRNRsj20a|#b1lleT5mjmw?WHbfn2$JAb3@ZA!Yiv1~ zv+@1}Tz{JQ?nB>6S;AxGV{rfC=9mkeh=YmTd0zTdiTNP0UgL;0IU9(x1P<+aQ(MiH-u2mgn=j@&o30h$g8C5+XS8&QNmG`|*wlSx(4s6}q)W_8 z?IsTM``q(c-=Q@pX-i%TAm&+TjJ?;^lg*QDv;6g+`0j~#Z!L$>cHLkLGzqhpf09Uyx&9SE31j}BE4GrK~XEl=CL~1_IsoSXAPjzBBo~)}V{VOi2lQ}w*Re!IPd6sXeOzS23&2^USLUr*+6YuUcqhLarkCWs(<#n?3eBn9oKM`OnwJ$$- ze%*ZY%mR(+vD;RINx#9>demRsr@CIX!WtR?Ula9QbC{csprt1G6z9}HM3rYWxoU}u zX{5+DHI4~P$b#e%Rg(KP4mjEW#LNF9$G*SRPd0QH-GrLQGnxA-X8AAkc<=rvtzE0i zV;A|sd237L{=-N73hhAAZ+&;q^NclW%Ilatt7+3;evaWS_Id}dvzN5^rRr33tKelU zxO*0EmJ;BTC4DeJE!2Fwi!G6YZ3qZ+xmlof+pH(`C{(&`LK{7k^haL!4>unq6K-x- z($*e8J4wz->7>~MuTQeow)`Qu1FI`M5G!}RE$f{{oz_B182n2{9aF$AE4xUC&Av>+ z%Pkv#|9_gcnlFOUkOiMov-bxfYO)V2~0u#tL%>sfKet zUFdwh7fm<0hl+3ClwT~l$)eu!_dSjZf*X82UnKRDzv>^Q&HNJ=ZVr0-`slc{vo{bc z5QW}vF=V!XJ3s%j0Mu4?AO54U$S}vCP`uhyR4;RSCfXoyqf~A>S8Q`XVFJ~QR2=qu zilIJkI_;BT$G@tV60WbYlP?4>TXHKoY`sdwaI-PSJj!(Rex<3mMMvxxqy`M*dP^Q^ zh`F=AB`!8i;qD77)APj}R_jtVo5cM%yR*D=SZpcJ*zlvNrZ(iUJr_aW;MD@9`rvUA zD1&ilzkJSbl+{f%4MFp#al)YH#Cjp$bxFA&JJvKP)-uMgc_T(zUnW;%Fv_ODXn~;5U_iS%LS`hM+5)6!)6# zND7gUenr}-~i4)Z`+4~F(?7`ui7uY93t0qcz z^VRt;$@hlSp-DYz#?Nd@{@a1qHWM&}7`SSx?kmc1T_KY1u0aQ3UUZ#7QlMV$0yPJ^qfe7Rl_1)JZ`P1z-2BVk1$ zI6yA)oLEZ8oI@upZw~jVd#9vC2)-`)lX&yr;>rIpjp5`m`umHZujnc=?iR`I@?$z^ zZ>Tuh-PJQnK!nrCIVLq1xWj#gXEdGqKB{08OtM}*BUxX)=FD;wB2!N#UtW;xxh$)ANBzwTXyYc{#6_+w+e;Vp3nY%x3JmYo^gE&EqZ_AOYi^K`Yz>8o1rgiZbIg%AT9 zr(l$hAauFh!XUI!>bHUe_gI~7Ma@Q9KV4m?Oyq_cZAfpq-!=98pn`D7GW+(B_}F!qQmFmAwt99bIBBy&myhMfZwitrD+&y+v$Lk~)z39W`tN}X- z6L6muY(pT`Vv8Jt8W0N8drh%Oclq)9@-WxxGH$R&Lxy)$?j&6LXg0gy=BG4aX!Uq# zQiJ%Z$Z-aa+XLDqL-Hgc4*YIE-NcP??N;sjId6(Gu8AwXH0 zzI5RrE(b`*$ckD-mg=I_5vDQ`tLVDPg53@#WPZND%H89}G2!R$K`mE;*U}sRy?{=@ zY`+nSQy*i2QN7XKI0c9;N*%ZFW;~hCQ7nqM59cuyt0~h|3YKN&s^gK~;GW^qrb4tp z7qq7*Sw`RIZ7{P^#2P=39Z?A>eG1AJirFknq}4V3TRqYrV6y!3PF6E}SP&uL3CL@wxht!MT?ufd zgmIZM`k$UIK>Cib-{zP;X8WH$N*$G`o{MhYo?S4p6ayKP9LBIoSpBSRKYZ`MnjJu; zDND$cKDpF6zElws&eH$zNZh$g0+yuBZXPhTJv#6_PI_fqXH!DC;BMUon%BN&V50>u zz^C7fiV+dBy#8)S!+idhPL@B8WS^+9hTxC*kG?k(aA0ltC5v`T7vJ#)pGKdKhV-p5 z@3>L9UV?Wxbx_7clRhQ3qixXYhivns$*(_dq@%2eU%%M5jY~U&GqG=SvzPxDHa>i_ zO`q2n{X0kfsqL@WW?AsJRW*t?>9cMS7+dYKx?w=ccNA589ViH*ut@8}=ZnWKqWrx| zOk7H~;j!}O%Yj0(o1Q?6jm`b7YOw&f)=W1FE>`7p$0QUUx8vl?j&b^LhkD01aafJg z)VA5w-xZ$$v!41*dUgcRb<$HJl_M)8^AmOQWl-xKj}B|>Kudt#sHdBIdUf|PT|~Db zT~~}R%Nq%nHGR)aF;IE_S=H?=1}v2q7%Ocs{JB)*W&FpI+iHZF|1)ZS{IoV^hQ|Ig zw6ym@8`l4>`NlysE7W`(p8HquprV{#22qM6bEm*u$a;JnQ5~77bm30fUNC6PSSvfpBG3y zUFIh@>p$<0)UvvwcekQ*4SUgP9K3-Oi?2HBc7v|N`$Qchj5nBg z0!ANuD`QIZ3Beep)Ek;DV&RH4OKEfp(rq_b;8kpyW-Bhvvun7b^>g5d&KSbmM^3Nr z{t$XF$>5oJ>c0OPwn>?x+ zS7$SJ(hDx=Sd32h&T*2e-L}lCRO)lT<Bm8nx+w#cDIs~LS(f-aw4ti(N^ zEzyM*)H>n+ymT5K}eQ2PFDHBsA>}tl>H1x zhwVEE1XRXXrHhCsN172X=HCWl81)*A|GqMfUOo6j@Wz$M{hyoIg-zOhE?L>*K7Kj1 zSH}C&p?TZlE9!K-{ZwL4@{g;_Eo5+G1ZO(kkJrFiMhs^f(1W(*W#9+WN?#H;(`Y5# z&F$7OonmMw_ZBTOZtYRR&gK=p8wIwE`g`XIX#Z97m#!?Bv1RW4Rz#Vx(aOy4vm4H_ zLi-<>kU=(7Ec;1Wbce@m2CMNar4vj%oXwBp0dL-TbTqxnYA{A8N-o0%^S6kXzM;?sB+Ous-)g0e^w z;`OTT%!==-kA?Dc9=cF0rPUquOIre3pNi;6e717V1+F60}S$~P0>O{ly^_hQQ9$m#1B)KS> zVu#2M9nJPXC)<|u`nmmwZ|sT#Z!R+ufZ}SC_*Jy{b-G*%1?ei!bbn!azV@7X7jU}w zx~&;^vBfU)TFV6vB+3G$!$?UZSLo`Uwn+$`I2=N^w7*Drun%YH8}$ey^;NRkd=d|i z8QktensyEx`wNk~PvI3q*#f*23isU{dNH8m?zOi?a`xuNPm8~co5p_84|&7^ogVb$ z*Bid$inzq1oIy?P!{dp+(6o!rs}EdM^y>7cTf7>3BZdd{6U~}(mGSq>n8y|XWEn{o zYW|a_=ZoxY`2Z;KvEyFhCJI`ZiCzd|)hw1D32p$z9(>Kew<%48p7HINR9Ft_@oi5fTTM_zm|0cdp%mfm-kUr$+ zi&nR}n#{*$WHnT54LjImRG*P1VA=c*pL(BZ1x2@EQf;%6Hql=1A3?U+e^DMCpC_9S z%tiC3N;yW?{zHT_mUr`Xw{ncOoHaLNk82)IOGg%82h0QiEe1E%-<~?S3Ya={4$j(M zb|@%+a)`fKwA$j06yt>i{uqqC8N~HC%%|cF*kH9@MIcS{GwOyDR14) zdJd5@H%C+2(iSV7*)Z%$E%Owni@fv*2Yq2*1Q(Kl1?C)z%=C6Q{{4h1pdAX=xeNV$ zNx^UUNKOtJZm*&LE!6*~O=;~ro|AYyl46ls4f?Tnj)W^|%?sBy+f{?wXnZhG<;w&yr+*g|_BoSZO%zzL`@+Hf1;` z?x5}>_RPr~ij{9p-bN=sweby4J>|L!g&$6Uqg!S8gsOMp_@Vw|9^sp#Ft+uB>_DD$ zQky{~kKLNay3*z=b>ez=8WHpAK%vx<)q_BM^EeCM!8FCW6WHAO%~=()ifFcQ;?>_M zwi>ZEr^AXXc0bGXpIL21cEeW;gEsP{mxKCX*kszmgp8*-5q2qZ)T zRjl^MSIIYw)JJ99m-flrbFxbR2tz|%s9ea-?*)}#op^NsGP4Vhn`uNZ;uB6sbKK~47QZaYo%yj{->UE+5_0v^#qr!;qX~O(lZat;_sDy}Bt`8>#!)qwW zq6iq-dR2k;5_Jo$Sok|=R~OXUH7cM8Rn?!Z*QXW7(30$dg8n}fFcYc%FiLf^1f2Jx zU%C{w7xwB*Yz}rEL$Q@_oK)S~OSWYP7WUTouiH$6>6HMvq8w~ODd#xEIp zP8l*W{{2M?p*|)K81)AS)IQbT!&?z^|F-&<;GOb|T++;N9z^doGe@Z5d6%7BO}mHo-vkA>;lwTetw zZHAI24H8!0TCde}hd9o0cIpfJlFC4S@=YdFySe zG!s3Lx!6#=0ZtFR5r|8tbsp-K!(msop<1L#bJ4;hK4D+(l(l-UUVvLS4m@vcZy2+P z1-7roYug7*kNk0uP5V~jPW|z$#&^2@<1L+~|Kyg>n5d7@f~Ehf_i?GDr}AXMJheJ_ zu*B1!K5==$?SqjI@c(w(f?^Buj@#O21+acWYIRben@z7TA;+S%$f}_4l8A9y&LqtG z?f#jQlbm;vfi)h)k}}iZ$-A_qy54IM&L%;EsSjk9Uh81QWD5*yNetSHcU)MG-vSGg z+Uj1E8(w8vdr+@EN#PsQ1K4&sH4H~C%Ol;Icpco}KO1m|0fEX)tya1Qw z@LR{ps0U5B@0;=Twh$K*Ov(yV`zl{_hCZc@q_L59+_2`9q>LoY`v+nAi5u2Jw|hT7 zRv-bau0)O!QQBGl{-Uq|_~+r=lNQrA-{0gBEuztBa2LNxM%UK!m}xplms3mDMuQY= zo$6bSxrvzBsW#%bI5cL3)#G*K5g{7Pa)K^Ds;2pxC%YBL_3{q0un107fh460tNJ{pu5n zLDR$kt_=F>&DWL4Hxh%+_v+LCCIgejXPe4ju-xIR@iVY!U~E!LFt1wp-bCv~jq&}? zaG_^_qJ(hya{WhF^zmnV*pwO5N1SsQt+%N6@W$I6pbss@87<5ycoD>nPX7&e*RAA2d4>%7_HSnB}c=cR0z#{P>z9hW2zLydcB2xRI3ziXx7Tt1qL?U>qK!( zohc%gN7{uqR)@#6Gqvj8)Fi36nJhP!En-r6&|#mP@JEhw{abUf47$V!51FG#O8<+o zP0!?c6mz4^;**>O=7#SkV#EWw_b%LyGw`v8?}Pl)Au;S|ybi}j+tY~IhPN9(epsL` zekIs453p1;KZ~1?)Yr6QLozL49Fb6(E3hf@Wv)2Wt;Q&mZX51?;*Ej^351f`4R?5y z%;zRdsY#R{l5cVD5iU}$O;+7-IefF(IhWT+>QUes*ZRjHCo}&Oy^XPx0b`fVUrgpc zsi`Nn>k(X8!gCG2mg$zxtF^Ql;APA<3q1>*eOXL;pu4l_9BrGbdXGoDG$?`J+{DO# z*67V<$d1vRw~7IO1$bvK^)*!XW-r2goe6&P_U3q$h!m`U!YQhT*h3A>_cu(&Svgx7 z&;O0&!;vQ&HS$$rMfnB<@j<4<>RZ|HA(_4(zQV3_`Y+sGa0LeF`tdq$DjW&+-#YcdgTgim~BO^^NS#5s2o&^&a2|wi#u8n$ZG1(lhw^ z=-=~qlWMluGVv(H7U@<@1<`s{r?=f>(IfU9r|}(0bSnG@JAt)8`)j#3#2~UUM=hKs zo*&OEW2`o#@)QrL3?cj|t94#|9g0_sJ?||a<+7vWzN)z>74v3}_2RVB;$8;}@Q+4G z`J1hbn7q3z5Zjo^Xuu6Jt~?kkbNA)EtI;pZ6*f6xO((XxE9sIHWGI&Bu&J({Yp-{{ zgpxjfF^BQz#XMWR6exK=Tne+LPpu0b5^xU1o$$z~0s zS4335-yoT`V);-muUrDp21$=s7F=o&aQ*-sW1i#OggpEw1NYD5Zt?eqOvW1I5k!M zv);SyedE85^(H+jB7#*JNCUs@|NqB=Sd&l;`+IAD;-q_g843Px+ z4V&*})dL%dIa3ia2PDmGdc*N^#fC*lvPTnLZ%b2|h`3~)jG>P+{MgrOeZ*nQo62Iq z;?9Q9m1mE#K%FjKyymmzzv8MurAUYhbbM`|v}e}5QwKLs)Gat%F9!Ud_Z&HjKc z?5#To;TTJ#M#1==x{AG)iVBDGqLOE(WKRDkc(Ucr4xb^{+9m6#E3qL-UHlN1|(hjORv&rYR$KD)IF22}M< z(2O;dO_N?ZI_tGCw_BbTpF4UUTtfWnd;3RDzStUPH4vy6c|UGfuk*l@$@Z-CREzFw z!!!eyvNU-0%h^$lki?)i!)oxR`dpnaVrh@sw(*L$O%sAZR}fki3tM@YcG=&mvXEKdYF{QS&-$nYka$ZGBp2@K zr);ZW0{l@!C<*LWpUMw$CyW|x=y$_dCKTTXRKPle_eU82jyw>BdJXT^>nK9^bx_Q( z{*L{LW}8XgSKx~|;$^k{RS{2!|KNI-h-mVT^yc>^!AOtzU+B~rmXevKAmr-O#;b-@ zr?2)TmSON8)7u^nqbOJx@XR@->D!|FPuj0xG>3Y>%E6oDI8Qp{PMGl*NqX`%AMB4n z=efq6M>ab4*{;GLcZASStv87wPtM`w*I-wpDB0t9c}Xgq$s0Iw`dXai{l&~0z59n6 zT!LyuxXMpPV@Tf@n?GT+Po52H=5CHA$K^jC{Ze%ibg6C-Hcu`zU*kD25a_ClG@{z9 z-)y0+^-Y}d55`y>XYre;nFSSX2Rl5t)5aFSaF2x<`?eAB_@~@=*ZnH4Qqcw-UW1jd=wJ_HDHtv_7m(`zhEDA!cr)h&OKSgiY7 zlyN}$<2-YBBxC${vXj*`gHQI;#XMIR`1tdv4kDB9tE=DTayt?7xP3f$HG>bVHs2%K zR9f|(nsn+ly^&q?`6?bItWOiIYNBJaJ+jn6-ANkBk97XaZGiwB26qD+-@q9ReR--q zpM?*hh?{+dN9#m-&rEr5B%ddR0SQ)J7kJ32ifb9YwR3)#D+r_+H$-ejY6t~2;d$1> zNG^~aR+nlsO67Yn@0)R;RfJ+G`AfzeqdO4YHOOP|9KlI}VCGhsGAxfmG2Kw+fNVr& zlEnCGqsxWa@&xS~pG_sym$^ebTy771i|I}0$fc*^ z$aZ`!>4h%o!emh!aNE~Ah<;&MnWx4Rr)O)~SV7@c3a+${$+`ErpcmgP>rXzc+H5L} zS)=AHnWG|q@Ay#80%(x+X?nw_<&`zr&^i($1xMQ%AFbSL%+6^*tN)XXsE6i^Errki zv^w}~yoQYI9!asSU9~1{vhtV|=P?KvYAaV?)LAhvm01XxYZX^7z_q)1wg38g^O!bN z>lT?2zr7;WY}0l#dE%VmwjN0Msb7{p_)n|T8q++NJ(?zN`KDw1jMDsiKdQd<6W~m4 zR%nxER@lIrkn~{p8RAZqx=F16){jRe_z{6-S6_>EvSnasP$Ml)zRmgX)-%3Hfq8XY zOZ*;cWS(|SV9Wt$=CfU%Bl@U~=wqUX1TBtiFk+<)FU?4OxcJ*m@9d$L5DWMqIp)AT zgRe6O)YnNY&m{3Qa$Y{S{CCD}Hlfyb#l`yyL5eDiyi{Tj3UR*~%tg}h#aa$U5tJ41 zC7eIo={c+YxA+)iH(PTgZ*P78v?TENRQe;IoEULtd?8eTz*#-qGr;U?Yv?WtQ=!$mw#e&uc6CV&VCe<9lxlfi3Zdjw z!WU+(rlE(-#hwN)`2HQ-SJJQo0k=&eO_~i~^h$Ef>XFc6@o? z@`fgB6xFhbV^VY=kbL&yHKqkxn0#kys?!9L;BZNq4Hn4V#CFU%lJD_r&BuGr4By+V z@11kIo{iV&x4d|jZ!aTz(G{;>l!+dnAUu!Te)uRK+*Ii7vuyO&AbeqY@BerWY>Uia znPS@38-di?EYddT5lTj?Njh6kGa(zAEf0>8E0}TOK?c|6_imGihpBZY6-?|x%@>i) z201|tw)+k|)yKadtNct&&WST?CIM7@(&9}jyk%bgJE4%qyxyI$=u>WiuBD`3H!owp zw44y_SyYu!i{_u^Ph%VL6V{O*CktY%rnZ*v*IO($NPPx>kK<&ey}mpd-Mw#=U z_22))=Irz0#HvV3=zf*MnYQ^+fB6|>=z|c7jqFx|oFIDYdPCPypx+&&QyVE>J{~T# zc<&v~`EMSp{1ey#4L|9cIQKY3qH#UnEG2-gRG~-~w&JdQsxRTvVOkDVInByy7CMx9 zBTapcr_qQ&^PYs&qF^pAH>?zLI-fxGMNg)sTv?ngoJlA5E{LwV#P&zjdJBU{e(t01 zb=GCYksh@E`xzXZMr4|F-*%t1ha|H#;%&qzmWcZp{*r0rGcI~Ovs6vHv+@jJQtHu| z(qjpKN3uVWeGE9F-L53VnFp15D37FA!&iUy;5TGkYdGykt%C*NyM)Q&|6aGB&bIeu zkVjr%IHy#5L=(3kl;;y3uD)PWJ&?wJC3lMGEd4;6T>Y@WS?cvCpNhDjPDNZ8Drd4w zGR6M;lcH8kNyU6KW%1hz3KO{+E=4+p^$db0pUiys#e1rV6RTk^~pN1(^Veu8;!sm#0``8PDA1PFr>e)A-p)G+iAUcI`0|d zFXeZJ%6rxTZ>fu|^}e3LgiYBTAr(1O!p=G`!0kzeF1%RxMX_$lQ@!H*i4DUC3H+w2 zRJpN2CbfWdLPxW@q1|kr?3YI1{nwyZ{#QMxgX$SWMxIw2F%zxa>}PUAftddrGTEuV zdM?_$#a=Fte=PAikZP=+AAp19QlR4O*@~aky#TF%G2tX!f=J{Wz?nav{ z&J#%cLW`4kwr^OzJ7i#+%E_OV4=WzXi{Wq;%eC!dCp8-sLXqU>D@(o+Ul7#uomDKg zi9%pW+O!JL)Eh}vD(W!!6yX@=^6JSh`QDRX={oA8Qn*R{F1>%>fUmpAUsuF?LDTI{ z5d18-8Lg=}T?@G$FW@c`4vc3=uT!O}4&e|!7A{d2@&R5wE_dopAw^d|e^c<(f<@RO zsMc}u4KFZ)*nKj5Cmy^dLIH)WB^87W1b626-A{&%lWe2? zT~cg~U*8i}LvYCHxa%XXCyB|k9$Ds3jdLS)ON>?Qr^}<<;Z;-1pGs^@i;N3{r%LsV zi}fnh0X}V}z`kUPmG!=fK}(C=HX-w(zq-YW%vsdI1A4_^1;AJd;^)q#^ZKLdy!#dA zE!t$Fcx`P455IPj^L(#g-{o7IU%HIzUf>S+a(iP{O`y)FNqdupP?J`l{g@k*M`!4B zBAcnQcWS;WW#!Z6e$`;Ah8aQ2Yp)u==|t(}f=LRZd-eJkf&~*CL}c;Fi+X7=ta<)9 zU-(WXFy;!-unSnm<$M7U57c*e)>vl`ZolzkQYB|w3Bet}JIDyf0CfL`crMiUM2eZn z8<&Ohf#sn88r?@9x9r8yM226D^O`Pvwryu{q}#FWX^p2@&&Loo6xWwj1-Wi;ckLGHdOqV#gp zcWP8Lo-zdB=+hL&mSBV(i6XB^lI#spj(X2xrRDhhMfN}vESIu6*dv#|Ks7NA!Jt!V%3Z4z_TvcJ(c6z`Vi>go5Uv;Gtpl8A%W%D_%z(Dp^$JekwcC zP8xKnReYzS<-8H-TJu04Uya~7QEkd%H`UxQWjChzNZkI*U$=P9htn^`dVNlJfamkt za3Ap^eNq_W)~sG}>OY#jl9}>uOY#1pb7p3r(?>|+naUV!V*R8-zfh3F8*@TPR8A`>(zAN;U_R-YmbW;OnsV`mQ0t*sK*4Z-j9@i_OgzHt{@(tj| z&=!z`C~Xz};@_k;4*b`MsJ3=AY{r_x4p;^hdBz{cd23ezCAfGMMgn_ii ztPa{(E1AshVkqO`^w>oiAo4%PL+p}x6dfmclrpD02f63F2mt5e{UF))R4{#Tx|{6*aOzm+B5#4or~wbN^RGFWi(eY z-K2lUw?!1i@#spM4#o}0n}y&r_>#;^ZNkdpXNKMKYZ%K`lF9;naJR8rb-66o6}9!* z;imEV7x6ls>F7_r^({Dz1kvU3A5fCPSq{(pi0A~YLc*5Xs~oQXBy*H3Hp#p~W#C@JD~#Co zgkAABFO@Gy%$Elf?zWP;d-o+?+fYjN*#e>Tw?m% zXfbyYi=%`l*5I^Epu+>l5PM$0WOYp@8Q?8>!XgAhg;6 zJ@%v(VYxG96IM^DI@lJ18vrW~mJ()0iLF45NmGKM#`?txE2+$gmL{#dcsS$_a^I_< zgclV)eU_Tm|5ZQmfCg1|ja9VWh=oYYFp<27;*(&UjMLB903%4zYGxMf2ktD#DWWr zhL|Hs8j{IM_P=ia@OCcuAU;xl!kFzN*de9hA2O*meTo8O43lD!6bov>s|ec?_U>- z^J|?8Q~g19^To8OetdSw%7&Lt$Tw*(?M6aP>5C?RQU{S+UBsj-@4r3;g5)c7H0-}J zx9FP|$?N|A;|-Rc^RuqTD~Ip!8kC2>X-QyE(lrR#gMV%J)2@D}WvAI1OS6SO03~f@ znAO+}Z|AM$O(L94GSAs4Xl_`p1MxJo;7zAWFVoooFt%EYA|6p^$@B5({lZ)HZPcq> zwUx5Dbdr}rO%aeiz~K{E6M*gP+Jvk*BB%M*6~rKgU-rZE)*mEU01PM1tePX8=XX*6 z%82(1{{frn$*~e^aEokG|F%{urEr6SgMkaJMV^erL)a)6u#7$Mc24fSIaJzvDu5dPVxN73kXP&iZZ zUdaqvapDi}S2x^ploDH61mH98A*iXKqA1_mA;B^bho=}*dF6cw3}?q zXXwz!CNgCu_x8WKvC>_l;uI$qs>oi{`k*CuJ(GW{F(dWNS`f1-1bj2G7%RH`vrUQK zuh>6>*;Ts!AN1BuTKSuTX22oskhvG-rue{N!BA`>FC5GW-=@-$vDd%8eHS4jK0Gk|FpU@C zu@>FnR&zI0)li|F*rS~8i$DE=&!op+H8ef0*jxsV1iwMfyOk%^1m=7{go*gu&6Gw& zvx1B^hBNs-M+4RWq)ps&Mf}s#8xS+nPtvLpZG)@M-M_s&5Fa7g@uDCM%O48An$J`#;e364(LCx}y+wj*+_Y!xe6L)A?J_v|j8=bOzpv53cjpJlxQ)Tk~ z^d=naS{|>uTPr6gbi6;F^t}n{_vM1iY&z1H&|X17 z!d3GO%hge%jJ>fvXj=WNT2l&nt!fLtlOm@0PUJsk(hrK?Bf}|0EIKk6Ykm&_!6TIP zUq&cvoHjAr{huM8ww^W@0h`hX1O}lBvUzj>VZXkU4R4^S$M7ELkp;#yY#s-sN!^53 zOv*U;%2T)N0blgiK8!1t&mE{ zqGhTG@u3(&LSJD>fp^mjGNT1lv^5oL3F>Jk0=E*~0RKo_doA?=Imx6s$%5uUf6tAA zT!gdoKGLse#o0~Nopwc+qShF7@yKuvmYLc*BIr>viEfn4L`N;ZR{lcqT*&lKH0)`X z$JkPEwd0)VT##^XGILtY-R8=Kj3cS(Rmhu$~=OH%#I?w5vimudw zlhuFD`t~nO2DYEZ{+_~!@KjKlOkP_bZGeSxg-!&2kI2hVh* zcCWyWtOTa^*5r9vo4z&0+M>w2)9zL8MfHI~8#HHeiQ_Ty4CHMo);+cJsZy%zFodD+7K^Zw_scm=q;m-i@XDL30Da*z_qi_@5d*i7lFs$trvBD8so z5B>1YrY~NMY54qSt#o?8wR*p&AL$LY=A26BnJg&s-?r?HNp!R98SI1o+8XTbKV0ri z{3iFMi<|krq)Bi9IzVIssuBI}9hNjIuEUza1Y>cuwH~%w4f&9F>ko-9K5?n?_7OEz zQqY)ibVKN>Yw+73^PHV=$o`L1$l59NU@4+giONuy}m>bB( z$jC8ycq!pD|H7ccjPb?HmD9?U-NEt+-WlC+vPeYO-e7J>Uh#NQ-Aq;hf-)>d8cu40 zLF!LP7v@8>>PYJ*a0R-`^L5P=$EJgnJO8ZpG#|~DPwi}yQ zEZUCtp$sw~cR_4xgb^qDT`LRRBXZm;6SBmIdntfE*VLO`(YcyB1DWfWDRqK?eJ^94 zL;oW7FtPA%tC7cul@qJ)X_0DV+;?&n)EdU0B1o6&cFn3BOmF#fB!jJnZ@X&QNSs(& zIvB-1%Si;X9*X{k2ik`AvYtmiQqlwZ<3%2dMD>DM-3~LF&sL}#Ae-fnW&Ga#PU27c zT=kaY?u1QAl0YR(6Upr3w?>PzRsf)4;7{1qsW%?A^24iq97){s*T(SidlGeFD~5_!IQNVJs_- zo^?66&0P?9QVq0Q9Pm+AD*dS3s2mpqHysO)6BbCglL;Whz#I%no)Axt+ap zj;E24>$q0B)-@Y<2IBt}7Ouzkw8_ngo5gFRlIoZj&!sP)Krtwe*Q2KRJ z^A=4YbvK7gy&YJ#pY+En)#!oIGGcVRV*1M$Etcf@i)G2|c`|S2ESWNSGIpp>lL_M| z%9zn(A=!_T`1o?j59VCyW!+*9@@=>o7PfxWYqn}AMGca#;>O%|U5 zCa()1ub6zUa>eHc$Sa^%1#nMkxayE9%Jj|(vV98r@+pw+a}^kVDth!OaN9d6$omG% zPi?pH$mXa$r@t6=^r9KELKnJGV`%zPS>xyfYoI>@R!kEcfL_Vn3hZ;2X7~ABItT3B zAf7V@rmxQp=sHb}D@)bfxH&6M*_skJS?{2OSqkW54}rJ zUIuZv^f{}pDsMpN@QySp10W<~UIk#mlOwYN;*CL^>)npy$enn;$zwheGLz+3~h)r@An-pB!0QKQ;z zZpM@91A+0l@2CxEYMhJ?Y^JesD;dDMDA;c)fG6GMmC*053Sh3{3h=JyCa#TINc~1F zrI8yh8@EKYk;ZQAA-T3g=D3H{c5N!PT*=DO>nE7kX(-ieHw36Rkjiyjr2^K9R%AhH zuLv-Af!t1My$Ymu0(x2Y&FOfrSQ!$#i<0t-1H?2J#gvWF6%8ZQHiVjvYHBJw084`3iu#zRxQ3*$L_!*Ka`I zeI>wszD%5y0BL=Y^zI#m{&st54U<|6$oj2YdqA3RuTtP*V*1Mn0Q2}!@iJ@LbfpAs zPTwdS)~}OQcz($#DJZA}tJX*|RD=2R7bsO=#*CR5Q=10xpNgD<31IYN(8C{r@ihQF zdigOh=k*8J#|(s754VjNJ{r$uxC}9GA2nH~vqeAe(8=RR)u9dRaIQJbGfSJ_!vcy2YXKfz&i>6p9BVGC>|}UX=!W81Ix!pHl$*)keXLX9a$T zjIZT<>tz!h5Sp$%l-6t8v6BP$o%z+MW0!I>VkNyB^0n@1Q}$MdH2^xA*G4zZlJmYaWN;0#4oTc%KC|AQi*27|vYSz(%_1O^p{q1C%JZr>ZR{sk zp({$_rVIU|0)DmqjG;1S#42Tcemvq8HRs%InR)uUOg(W~CJ?muo|GB;GUUe9YjWbq zQQ4ZlNtOe+r%akGL+~cY*m&yTNFuSA3zF!=j|NU{nlG#-iQJ$5J8#@dYBvU; zH*f<>Zw!{+2mlTchs<6X4801f5~?EDxiZFql~;t!UI75EM%F5Uk-Jodj8ADDZgz~O zG0L?lvezAX>u{_WE?mUX8`q5dRV>^YkZa&4pj*@M^zVgZeyShN?QKl0!{LFEu@x(o z$GoeZ5(k}Pv)&yq1CN6Nrx$mNjW zdm{3c5`8<&k$a&!!#VGRIrT8iun!+PR3=ZFB#Cq9q7ASFneMA(*Ph*S>g*Z0a3M?1 zoX(KLhY!h-BS+-u(Ic{N-+tM?W4o;1uufohlNGC0$TCb-%$=JEd4Dzz0P|$()al5F zpCPlM3QWO4V8Vn+_#RVaIRahoBqp?%pyCL8rV&6Plhb-sH(}k3G52o4S?U9Qo~xQdjar{0^sB0 zw0$W6_m`^9ihTffmI8Ri=B+>vkT+SpX7k1+*}RhL(VNe!Op~56=+TJ}>3&7z?vsy( z9?bkR0o?((CPUXu-F~TJQo(cymIQMJnyQRAQhx5Z4xf(%n8s6PW{=w{ecNSltKlq9 z1Deq*cN9UKjM`R?b);sGore;FI^$58qNV^{MWn)@MmEpu%+f$lv)WYj`4cm5$h4#9 zWgGx|1-a<;zN4*E#^9wlJCXQ;e2? zyA}+3?dr9%3fcD#Io<4&=g8}j($}n!EnBuIz`S(n(zh^*Wq$L`H<8x2&ab}uY7qcF z6Sx2Q*s)`>Yu7G-|0V!99v^_Nnfpq7FS7ZyVA#A|nYL0=l2c_V4w*A%P6Km}m8d@9 z6726Q-HX=r%&YBvnP`M-~q0`Bj+>ENe0pe4<9%vd-v>>eK?pLI&fIFZrzHXZxedt z=};6l%BIa*Wc%)2vVQYsS%L%4@?}Yqf|?HLe-zk$G{*0GBJ76F|9%M585KVghl6Rd z5v_)2PoA#$AA*#h_P720AAje4>B?na7%F@tBO`qS{QP}k(D8+V!gv0>MBkm;clh4E zb=wyP246T7eGw*5`G3n#3^4x?)f3M41L1qlrokk&Cun!(R@W8#R+d?^JxNzte4JAT zYj@PL9mxRqWEWk_cO?VZS(?4)0(gQwKt2WF?kKSMR4{k|eNKVRr_==SqZjWeg1s}K z*VlpFgW2Z-eFvkr%lOvM4VG_6`MSW^SM=X=>Q}=KXZ>R&d%D_S#@@NvKUXq#uA;PU zt(@CODHcozH`jm~#gAi=Ql@|(-$S!yf_!d6TkglT1GHTR*So{@^?WS4${l60ZM|_# z#k%59p-M%(8e?%Qu0D|DOZQ~)IjoI6aZx7h&5)6s_sh_=J0v=Fqb%OMLpE>PsK$sW zmy&ID=zthhL}Avb4$y|1x>SjhD$PvwqnV^;W^r?qmMSw{Ek~B+NECX~D%#YDH#Jx} z<3o)IQTt4|5d-=%v({r}x!vlJ$kk)AjIT2;+4F{J4&!S^Zx^Fl3cO3IsMJyb%W^n~ zQ0}f?AI!T!GpXOyQL9Uc-3HmSbGIA^ke|-TkPBxsRb9%uAlI&3 zm&+Hg%K7sbFr{%*u3ot+nb;3-{KQE)axz2q9y|n)--_13dfB~m4-O7HWpxTh_GTr@ zC^+?Fp&SeuG6;sbDYA6g67F#S`nzwwEm-mTV}W+#rVYLJAKdq^b0EP4U{s-X>(}zt528P`asynGk+Wvaip0l}=>0_E7Z3@#DDwXO z`;lLM`FZ58e)WCi?|=VW-yi#Ye(e1L=5@f%$HUovHgf;Djc^(7^GZLlq4eVI$pG_Y zUh1*|d@=xDRk@`*k^%0H0((yeYtI3Ad~5=|;}Q~miY@?r3agp|`5d4J$P?fR^e>eG z_GVcCUxPm-{rrI6dK=|^8{vcI=Li@C7|zD^vSiT$ z89i!*M1+P&w=SL0b8IekYomXQEO4?f6~LmTY2BkXLDG_*#z;_Z8p}N*rUBasDB*o_ z1+SPAyB);s?s3Js$*|2G*g3i9#`DmuT+Nq*b-$12p|+5Hgt_NWK2*KrqF}QOS1F6p zt_tWySE=c$jA?Znc_Z1y&-_y6_3@x-BVS4cYN;FQflLS)B&K^f!toJ5&Gv1 zo1olGcRS^FnBb~&Bn{F!(%;I$v0k<;3~o>g%J9H}zBo6bF#v`$<2l>StOmf`3sCav zljoP>rVn7&R)^l^Mj+>?Sz+|X%U3EVjhi$?W_l+DHgjgrhQytsn79Gr08wRh(`88N zX)wZ(MH6r-oA24PM^2wU4Q6}$cTb-_-Sq2U|9bR~eV+rkZvwb)0(0Mo$B}dA&OsVK zEZetlSH1exI9O21PfO$XHopG~K0ksyz*rT*p8a_|zh#iyDZA4s7YB*EFP!wD!9fxL z#_rRzs{;0}T{@uJtMbMeU60P4r59p@1Cc%$5*h?ETt68$bdZb%s~(Si>*L2I;PIwH zj-Q8q{c=fJo-Fg{&6jDAvyNg#EFy9s+tCA9v>%6l<{a;3>p+8 zBjZQN%GE37`i<+CU%Yq``SsUdH~F!z)j#F^|L~_j`Ym0)B)0#6s9)E`Rv-QYQKEVa zhMl*$Sis!J%RhRulalyHWA<|$?Bs0lN^l(NFMGtALGEyvFvr+oeC+h8(_)t{UJ|>0-MZMld-ukkI&~`c%9Sgz+1c5#_@%`{a*D-iHTE~Z z`Avx*^UDC3zl9oxh}VPt4rHytvX7(Pww>GzAYEB%@%EI`OHjNtivX{RU~j8(xUX5s z<#C@10C-gZa}(TCz~Jqb3+SsP?NY#w9()S=@2R@Lms8Eh^OXLirrfz z{oMU~1Na@zdp&9gKu>GF=D_B@J5T)Kbpf5@R@TzMu6oV{dd9n2%L2L_GovG&Yd)39 z4nR-Yd*J@_620#n7KfZuQL2MEx`j<)Wb;nJ8z8>r=407-EnC)Jx+|;B-;k8ES7cen zd0BAyw9MLbR3>lTCu7!cm(@G>%1*qYCBf`71%1Kc!-h!|T)6)Jen_{1B#dOMh7I7Z zt`1olAtWWZkb~Q^D1R%nnBfAq&Jf#8X?cCF!N3mO_Rp;{u3aX#_tMqv0BZ&4y0{OU zqiST`X7;z*(_M@!L%FO3J!bTp$#|ky>(4~MprQoqM@LnnzV9a=Ll`W9C*O}~H_1@LkL z1)^7joZ|4X-YU+J^NxO?~R1oWFGym7E(*WqH0CH>P0(XLZnZ?^I#m^0(FN?AOdl|nV7C^5{w0tHlTWc%<>k9l z0rsg?lXmA+GCnpz-v;=3g1^c5DdXD@0J&s+9snAw+_$#l#zPtXcb)n-0y+awUMdrW z3B=YSIOi&SEi=yZE+ZaQm-;?TQUgPuj*+$RnlX>87m8x+ZDZ)13s6 zUVJ1|792P!vv(blNgH>_@Z>dM9ov*-xOC}KnKNsak~oLQ#mWGfe%Nd4i8mESoO)ov z2pM*H{LK|rBTEePAbaNDFy(7Ho%wfaFz1}LoZOyeuIMy3X)&CIf6MBAI(Hn`QR02y zy4KT77<0(!7Wv!(*e1hQ0Kzdab!af2lcN`ICbZFA?f@Fx?|lW{_`d?cFs$WcnAHkn zzPePo@=^hL=1fxK_*d-)?l7vggZ$lD+#r{Gbo7xnU4zB5dxUiGiIh%0;nKNBZ|U5# z4=(#+!&W$UWQQssZ_~veK<+0V9Rj3jyI#_yRd)b%Cz#zjN`n^0Wg}cR0y8H&Z%T&l z;f2pVrFM&UQi~tM2uHcSF8bwln}VG~Uat)xui2onRL4kCH2`^4NbFTOmd4p~$m{os0LzxtA_oo(mAXk(HH&KKN0k3{X|wuwgy^pBQ3ej>wsZ z5CiPZd3fBm3WpJuUT3xu$m&;;_2WRW41M|eiSuMO=G>=FnT+@EaWZ=JC>Yp=B9bG?P|vxVOUf!6E)K zbJle8IjjLLtWzz98#k_Jz*kTJ>UsSkEm$L>0Fv>z^t6aH?)T&ua>eWTMP!l)A3wnt!A_RM5 z`2a%*h71{kS;=@vG!s>5!h-qpB^fSDo|ZRn+AMRDS9~8gf7zo+scWB&Nm=_aE_vOZ z_|=-w$rmv7xlzk2W1<{J-gO*(b;MCnD_ zQdI%mb>#+n1M~^-0QOXZyD9*@6Oh*cp9(f_trUWKUPZ9C0Df97;O8O02L3z%Sj!pn zcU!f8OVGAspZ48#@;{N|4rWaEH(cKcI~j(!QXO5I`%*LP+yGB-PPu$v4rM=+1NWZF zzT1yv_swkC4uIZt;kv9neNmDQpOpE#4#=!6yJYhEEi!h+dKs~NrA$GeYy%v!sj11b zWbs0oH+K#sH;ls|dz@hx0|pFK3n~2lz^XB`%0pmXs6bT_5n7%}VCbb5g#@d>nt9mx zJIasgTA7_THBp+jUa!EI(WoYvQzECS&B3}IJ#RzS)-t*Q_IxZ8_!+B8u(r9@-yzFZ zk*mgmfaW+V0y*G~oNrwBA#URVC{WwcgL8LZ>V_tMM%$}{?a{Yfb<9*DBXJx6z|{x($zm&x&%Z?XFr6IbPoZL zhe`Xcy&hq$)|GjH8fnzZl+`-Z&UvXj(r)kPY$M78RyB=;t` zt`Vv+n0rI?&g(VzR1BSxdp*eP^~lN_gN=ic*TgtmwYqSy*M{j0(t2gHKVG&xmZxwx zITo=LK~LYh-ORpUJg@XNXHl%qmZ9W&FH(miy%5GoZX+8fi75&YcflB;I~Jq#=+O;* z<$iEuPX@tAf_x27LmxUXgPUgLnvGNT2KiuboRtDuJpo>$gg^fAkN@98Qs8sy2-P#; z&Ye36=g*(#<=0^Gbkf^EeuDyT9$M7F1Pq?$Pdy87HTEesk3$XLb6NbDMP|?WdA1>v zlalbhyj+$pUIdwaj?987Z|amu>M%YbApvsyILPXw5uh{*H4?2ahTJftei+Pq!w`ZK zFAEmT!(-|;hVh)JHt>M*{Q2{^|IUNaPxi6Vf9W@5=-@Ayti*p3u1vHWN?zp(&F{o) z4X`kbJ2?!*nLKHam{e>=#aS8&PwD`GH+051md44RsZ^ElhF1;C8fw?71tp-KxM7~L zrAG^uG2FRhC+Ue;!jK^Jc<@geJ9IE)qmk+li%#YFFnBCovIzgU$uedB!ryg^8=LJr zYC?A4_^H{wC(p``oHj2zYSzN+n7K=`hb&0S9=>!%c6{pE?1a_n*;6)b&7Qt#NA|3( zyR+x*JdnL;@6qff`;TWYKXfuX<>;C0wBwoCD~_MbUU}kN_S#byve%!vl)W+YN_P6W ztJ#~*8@2huwd~CoZ#ruGl{?wHZ`{k?bNxOp?`Q8q?Y?OiuIF`oZe(Zgyml{p3%~Bd z4Lr{E?2UNL4S4Kz_#UfIp3h#Lk%jM_nVoj*YBPilfEi}p<#bD!$1^B7d5iAk?55J(mCpo`kORmajP_K4fe?IW6g>ktlR`| z$Jdx?YpNfvSUB^xjW>VA$T^d3-sk7<1ArlU8$D}+0`kE1VZg!gahrN9iyB})u99>C z+>8TNBVv&Li{W)B4XM0Jjk;31zPr?GivD&hnA19RlXl&)u){B0x(7!|K*T@^>mMr- z(ZeMyYJ`NxjF3JtBPDXc2np>MD*<5xB`|ET_yWwk^#U934kq3;RJ^(d0la%bX7`8W z?uTt&e$pDOyd}Wgy`!%*MW5WGZ4dE);jL-Qu1NOkER9-s7FYJp!T6iv(!Dj9c}vLd z0QN?3wKwE=8r|$Lz|}&Zyk;YJ#mH+QIHod2+!zc~5vIGcl{hz!6{pyIRsz3k1>!L1 zv2~|exYgxvmBsBKtv|N|dTv!QM?vK8UHKcRz^HyWo&6uHOM-aSs+FZ#^QO`b<5A2{ zpEhl(EP

U?MwZ(Zt5G2f=7bT|3neVI?gVR&LYK*dx-o+Yrj;7~voSffS_#8B2&S=kL6HiWymiMYEV zg~`2{IwZ7h-9`mQbVcu{M^A5TEAl}qlfRnx>=Pb=v5>wJg8+pgF#{zQv&h_x6o(px zXvHx|Vj4FJixl85NPuZ%0+OB*AXQC7g4Co*C|u6K8w%%0=RsPgygYl>Oa+#6kkvc~ zmvebNQl5AinSfc&1T1J6KNjguhzcDWKN?xi2z+2>^Uzositj&o;2?>K9w1SD5#@;I z$2idt#x#7LSS^(o} zc%7=C_sN44UpubhEX`fhTzg;8(N zIO#iLvJ4nIO@@x0A+ac44jVsHMva?>{BCSh8#Ef=9w#Avhe%-LV6gN4(iKd+8`yf+ zo?&3)p{h^b2H@SM1Ax4vQ3Uf=?O}cckT+M=3ud?;(h8v7qFpyNmPVI*GxX7$w&?~Z zdv|G#-n$0?z6pEfkl0?Zg#NO?*;bXt@@r+bZ}TKR0QU>iZHjiHCBK7u}JBgF=K`- zfhmj(TZ2zdZ`_ceRV*t(g}rAQ+yGcKpHar9+Z-)GjB`EO4WNvG>>YvL_D^DF8UX(@ zKHo3D{4xU1KLWrW0ia)~L7q&WYQup82Lv0`l%rmo?zF33v-n(>c)d~)Qe(V!GzpSv z+e#e(jP`{-4DjH;+|*^hmgx7=Nlvih7B7xfao;x6%Stki6z!u5V5rP8ujS@0t}WU~GcfM9 zV9VZM&q3j_5;dZRj{Ki)n7MmS#u;B7kr z*df!m>*@z1oIgGWuy;n`vTX-nY1^=nD=npRgaU0NgOOso#b25g6IE)qV8u zTmSwwnDfA;V_$iQr<~ph4)xA3W<|q$!EvZ1ix(?qNPh;Iq_sD0O>%Q2yK&qMvNZe9 zWU|a2M_>FrM#y}?dVPNT+uzpwU-8ENUwje(_|m`l#V>q5{q$2GxafV*hxfrjVq< z*X^bp>+EZ+{Z;$N`b{7|>E8e%!&z*Ai*;_8?E@$qj^K{mJyiAmlvCLNvs_MSHELuX zgEE}V4j?rdtY)%SUxUuow$3zLe+KLKvAeIWAm|Jb^LtIK;ONXdVZScdbJni~e=gHd z`O=}xVZzk+Vf%-vXSv%nR#xxq=h3n{-_)I%pE#4P=CV~l2pIGyXyp_FdqYr3VMyRb z!QzTR#VN+9Q-E|)fOT=OOs?cCg@aZp7^ccqfs-74;p#AYu~%HXaZ|XwTLBC^fcb)L z_Xv^>0NI{lh~pd>FZ}_=aRBD=iAgeXUa~Am+9)Y2cgUjU8)e?|4KjQ2I+?R*t<0Uj zT4v2jlPS}&pk=~5Y{!}cCO$@bM-2mr55_`_fsoS&N*DirSZx^zMjj!Ze0xhrREHj+ zs1Wf4n78W^WVqNnkevhEJHjC6jqAGk!YJ2EI(P?2`%Xas`9Sdi$hUxrt|b87t!+1$ z;=s;5I%9gpQyRmy-iYIEOE1Zg+Gubidj+UuKYskU9Smr7-b{4J{ZrwvQXTDs zcKEs50odE27vBy+H|=nc`7Ip#2%0g#o`B1?116W$p@*hG2I0_GzyKWu`dmr_>6`{b zO8NwU78!p|;XuItIc0ZT&#&hJ3QEE@JeQw@`tkqu@8Vwe-Qn@$M*X^U*^-by-%^fS z#j4Rq*I@f9maW$|+L^dM4Cw2fF?H*8dEIVJcCtPvXAV|py)|cs8hd_oUZxwXnMOHl zmD$f=6&k4YeblV52~t)Nvp$CXcDpoeJ#6FxJo7-HzlY=Tov>TAgW4=-Y}uI-kr&%` z{A{+L%lbU?YM)pi)85;B2a7)R--rEsSb;m|F^o5N>+5P~W%|wC-XG^1ykggA0Zg3B(_fVjvORWgGR_;v{J@So-XqiC&`KpTP1z>L0P}^fNa`*SkiYMk&T#z z-*fPc>^X2+R;}A9sVlbv%;8g*u|yIkFP4#`=Su9TSu$|MG>IOZfa#C%aPg0kK7EH{ zZ}mW|vWxEs zuUEv{(lQk)Vb6FuDGdKgA(-|GDT5*a+yqtY0n7TorBpw*T674Hg)mtE9yFLc``b{h zG;`0o4t=qLI8`WuxGNM9#_kTo*dkNLm|0H1HUJ#J!5%K;T&t9Bjbhck@pV|BLLkv> z9E|mk0F}l7mBui*y%B8uzY02NEw}<;8^e6p__NPGYYf@GF%*l&VD*g=mJ^2&WWl_= z;I&iR1bG<3VE|6`8^ZBAWR<9%IE!XC_VFq6^Wel;eI5*WJ--g$V>iZ`%l%iM^Bei~ z2ag>{4Coyo9~Hq#`U3(IfgFJTGsxtoRQ|ev{$maR&X~C!-1Ya(`TjU;;MDHy`B;^N zyi^7I_4coMm8@rPLD&K5RbOvs8+H)2zIj<6%jy--*S~J-!1`utKUmn`Ec1H)ulioj zzRv!A^LySe-=-NkFAa01Q|aD3%-Gu^hJ%^%xzXcRt1AK8oM|>Baj3)TVjSyl72(cD<3dcBKwX410NxN;lsoq6&yYsH4Fx~p*T1U5FdcK zPhem1_QiHBF!8Rv!lVoOHzUdSd!vWqb9N@I9>)* z8(KX@@%j}4XwtmMp0wdN$Zd4hzkg#y&^U~#{}=1WW}04pPIbEqL$wn6j(k0H6vWUkwMQ zY5@9bI1p5W0#FS=Uk$9k8ccB2Fey;-zv-#|^dEND{+)?E0=mhEh4==DQ5w}d2be>8 z&r3eHGH!mXS3BAP{dEokuaewfzWvAb^-AfT-c(*9YJY5clV0 z#BlKsjT67#anh^La0%!)5=J*%*L#@wgbqOsGRD&U0oVZT?*0JmpeX4U9*z4Bl%U9H z@ek@Ny#o4y$;SZHW29RU4gmqk#s*{W>#@Q_5exV63G`~XKKO9MLpKKb{Szn{i>cylN) z?~!cKWXO$g%nC4y2Q^CkG_H2-+EuOgT)1GN0&qP>l^1}&WZ;6NPPvx>EDU~OcnRfW z$jh=Wao~Ee@shv);~xrup*#JIW1ogat z&~Z99WqkYRuLHXOH}|nVzq}Ly>n5fDo9~g=*Esu`^J)>~*E)C=>orPpV(Y}|9J5QNcRXGD!yUEq-P`wK<*P6hf5SL zeZm0fk)tFKfZsc2tb`AQi#;Y@!f+YE(KOsYB7BI1^d2mMAp?!ea9s8oETK^_$)R80 zGay>LdxEk1fVqRAck>O$ic0j*y?RP3I@lQygWh=UCat7aeK$zyFtve&mxuG7Ye)+r z58{(TSTJJ(xU;b```^LKZ7f4+;q|<4?gOoHy;YsD%JjAupx77Z*U_;}_crBTNW}scDVvuL zmGPm~B%ycpuf_&fUh-z6K*3M<#=HVwfBV(!If=9WUIzapbnt$J)3+6j>_F}e*zJJi ztVe4%URkBIyxth{l5L%Voc%fQbNyWNIzZ?p8u@{;^>KbI;46vI=0*51k70e@&RD;l z`Rg~%yzZNyl3;v|$@H}mPk}r^A7uq-6Q~`4Z5}GLQAvR>lh|1F9N_WZe&=Uug2G_l zxfKO{C{ch7lOW%?KLE?-n>YKRpTL;*5q3)#$7oz>$iCbHM!>F#oPkDkjJNA5t-A$? zcUZIp1MvC|pCY4XES0&b8zgDNcGduHfBBpI`49glzx~zkmlTV*~DtB+(m2+pZj#`})~n1hi= zjTC>3r1^t^lYIvQ;DZ44VFSlV&;Us8gU3mq;nSpF+;kZ-VulQlpN_)gkHVN*?0D>* z9t|~Nq=ZMsNod4i^zVmA@9@DA&^tza!N|M&_m?gJbFa>!kktdltGzEW0Jo!QeDR5#`$F_+5?@oxSS(R3rP}^Ghm``km*1x%Gcq1?rf8 zBL;XIhBoWiAP;z)(5Q^@NG7)V`S~JzXf&MZi_|Jo?gA%}=L&l<=f$mi#`&>IK;vAw z3E~G29zd@a>23G#$~RwsDW?yl%F*=UvT0s-nbxnij18*9`VO`7jd{Z__(9(MS77R_ zDQWd_;^oK=*$)4SG#I^#ncM%Nl}u`l)3gL_fhifR zDgv&`sdrwlV)^#(lb0l)ACTwu7U>{~_;Iw4V_q2Xf^)ni#_l+eT^{moCG5Md z#z2+2jn%46w^r??WykK~1p}9NSby=4L0}4kQzC~=k-<|I%6N=)&0T>trdyB7=3|%S z(3OXB>dp%}aqTm?l>M!I{{8ReSHJ&P`TZaNUHp$X6{Ha_x zcSSBEZuTPLW{>PUCfhdcL;}?o%(`wsq~!{kKWC}To`xk7ljg`o%zcj^GgHQ)Mgdrd zkD3bbo{Ty01Tb)z)&|E*KY(pN7}@&7;PYsJaufg^ARZ2u9f{Aw28@=_0r3(VGg?9h ziiH*%W9#Ltw0V`jWf9!)i)7>kERKQ8eayspGAdz?42T<# z!ves(|1ikwgT)U3?jIPfr1$pdk$a-rc!yw~+z%;kU69;{7*+syt=jc5R#ppn=~bl+ z9O)&Ql@22ybISQUQ4Cy7aOAW|?0=Ve{SDaigWw#fB2qK zT{!kvwOSP%L|Uo^A(N5Mz~CoFm2&+iw{vMZ-9B2zS!Gq0J>xn@ouMx$pvc@n3+3pZ zH8Q}vlnm)nN=5;^7maBr2iFgk?Th_ndQ@Ev=)VG>r@#3qQ1BDJF|WYkqlePGyLVN6 zDw>DbBg+ra^JA_2y4*9rIXy3X(1YV7&hQa43)?vawZ zblo~r1T^c_2L|h#obE|mLEH}Ld8z{@d(Tgrx4(hDq-2_9l&lGZmTwY4Zb`j7+!kM<2qqj2UcW1c-+{hVl@Qu{)dd>;PrXUl)SZ zT?FG?#h3s_umC_aOr$jW*5#{U0Sb0nSFMR_o8U2@*XNZuH?30m^Wv>6x)Nc?OWIv#+X zfO+#NOJvm4WvYfxfkAE(zohn0OB8_bM}gThc@N+N%O<7M5M)`k$INfRewF~}0k zG_RF(!K3wSxowM zEG`4ROG~Uz8Ho?BEDPh?$bmHjWp8S@%!qacpt}&%e}~%n#=O}V{2*`sEAZ^o=Lw@m zkN7P|cDU7u#uxr0+T~(r^1Hr|b+pX>PppA9zl~MKp6DE-jg`&wO~C%SJvc(eg{rhJ z!`ZCgI9|HWoIO_VTyAetMw^^VvIEDG20j)?oN!;qNRC?ak#k5<%!bA-n-ZZE2m5t8 z+naBsmU(ow^h4)_o53484b8|KH?}`fK~c}u{24w_$yZ=le106mDvS^m%us*Cg(P@` zWKpgz%#Br;4K7>^+pECLN-&HDZsjs%D*$u>ya=!47YYfyhIL}EdApFP-Etx=E{JPGi4AyA2}JUdv=mcS+q)~E!iNG z7j2NKi_>Lx3SwxNZj?o9_d!BGC<{`yV^({M%v`Wprp-^6S&KHy{H0rD&cgLFeICAc z&I*~1nl>X@5+*K`vE%1r-}5XP4X}-o|`6<=cLL+gvgAWx>!a*!XJgl8aZyh8eNNt zh5H?2Yki}~OIY90kkn(9oZhJ$#?Bbmil7%aEMlpTLsH#3$V;zYTg`-*#-XYhLtW4Z zH#U`#g&Y49`tOXn2>9_vzC_q{?<{(oc93uAk^kEV>Vn*9WdmDV}g~d zRFdXcSL=&i+XDy2U@yaTl>yGI?hWefHKcS~mtO9lh+nfp64;`!gtjRv5njb5s#6IW)UAvR>s3z1gc8tO$^KQ*a%9~=nHAGO z1Nxr;=!f2X6e#!!->6q$;o`(Ct_|ubaQgV;LJFX)U~LC;?QGXBcPpUhmTPlTy{x;U zt!&ypvuf?9={eI}UuywS>x?l$*IER5y+7IUF%K+cn2aXHn~I}!+Lr=ABk_yHKoK?S z1P01W#YmY7MzB;do<-DscuCf(qAfYw%=?*-#U5Z`ehqJDPnh4=yq%ZK@K)@}@qEnr zXgpToA`CS_>KK5yB-6L(Iz}l53?^I#V^?L6MphQ_tL3X!LdXfmi>lX<3K%tV0SH&A zQ%|bac2z4htGl`>5U$X&ixAS47UHJi7V2FLtb zhe<$WJe=I4#W!lK1P@4%$iY*j4;X6{`osf9&HzYGm4WCN4+VQ2Mn(!?91c@i+;{-n zxCJs0qg~M>0dOPcNdI9oAZt&M2$;;mVKNH`;Pn~Ao^=A;$jD-yvfpj(00LtWG-2I2*U_qdcgM>eFvc#fBjGiX(Wa<;<$nf#AWEj}` zQ1r0l#?HobN`$EnX>A1S>5FCD^rbRsZmLXPyhbK2S}l_nuEqfb2MVzN**JjAS&Z?t z`D%b@tCnVU<@7xHjkepy#F`}35O{z z2(EU&{^H#uQaYd)-m*=1Y2w}<<8|0Aju0EUBEi4vtTmWMzW9l6Ue9UK6a z8{J9TUyd5Z{&o%%&rep@0It8*-saNkj|Ok!P>tR=TP;v_iXbz+6vhRsVYa_Ti{=u5 zwVT|huxP;oC6BK~xCmJ_6WdhurA91=mR8U z%Lti0sF92bR1Ez;P^aIhH~WGg=FNWvPM^ux(!;l#dIMmOlP75{!#QK-RzSCor)jy( zSwM=jrxBNcuhdpF{R9eW}Y^|oDrSs(v*d{^nwhQGBQg6J{XGz zWxmM}Y>O}v48|Y=H;X+y%9JG$GQvw%DTHX0WXvj)!ce?U-;X)f>cxa zY;$}aM}Jfts9D9JhLnKBSe%c6$1H>7vC?V}G`JiaFwjZrFbfkalm=39Q*0VJKkD z2o7n<1hdXP#S>ud*#&W*NDFI)kdanh0+1XQES;Dz1`zk`?uS|DAe9N;Js6`>a8&mQ zrh^)zP(D%8)dx#I0O(zO!^8(;RK5Hl1A~co=4LOXnDq!^uJ{n?8Zt<_gbtQ2VMC-x zZvf*!9KQfQMzDHfJj*X4P6GRkkYHSf_ZcO9(R1!M0KI1bawKH!NX%u2MU9i72rL|l zgpmvkKLlSFHUMsL1gv<&$=xd~R(kgvg#@)x5&)waAFnseX5ny)NA%;ul2MSo6Oexn za0WofCd@><>MR)nP>!SY4WK4y4~L;`6mAG#Y zDpDN>N>HGHVm6HJQj8muO~F^q89UI=cjCKfzn2cxOQ&I^Wx#@%@sSPRZOk5}sn|cq91) zQIjfelCrtkn`3`YZ&lLQ@eNP|deP!w$7Z~z%0g!*IsjM!HUPDF83S|`xD$BsMp_2I z%lJ=%Gub&W3Fa&UySko*`xeE0i(w3?7&6uk@aN;R0N4O+bsg9@4+{)Bp-D`Aj)O!= zOdga)AKC@^*fqeiT>;wlF^c8d#6zv9Y=DT-hG5$D0pyLbB*U#mM{&pYE4LP2(ipp| z8=@E%!dz|-&#sWbSzzGpIwB3MBNER#V9^Hd)6x_DSA0Dl!=pt96jg4$`a&5sJy8;1b|YxVk4LY3J zbPceyr6w}bVPNAJ8U8kS08|PQ6do!}{F_$o7fZ{>eu&P`2w@GIKI=0D5tPKc#ZAbO3p2EL5RMiT!Faa)bTzd+=~TkmvURpffAn zyq`;@DscSPlIj@Ms)o$)YS@Qe3jrW?8#I+V4VyrM1;{sml#WeTb-~&j1CX0wvNSV2oP~`siI`t3K(H((4?u9$C}G>kntH#+25-T~?8cvQ#aq&kNfIK#P zweJvsu_=sBbs@-O2X}YGkutIr0N=^4ANF+jLwsr!*!%$O?T(Soxa^L(YJbdV2SK(E zM&v0o&?95P)`!p`4k;R8EWwb{Bj6T~j)Pfk)MUuxVA$wEj~G82GCkySEICOah)+wD zf#W92s426tax_L_hL4v)aTp;B>@EHJ4UkBbe^9tI!2zj@x36^S+Fjg`7Uzvv*NBMz zG8MqT987%0mP4`%AiiPG8QHM&q-@-EN;d8|DXTUdkQM0dFHYVnvlp$CNs!XVOj(NO zkO*_%Ea`(DeQ19e*`P}JLfPm7`MeGHj>Ev#2wTeP;dfT88uo<4I7qj@T4=%$7XTx{ zQ7cT^7h-KaSr5p00d!uV?#uvcy-u@m8ZH^=qZ8V+Bc0EK`2e5bf2#!k7hGH_;%~1m zTy{ip zb5?=)!IP&IfX{^_zkGeVq;A?O$@n~Z6Sjcu+aXath<%03ZU=OSArAfX81~QoD!}3H zBI6^f!sXsZ_N^Ww$2X4vLvIK$SAfpCgZc#Z)|-t01wY*z^$Og*cl)qkNG|~42iO+& zi88X}C%apvc54saD)rgZr1Tq)olQ92oGf6Tmx+$Do|5(m5T= zxDCBL<*G%0n#(r$=BX~puFZ0QGk})N$RU-3U6%mh6VP>8rFY8a{G8z?rMVqV0Wx-d zSEvAhtbo81T(Z{X6iO{RnNUlsj|`#2Zfd$I%2Dq8;n>zktEg(%R1Ui zXGrs%x%>lt^>&ctIabCU+e{v7;pro-0a(V4ZEW(wn$EVJ{jm%L3qg=n*1jhfi6FTQ zE^R-!wf*~G6b<{k1F>|3Kpg|KgReN&8R#~s}Vm{hS~CU#y5W~pgS8avmOwv8R;}-sslEP#!Rlp z<+@?6&~4kMl>`R(OU!@)G8XHA=ggj?SU3S(vv9p`R7>eOj&y9(B9PPIX3mFmX~*8Z zkkU_{R0}?K9Xuq50p7@KELpoj0r+ghwI*%YWU}+kk^(?qyJxfX z?NL_&x^L5u9sTnFk0Nlm7c&fT=${YlPC%~+hr5eRh^#J)0qA>H#9$UZPUa16DC2Rx z3F!B5Sr+x~8})`?@WZ^>uK+S~1LG%-`m8wQU?pK&-0rUmn6akBIqTi!ocLefvXzUG zn{Q$cV~q*kYQ%-EZj+5W)?1o=alKthv2-rsu(;Wkb6+pwD2i2%1a~t7TKCkoj7h-f zn=2*xq8!IUkDX>U!x#q^O~<%tpi}IgQai3A(3T~jlZ69339Q8l#%3?RG-Z4xwWAlW zR-u9sBP69#<*F)AymVRPwhCZ6rSUlI=kxw$;6g8ntzJbKtU|z7GCh0s#iezdHqy0w zHzm~UaNLJgo(gJM>!wgw@U3g z;@$$_->4~qM!?81`%9IeG@hS3`ti+Md15xa4uA;8I$SmelWhZl^1`}JPlUO2=oySf zAiV+jFv%f_tTh;U+fE^1?7`yU4f&mmKrout(GRk_Utj4G6eGQmau$r;-P{}&92F}; z{f0 zwI*`d>*HY4x{W7-R-$1>OOvG4U~Fr)Nc^PfcwX2V)}jS|{wh!?JY*=Cy?BD7ewbOoD8W9z31! zk=TG1i09lB`^!7yXJryw(`Lv+hjd=6c0;`WwWT5y7OFDE@%!Wfl51BLc+r)%^4%NGw+v7tL8+8idNNo;HiSq)P_s?QA*%%uOj{q>({TRR*&}S z6Cv@VM#;Q6b0m2=7STW&r-ZJ1;a2u-|Cj)-K%6T}(L-la8$p~4IJm5XAbx~>@pI=D zST9EF}00lqY8}|zAJhU^b zp?gEjh5uXumk|>3ZmyVDXEMCq80QSsa~ao7@#*;27Aa|uqu;4 z&#&brL0%sWYSyfY9nfIaVA9o02F#y_hX=~0lu#Wl0lbk@-mk{hlQ6uw0MrTGpdZ_djrtB`5Wsyy|DbF9o+A&dIU>bM2>bv zue=Ac#Cu>-h%X{Z{rWJE9L6u0^1ORMj_=eRBW@j~wO40=a~ttOpT9XA_wHyLczStD zn>JqJTHjUNpc1t8>Vy@daWW%uxlEb86o$89QX4-jU%zTKt4n?Cx%T$)!yfTvvTE~g znVPszLi+X*H!NGJTC)~dvOCOXZSZs8z|*Q7obtobN1r3Xcs?OvQ84BWfY~nqrn+bu z7&{6o!7%9?8!s^<;habQdIT1ygy1mJ3t8%nQuXYF34pd;)FG!1r1Po>#i5- zDa9~0rlub7`{#He|E~0iqBfKnlD4s0)cBuy*?^W8NLzv0Zd!8&;#MYFI=Di*#Pj|`@^l9%dC5@$=aFJM)x|M?A#^J zxK(b|;?}LB0Pr0L56giQCuI>w)wXO0I2$rL!FvA6HL`Fu;&sjI2=Zj=GnOO975Cxi zOEKn_v|*jhUN%{JcdB9nx-qV1?VtDQP(q@+mWCmY{qssPI<$&R=u<=HkMxkui^Cwf zkCH{ho5}=?vY8D15iT2}K6vBa@C$yRH~SU1dgp4VPCYt(@&3o}8{3p@Zuk7a+!?4_ zd*$}|bS)*SHy1JkvoD?-%#FRq+PSXB&#af$+cdyi89eW+BzDt<&i*;S7ma9qvn6|H zpPj%+cCB2)1Y!WcF_-=k02Xp}-MXqj{vN(oo8dTy#_vf$FTvhAK)y1;5}-*Y=Gac9 z#@32}n&8`Q;^WzjEw@H*6}68oA?OQ4=9AWidC7m6sT0OmDak$fi2E?L=?uVbX22_D2V6u%BgRPB2ML8T` zYT)Ok8c@HH8~XJ<&}VLnLq<8NgTsU;KJNpdO?8q)fEHMj*$^AjS_9CV zz#Q0GMxu{ShCY1UBs0Q9}&JRVf%UJ1*=hhq1sj=hGb4Lw@d_M@Y--z$+Sq#R zgG2f8@$r!;vtr)7P08%|T=mM$+ol81d0+O? z7vuJ2Ygfs{>4PPteML2{#?pXp^v{dK5LXiY^Rg1#3;pxpDl#s-noN$WB@0G2m(7bp z;BrSQU3?3f7*%iycjJ<4Gfjr9*e#ha`qSuzlbLg8 zGQnHR@oKRLq-dk3X*l7H)U=NP#zoP4hH(i1{0V?skFt?z^M19Fa7A{`uOqV|;1bMh z!hBW&MkgAa$k-YIs48QhbRo6);$y}9tKcwD1#Fm?HC*dR}sp zl`(s+9J8ZpK*gd60GIcz0JdEeZu&Bi)oY_y%dguwe0Dx$4D~m%!MX++3 zk4^L13Vs{TP1=z+5oONJhXy@-ps>8s@1NgRELgW^}b)!{dIjTq!zmx$7ZruL)HyN@^Wh^V&6Dt0EHoJy2kCqi%yW}4_dZENV5|#=(Jl_7S_JCJH3xmeNiWMN8_Kv(|@1avA>W~hrJQO!*GGnlx2QI50R`$)q0n`L^GH+f-VCU!B z(M}N8fX>?p=u1|mVJS|K1hp%dtA9?po&9qHdcRJk&_6fi_R*nL6+55OzZMv}yKGt* zEa&#mlB98MWfFkiWa!Uv*^S1yH}Va?;D>s%UxD+NvhKLIa+i0pADs-8;SleFu1q-eSHcLRKM6PDj$>8yGlA*KosGE+YB!CjA$*#G`f}=x}#w!4nxK{ELB(%9y zt_T$X3=Ic}@_77WNM$PwAZFkTLGvSw0v5udpj^3%ScE|)1Qyz$0T_BYsagww4qzi- z)@#@phl9GxdCy=Py6TI9(U*qltrSPvU|cJOgGgC2ZGdlSTvx0}QFU7xd|nAo_!^i^ zuM6huf`da@^y#bA02sqbT^&GKzEVX1H?9M~E2gRX;|(yL=B@y`JZ>w2K75z%KIlhB zVoWSVyt*+H9Fj7gr#k@F4aTwBcr3o2<+(HirZV4T0V+YmrXJE9kJY%P2S)BNir2CglF@>2 zNPwK*)dwp;!|{07m^OKV496^YY{Gnm&LEfu3_Av)Fa+$_F;is(65IwOtR@2e?ckW< zM&@~7Kh^7R1@m5WY#Vcj%iOKGmo&t-vAWncR)bmRcr7a75LA}&wRoL5K3EK)K2&#% zc8NJErUF~^{IxOjt@a<7@xk_ktOjn!^)^7a-v4E@TFxdttD#i+PE7YX=gzGLx}5(h zZcrqMvwZ{w3dwAI&Fj>uEgj$w=-)pI33_8?){L35WYJ>9t{LvK27sJvq|DC3&5U$o zybP?Iy>N`7(Us1C7pAmbzI;UnHmj1AK@k&7X-?M!wV&8d^-TTgQ33wmzuE8n z1wY*z`3gLK`lxn9|A=pX{*lo~H}<3(a-d;;vx0lxD^#ty=XUAcK3i^$hP2L+EA~tl z&1h3o2G5J3+pp(yrz5v0**O4`PH&pf$OsA6l*Wq!c=^Vy-oP0i1CU}5n?;}}uyUO2 zL*$xQ23w}#>?2%X8O)|KK#0tl483f{vN$ZzP*y@o=492JKd%Bt%k;M5ydMCaY@Oe; zL4!up&eKat?gVoe^k2Dyn)BxD3s(a$lTnweR0$(;oOLg*#!g-v)4_q zFHy2An0F1SgILz;7;URn2NE`JD+hUY%&ebuU9!3~X>_U0|U&>Qzq zPIqqKDv6$X>sDSe1oC+7kRcKqH&i-z?TF%y^FwFyC;<>|p5u0QZo-BhmAQoQ>4B2$w#$04()qk#vakA9_`?0$J{=X@~Y!C=612N7!SkGSQ1YDlK34J2WS@o<1WO% zHPbL@-yxt6qud<#b8{ECJw(Y4-1+sswPbDwX}eopfBv3Yl4JNy9C`d^9)sEyZss!R zRug}YA~=Zf(8_j@S9>oB$2|CO?0cUwWr{3Xv`9(fdYnwJ9n~y6mxN9kU5}NSK`&(C zj9J~WV~5%we*XMLAl5yjn+{SMBhc7;p#{l#PpMEZnUVJW(Q3P=f=+9of zkn4AEgNdUD4nQW56VS=R3ETv2Ew?WMpcCLVODCw4kB`gACX{&^W0+|%fvj|;D^?gK0CHDI)8#P^ z#+ho>yg<=xU=s&P2F+VAOS7Ic`=~TmbrfyqY!ZqSss>5_~DJ^GYhf#syi~ zW#LY)iyk%Q|H=U1N;rsAf%}?FzJW(8@xttNJsb{7;ZQ?%N>*PPhYLU7APL7z@z6m7 z#iysY@)r~?R#HWdRzcP~m5wTS&MjNFmtKK=RL{9v&_FC&=_fq{qYwlGBOHQbdIlgI z1|czlaDs<{#fQNd7Y0{*SiiwYgX1Xj7Dc!eLA& z6ow~)fkXsAuIpr(A7f?f`}iBzf9H0V?EqS}_{IQNXG}c5xo>;l+Ya8wrZZ!Acz*qF zmB~(pz%*U5Ma92){*0WipbF&yB_%jGScVN7CNri@m*q>BDF#l!CU{%-hFfLyT)V^3 z3#W{(rF61z#;opxBb_oj9qG@|2mkK7@8ssw7jhLVXRkkdA(tLLm#q6wNoqn{nH=Ge+`j^t4@DJ!^WXUke!@5M6?pI{`-N-cdh+)B@2EaB-$bm8 zJ1nNA=4W66D3YmR$!z{;Djx`h;XCIusZKmm!E`!l7%zN{&@G-uo zI#_#om-6yqp^qS6BWE2w^kT(J8hPyaIx>A8AgTaR3Bc^jm&5a^1|wKifVB$_0F~jA zt_zml1k9PPa~>XwVSJ8qcrAQh7w&ae_m<+?v^nH%7j+v|0UG?u0ldgIsYH~46TUFo z3{)C8uGOfiyE5VNIq-XPZoL@Ph_X;A>R~3EpY!=Jm9CMy2i)~FAw@Tqu3frH2QSW^ zcZT82UCM*uSE_-Z6OUB^;86#y15fXs(jy>Jx?{e)eYY?p;~o9z_84XB*afraU9p?H zO9X;jLZusK(YyERivs|FKCnM#$YU_37LAd#2Sfz_!^+H}Mo zZ%E?};UupGz=o1h1qUIvHRwN30YDrN#LvYgG%71!Ef}Ji(pUzf%xRpUuq^+{0Zikd z%J7tT-(@-JeVhB=^8)!Cus7s!XA-&{ykC~#`5d^q)?nd!e9ZAbfuBdO7v&{?KDLo~ zplgWL$DKNLlF-ml1>n=CO~d-vrH(N&)dvTN=hgq#*Q-8wa*8A+B`FXm3#XY)v+xT@ zXQP?ztFOM2doR9_bB{iitj90p;uEZ^eey!CJ^f5>KKo2=qwYL^A$M5-_&ZNOmD^9B z%Z7&((%C^v`3ul|%pB1^x4CklSm^v;lPi==A{T9+Hk8 z`q|x6WaUIpnTp=J*+c&Zm*Y?+-^e%nf*KzfRmhE6 zcFzycorTO;K|S{h&)l2J)GVwey7gl&n=pIWYUzmy?2f#4vsbQxU4yyxcC{FV@vdOt zD#DeKu4ZhjBj(l2WoHyD=g&FoO`zocR49vSrsHF%h*(PJ0P-^Ek#pos8SXfGhWpWM zR~gK@G(eBr%_z6i4P61iS{}emsh%!!I_C*a)gi4D(3Qyy?6_9VdeRu7E;Z59>sbfMcA`kB6U1oT0{J^SL#I+EAwf5pg-LKbJ)m>cW>Vvv9mp-8OptFPpnM!#=JYg88g~$h?i~7 zkDFp74L$4zh?lJo^H~kF1uEb`Q5q^o85a~@$I^KI#knaChYczmYSi!}gH^u|R&57q zqpz%YvJ&bja{ zTec`OTP7k_Ia2ll()jbQzLxWk0pMWanE>OW!`egw6bpZOU=byW3~_CWOSlS@DUJE_@)8$-1h_ED?R8{EOg))B z*cE`@LN?3~l8kK$vU*BKnclCK2K4U$<}*=c-u!p|f}ik>eFaXO$@tADr43UY9p>yE z5}1F69=cx6k{7UBbKR{UYdO&wOINwj=8k0L$ffLVZXnZu^VA9EDme|sexy-IUIU}0Tuw(jWoj~Q0=f&6 z;Bb9eZa{<7UJk%c<5&e;R-hq|;VmeRl#%rl+?5#(;IEz!SiKAS)HShyr4GYfFh5-l zo6{K6S`QL=eHhsqL3VF~jcE*nX#hi41N5{h&$~i~ZvZ*IDFDA2`r-}2{q8yHc8vEEZKr)T&BP6CVTJ(Kx3PZiiQs8U=v{U05{x&%pW~>Co z1~KItw-p`b`Z~+Uh8)fr@V8!K*>a}a~ z1a9>2e(?+WhD7;BK&V1JGX>fDSN!2r$=x{`?CX;J%a> zsLw2Q_rXIYmy?|n$hE_rfKDK{0y;t63g{Z>3F4II3Fy540xKB%ldXD-J48Z_0MgQuN+6xx$ecl)aiJ)X0&t8yaXie zk}T%BgBcfxq+SX@toq`Z>sAK&aJjS~c*lU1gSAij~3Z(EVV6oKz^tI5>ua7MEh5+~m81t%IzY%)&O%<@a zHUaBx+Cs&@x?%jv9ecBzx_e0@jAJ!|QOpg1&qXdRT6aNsOIOSucR+@D3w$r6n}KVmEp<^zB{HZ!cF7K+O;u=GNn|MAbk| z0Kj|j(MS3a#t}pSwPM$FiGyLQ{C=Z%t@_tcfml?7-iB-30A+&hTL5Y<3E_1H=;{^_ zZ#U#}9ysAPSGVy#mbq>Rz*_+w_rv#ajE`BsKNoX%!n&=83TImcHN)1k=qmf%3@_qg z)%tfzRf&I374dgb8=*Jt+9C8NB0@$XiH-94l0{3Dd2QqR4GO@m3|xb@70`1_>np&( z(-e5qjjnfwGb5dDbS^o$d;h+C@#RfRa=Xz#@7=bzGQ_ceKGfF*^XFA%d}J+|I>1$C4QU{AV;d;5PHK}}F0-5(!!g+m*EO2%UdJ1x3F`Vjn)O%@2Wqt{rEJKU zYPOw>pJ{H0h2{J>6WP?b8y)g`FFMV2=+hc`?{KRV{FUJj{ac2-aIs1me5@Sl0Ddxk zu3BXjEMs4}Wlc%-JP5F#PwAg>Ilq=YcH@Admd0>>Dpdf;?972Lk77@}6lUakSWp|^ zz}^U=m0$qlT1^`4RE#VY0m|tZfvXG^pb87pePuBI$~EdkvTXp??`jzD&?9fy01>fp zyEnp$PFEQ5YJu_B#KC|IU221o*TI2;aj^vM%1{&-d{YsIJ39I4B~YM^*YZOI5m5?P z6ACK(8(n{QU$4t?1H9Eo4}`l z8StonYB%`wX;WqS@?|PbZR3WG3dAX+ufp2Um*P}y<75U4H%G}}fLpn8rL0}M7UN`_ z)RGgr(V5J41vBCI9zK%KzWPRv+4iua`+W6ZC#g4c7C3~t-zde z`=@fo0_eQ$GVW&p`sZ?=3|&d?UqEvIQZz%ig8DN!;4k00t$N@DV@mF1=mc;T9%IJ2 za+HnII&agaI29s;>vim_?yHmSFG*Ucf@E^~=KypB%7igc#_XTR_HvQN8)^)g>tk!s0w&%G$Z=(#&g zLwG)F2ef&e&ZD*-2K0R$v+ibyO-`TESjDQDJe~ATV`c&JAG43I&2}){X|o;=1PYLO z9Sgv$H@PX9pZn5zH~?64zMMrcq_oO8a+>$F`Hvs#LxR4KT}|NUG=r(bf$0liFpk=# zuKN7w{qqpPg)%hr(Rpu<;L$i&l2UpJvT1CVW2-^6A2_HGs(3eO`6@%k$c%%&rarxn*`|CN=xl+l`x6RmmQPWc|Cz1>Wjl$jJye z&T;5t%Z6%9Wq1~pajjzqEQSe^n3x!ekB^sWQ>My-#QDmIM&KoQv$*e@U`$uKHA>aN z!Z}7}mSW!QiPOCf7SBF9V^x`re&WOlIS&SY6??+7A3avg_}gFpO74CBm7IU{OtKyt zb>iM5Iehzp9JrA!d*MjmeFd&`e0=oIL&>=JSkCZ%3eXLSonW39px+^&>oK)_0R16k z{WD06BUlrlbxNEDX9Btv==B`Ba=7C*0{U#^xO22kCB)JFj-P$j+)3i+ZUQ=tagIP4 z%%Atu{d0faKd0Q@Q0BxoR)D@>L{nKg-CHgkS}1!``^fxZZW_@405Cs8E9ut5TS5`aL+~CAExiX_sKBsiPe(gHN zz6}QMBu3Slk&Q`hxUZ4MwoZk)(1m{J&>=NScJ=C2xeDfc|M3$gb3a2Gn^i_vA9KXa zEHZL}`#G@lGucn%6aYNq?qfN2#{l_*7&Rlflg015juEt*59Kg!JBG2eQxEWU0QU<3 zdp^z$I@&RomW|@vIVE?R;+|vnob%_b7v|-i2ibBU}eqmD3ov6rjF%MJlr92ZNmx(2a35qknD&%5>rUIr`^;mDRY~)M%LDhBT6S z!V=m3{$c(X6qiT*|--ao+)cks}D7^IMY zjyHY2q45pUp6Tw4rRQgyd)+r>yWHu_MXZ6wZcehksXH?=S$p~RzWz&x1ycpEO015} zR9YP{nZGr|`=vt)N2h4?GH02cJ!kuE*2i#W1~Yz69T7^GwlUAl>r{W5eQEW1?!K}e zXbrG6iY*nRjAbEKl_f93qy2Yk|JqmGZUZm&{W(DWQzXS%>+0>>vU%S=nFl~u?sQA!D;YPLIDuMkS+fE? z89hOsfX==;!JUA=AZd||9v-6Pc9veq!v48oh%@HT**{M}|9l$y=X0=CEiukb<_~w1 zMWfth)r_uk>BthogKfUd(XIZ2GI83&FehAv)AAHdvNv`uPd!Po7sNpXEJ5= z{KmxW83#I$#qKn>dNe+Ur-CgHdLL+9tX=~-_gHSzym@o+^76vgu^@?!jg^U5S~6?a zES0#HjJa)sH#d*1U5&9TTLQBF`#i?W&Lj2h94hmX zQAYvtd%@OsUA`wfF5Z>>SMSSVfO`h|@LBgC%XJ(EZsGoS@fg{dMSl!{XV07&?h4dl zn7eT8x~xD@3?+90GB3%<$+!vD1ay5pnY#{|(OcCB^mDKaoz8a!=rqqQo+HDeyS`+I z3u{M1TqzlV`SYQ@DmnV+(+1R6fIbhvO+a6aV3}2r+|TWwEBjXVmj!XnwB-ID0Q86P z{w}pGfL;LVZ!F@y;Xl~a+0#B4Jz=ymEitU)eVCpI=ysN_LD4F;JG+lFhrE>mIs^Y# z-EIX#XX=47fN=(7_Q!F2UmH`kKOZ}b{V^bE4dcn{_0s->{Cd6? zp6xubf8AfA`bEj`xHw5jNC5MmX~d-heAj?=8wKFTrA}U>Y`y}{>lLZi4P-eV6UbA| zaWMk7(f5XQ4(XlJIl+4$SS#6gR#uiuV!M3vwq)M8E!Pmnl8rEz8vsW#XjK4fmczsb zK)=GWUYGC3IRI`2^UF3s&my2BMCL5OoOK3Ca4dp*7Oua{o;ra1807iG*Y5$~@5n(U z!=1Q!Uo!7LR6#O#pFWePm}h?qU}v4Vcv&%X-8-jaoh(~}yiS7S^*TLH$?m2hjtOxr z0y-aqhk=>%rpSO$k6eK=+7Q>TQ)w(@DKEqPD@%N6b(zq&j!cVbpa6X?06mcm9j3UI z)4R#Z?UUuesu)=`qJ;+ZzXH%dAL&=IF5c?jGK+w&>kUVMf*m* zRRMD4yXp;*&f`~stbL@-%G~qozvp#7XW!5MJ*@Z13mkbp0mE63->xoL0iEM|c`;o5 zz4-Ok?`!|q8Sv|`dDZLry1=W!U$a_0W@tY+(|FV_h!28D2QWYW;w!oP;!8Q3{S?yo zBgowkAba1JU03ePo~tmfAy)Mm0F%=AMfS1(KLYw$8=zkW=-}6SY=87yjeOcmn9TT7AblH0Omc_J&Y;;QBV8iFoqb9hYM!!0PIq7hrTa9Z6AcGV1 zj}zpV_)%nZbOd0axYtUA3v#>HyJnk=#<>az?EwqY+HrI0I0c5 zjZB=(og-|@`3^uQb0?sy>+w1J?vtm+OYhEA3_x#QNCNeSwe|pX7~%%?tcZlTDl#Ul zmQ0GOFEa)=mN{VO^M*IYE_8QUJf?-L0H7a9kC$WVNZ=dmCF6qC9QqFc^#2&rqkI#* z&A*F!=M|t{AjiMKc=$&AXlvH5EwtNFfi}(#3RW<5Fjpro{kP5QoE=v3JHX`iJzsS&aK_l}k7YeLSnvP3 z9t6js!UE`dwHE9OhqK#Zg8{TLU^aIo&|>}=U^=7LN+a8hO; z&6N2kFG||^n=}}Q&nAeUH;L+PY$?-EXd3+t&d|qYr&CLQ(J9_69Fy|N>D-+<%{`wX4*>3>Q z@0fu82yFrO%?aqw(JyDu+*;S~+?E}1<*UtV0B!=hcCzzxJ-W8QG`?v-C*W&9Cqvg# zJP!bjgq<{LIAUMR<#M zms2|uBxPbJ4d?}6!MagojsR_8 za(?Q9(*uBIo$Zfd;Jj~M=0e_Pm%p`RT(fIt6R5SG1Z)MsX2D5rNaGxngZypI_}i2G zKEU4)!JM89V>A$>c3e7w8SZlBu{Eq(Wys^MNV;>A*4T~SsbeSU}_wH!QnP{pNQ z#5^@w_v6Qpu~F=PhGTuxsyIO<@G%30)X~3!23AZ`ynuP8rJq*yDtafN+-~t;@A6%mRR5$1-s<0T0_yCo7XbSkj)QN^kN4g8-@cc5K66m?;23%9=WnanPQC#f z(z{`{GJptyGb#Zr_o$OyF4jG4`}J0a=!}IslezO_$IbxW`aSXj>%6}1b)|l1-{W~P}DsAiYLt<2h<*yl_F&np+;rC=4v-ju!x+ycZ{uMS4Q+z>(ATDp372Gb6b!9xb4r#)IGPnsmNX3SK5?InvAOVYCCYP4$=f>&rL z)4i{6Wga6c_negY{byt>fO^oLQ_^|uKIyVRUfI7pwJ-pB-;SlRVXeHx`c;7;t|km| zbzz8WD6@yUfuXwt(3?pj0DV4W_vI5j<@nY~a%SH&NuAV1#s|5mJ~|lsKL&Iy7tp+R zAuebkOMl-6>aXgp7s&8$3>v;6Kgffp4{K&*o{}~l+Q~cby<>)$e5hu79n!2L&hzDd zt#z!+F%IS=*~=>P=GW7;1G$}T=5<(jRiD`Ub$Q9(uk+Zi0_MCJva_)*eP25$TUoRI zy8HrqtidVvupMV}^*Vvi*{rrC#2~1N^05zkaHxO(WVIjDRheKVOz%@d%kV0b0*(TTN-sfZG|{rW~%) z)J$WVb;g^wsl$M|p^S{1;Vg8R6Sz4dM%I1v=1sLO^wUp2RdV^T-6v$kzEcu^@T`nE za!z`HZR_fekGlh~Sp@QqYxYTpRePoV%Dw8c^Xh%lWBmb%0pKSby$E)GMzQmz$=jve z5zyH;Cy<{q0i7(JfKCbj8rZy@p=-(gnGMVd?1xUCRt7lD%n8l}X3f5NNf2l8 zK6-3T&!TG+9lu6{JOO|5gkk8N7d8PMhPc+nBqV)hSd)$W_QvQGk!}?bNkO{h5l~VP zkQzveNOuoV5TtuFlG5GXxgj7UM>mXSz=(Ih|9c$wv2Xjddsm#-8H))-&Vqdx#egs= z%yxa${k8lhoJ=rVuBMrn?gvh>faY-`)k4wx0oZW7P;SC=+--o5TZ+q_;WW1~p5yip zEmmmGy(>voZR5RU7uYPvS5feU>(1i#)Ds&fR9h)aBIS2b(;Jw6 z6~<(Dsa~!&(b3n#zq&=;V9u;lgOg5ub-@10yWgJygXO07?wsu@DuL0BHH&SECN95~ z%42p9sxyaYy*ZK%)XiZK@#X!dtG?H9b5q9$qzl9w1CJ@`#+x+$Mdti__hs>3mp*+R ztHJpbtji$g@O*rQ#-`~#8nsj%BlYQbUY_O7M7NOne;JW1)B;571EU+^36@*u^zq`J zS-gf-T8DcY?=%Ju>f_R^@lgMG^h+0AWLnF|zf>B&`K{DbH=0q?47Gx>G+HmbF8=V+ zro>Q5Nh3Qw5`zt?`U*#9?R#2v!PbQy30<2B9(DU_4r^5%LCTd2Y;Hc+lCMq{v&`Vg zqqW?%+Pd4?fh)-U$i0ZY@C8nmPF_WHW?XFfU;))9zjcmXZS!ef`c4d;_8h8{bW1K6 znh>>(VD(%aa1+Ck!mI!egkR4ug**vFhi5cd;0_nleG=dG1b2i4m$KB{0WY`c34Vdw zx+k)M6WPNen+^{jQ8Ib8cRGqLVuMpzpZ^Dm&CL5sD-Lg3&VS8fg1{tP3%jZvE3CXm z_S!P7#f6-xuSeWVnzH08du-J5j9+#HxV+(QD5Hl|JTraP_8xmBoDuB9(^GtCBfr^> zT_6yPYj%#ESAGpj^<^7eQhbLRPMBA8(FCY!#(o6ce2*O=4`un+{EZ2anP=C}mvbMa z9{f<91MXT3oGiYg3OvP{jvgUfeIGQgw(QgM?J*5Mg?=2|%g#!!DaqZ&QWhI~^w52@ z=>Jpi_|?R7gv^*VV2Gupepd4>w@%{U!1~~1=9Sl4n=RlAch^7@)ZoxujJ;Kj_uG*@ zj5tWs|7R6`>a1KtVCF@aMGXBokH@q@Vz~@c|A_?cg5S@-eA5KdUsgRokN?px6ylE$ zs*W@`8i;`HeS%FA#(OgE&exY-{nlh=V&aW+3Kec~o2~l%(%0|y>O_!5U7JVR2A;(i z9v)ufwffYc!ws7MoP$TSElpdTdEMH8>`SD0eGFtSb0hlvwOueni2fK-)D^A^b!l#q z>)=9r)pnMT+xk3@6uM60(ceHVwVrMaQ(fcy%`^2oi#nfkesgm;78}qi{G7O~`5|lS zG1&}L$65ZBgTzbOba&>stn?4*yahqbr`{BP2Tao@XvL)Oi)r(xqE$xd!+)(CPA- z#P zSeheMCU-Mvf~&5~C{+VJS!~W(92lt@EXm=;W5lJ?SaWgfbAXp~Pc_(|eLnSY;TW)V zKX+zR+rYz&#d$p8dweMxNJ-v4xO?%+ClOpMoV>y>ZHM(rJsUnR8Z`ZAo``1C*65ZqA*O=+s)OBOM1gJ;Yc7AT0ZmrAdQ2Fi` zy<~gVhu^zuLG?rvi&OS|gS?G=3ib;P_C3tV#G&$aGYVGOk9UWTop*YL*=C_f{v>T)?q@MAheNc%; zVe#gKooFe*SSim@mWFx&c|Cup9k`1BN7M>>4sKVR$!x6vWXjk_XHlxfXkRKhv}kgq&>#Qh~^Myg{uvxJ*Un z?8BIzym9Rw>9={v9Xod|0rW@4Uq2S>8eDavuncW=X<`g*$|YAcmVq)%saW@mCN&dJ zq=P1m024+y6Gq)n5Fakf!$CPQDY{cFqlrTddh*#*B@U~}UT0ejST75x&*vu!Cg^{* zsiP#bXF}uDD#voR|J{bmT`%9EJRQ6LF?wx{(c@Z`C0&zjjr@$OeoRUKGT>gOz;&B^ zl7ZyqVtVVl-hqm>`KpHL5+kx)7Ocq~UTYVRIoTKJ+AL}4-NswOl?*QY9fb~?b~Nx; z{Hxl==FIWMq$ufA&%dpR*4n5Am-j#}<-KWqQU4r4e%I7jz3(Ci*Ab`M%<^hoSNB>jrdA7)<)}5N6`@^t z0oBpA zOE|sp8yM35<3z>O!Sz_2LxA($&?;p;jjNh)KGMotlq;Qkm{cu?&Uf$4(Bro$gGn}Vism3ZdZ`nf62 zs?&Hg4ZSuJZM4RD9Z{C$$bn}zz_su{4JUnT(dcOC)@y=^2bD*SALe( z$*7~EU;Y=a#$& z0!e060p+!!g1PT2cJk1sfC?e9J6EA|iC(i%##MHbHKUQ=ugWcVn?wQU8Z|ujRT;CQ zA7;i;98-B;je!32fOZhFV@_GX5qRWV56Rl1tt zfPCJ=!Aq}n4)~BulHvMc4U>f?sq?*;uQL#>>-%0trOD$TSc++`SojKbOZ7^o2l))& zw~E>qSPWi@*SRHXWJ-#cxNd9UQ<0M<9#=W-#(3|rhv1JMe|8ok9uRmxgUz9TTl_9~ zkK5Iqb7{eHkYroHX=ujKWhOH9&Z?u3A+{MT% zL!b%H{CJZLsn^y05?PV55_6)MxtDuSAofXv(A2{5FUm12)GUwSrfts=4#;?43YOp{ z|Cgq3SRTlEE8!iDf279M@_YjHN81wN=4?-M6Esn++yRa|09RQ? z8h}~NpXfr1N$UPlRB=|iy1YKX5z}$O;>zi&ZS@qIU5GjAv8NQ}z$5P#*Fh?sMSH|wU2l^b) zm?^%Bmc~^}6*s=Q5gjJmaclB?`3%&e zpZMvaABj4yiV?rHwCRU%Hm@zM6BFcBbCv352 zC;tG9$9z>mEuCzcfOO|@_Bf8Ksi)mdGu4)0Ga@;(kox-dOp}QY09Wlw+_3~*`%fnba5g}|(};Szt%_L;_lYol+mUEUKO|}PYm1jzrx-p zG?3`!c?QTXBO9#YBT#aQ^xE}|X9!#8#I}Frt_+B-Xtd&Et^}J|Qgz3heN%5+7Pc4l z`zInoZZ)p`6T<_xS&ARtu2`7%xVA(q4)L8|&B?*7DNIac_1#$`Z&B+-F0{OvYIl-! zzBe79olM41@pc^Di>?or2W=Y{xGp%7N6Nh!9Z_TcH#L_1E4$wi1R>RV7SG%4m_ZXV z5h_ll=8y5id`-m{Eqt2T*elW^gV-IkA3`M{(Pfu-C*_Y`Oc^FeJC-WVOcr|JY5 zlO<}rKm5-(cN}=mZ`Fu10Xh){!*TW!mnBA&v;-o4gJk81kPd0s{=O_&_u|Sq;BjRa zRv^a`ev-9Zl|3xxHJILMpHhoYo@Y9;Hc9LX#Us=DYVgCE&50AkU}kgvwY-pL-2x&# z^0lcZt@>ctOs_Zjt~w*A}n=?deaQ0^j_)o}P3?dDjLoeOG!ubB|i5r6ln z>@d80UiQuy<$qZqeY?l#eR_yKJ)rH3FN1d^$qqWGZ2aAS?A%v;{0sqDK|DV=)`eW@ z?)vXUeE;pk`roP$DK)thh1}57Cet2!Tu&2#*Eo{8i4jow9@s{OUkOB79^-dq(*y$A zaM1RGSn@{`XqE^i!#&Oujx;+`qTB$k;JPiM6rGeWzUOLCJCMwWerS9~OP!u|MId z+OKuQUnd&@7KU@_8-vBLE_LrrZK>`I=!pd6ej4C*o8=gnN!6EIEd6oeU)A^iGMgq# znF0(m+Mv<3(Sn_X`QRWdAt<4|HV~#-KGK(_MzTw8AozMGpQ>q2~)FT|ee-|G*bRM@t{!GTtiLnRCJBG!H2%i68 zwz7GjXe?eQ-@qRo3!Q~Jq^$*X&CUm?peVg893p=&w6_dTm*;2{I^enU7$K^wE7!k2 zylZ=)l^zy5roP%rcf7GU-=?)RccZ6b`cnMVq7f%93r~-9Voh5QjjdLuWKPnA8wb&% z4MuZ~#s-dXjD=M3-oNDLt>jE54e%Y)1!>)(Z+he$yJ@L}?RxB4$)MXJ_Lyg2^{wD} zY9!Rc&~n_(KS6>jL!##G)))=ZcDaZvr}z{R?EW>v6(#GfbeSQ+MNrE>{C51dlkh{kf#PC{dW=>XrZCyslDyN<5u69riuHcclAP!k%z2`$>4nNvXw zU@hE#1j#G_fNMQNy2DTiyl|Ekm{9&TlQ%MU=R+&|R346JP<#4YGm6=6q1o044@eu) zF|Oz3;+*dhKAR2w7&Afwf;2nDMF(Nv!=EBc`k5sK?g8GKV|j>FC}(*Wtmr^0j%3V~ zcBq~=8?h;Ix!OHR0anyz(pdxSg;9c3rW1fLQzgH;NgCjJc>O8nQM7uwq% z8u_aX3#(f|C8n7}#VMe2B}u$YONKNtcBKI9oF+rfk6y9`ZAb(BG4X`Zkj!0%2}*3R zU<-KlOWTjuyr$wG`yWelUm9$9GHjmWxZCwCmY%LG%jdtiiVF~`>~ajmEYPVO+f<3{ z`Mxj3^+Y*yw&p$8Y*5yktFf)k2U!w|j&*@mchl@%aNDI1n?{_>|6(iLv=HP#xV^z zfdREwKC$#v5bqaH33Yl3Uqx232BlVVbf;F9;%`uKX}lO1Lu8ae(_5PW-&g#CQdC4+ zL;1jBlIKZXtD=^SsQH4XOwc z-|yTu9jT3%Ka3AZX6OmA-{h?POaSMpN^{#wQKvCiz|I}@-Obpc=^TC?AeEYa2g z%;eVRsot?Q*;w&7vHEPW0PeF$#l4kpYycZX$JUgK7?w_Ue=XcALaG%-AS##BLchyF z$kTln-~(FJWgd##aRso*YdRrnZdm|r1`4gh?1MVVVk9dlvqOMqAdWPB8#f$dFZQYJ zbB$CksfP*sXl>gE+#7IHz~V`%(B-UEWLc(=_NsP+YC-s~f`=QE8Z1SLl_R{9cqj^q z868VUe5l|`)k$6sy2tS6_aF8~=mg(VVqaY3ZlTQ|uTNB6R*9ljj22bY@t5^&yb#wC1FfQ7~y; zb?@+9%mJKWElY9Fe-lq&;X3x-cIl_4JkL(+3!k5tQ-n#afi2Q|NfD20w-Xl@hT@%Z zT{ZD`xKkCEp^{p#gUmdDKQafOTt4Q6-!oUey{Fnsr*JBB-7XPn_q*h`v6j_`0xc%n z+7QXX`3#8_lIQ4b(vdqV*$?6?>zx=>>s_}0#KDM~;D6H?CxDW0*qKbUDV&uVh_J^=t47g{z()BwxX4m1I;STAd&}WDLSq z?$Z2daDM=CdXVXh1}`f6%;^aJrX@VMVsiaw`t;GJUFu-R^`+GHC2eQy(dVZYGT1Q5 znJKutKewjrgEmXx{f`o5l|!GOcnlO;bE(uF;bI$P+m-KcqkGp#%p66f-j;BUrQA%V zgcHzNVK(?C{SU!J-{0}#hSr#U1axISGY#62Q9hF4If+dv%533xg)PN58+clFZ~E3e z;gvnSbT#mQa5ad#`@!3G_omRq|K-Ux>xdb|HxS_ageSzR#;bqBl}=g#47{t}kLV6# zX?w{|AebDwR)CMm=#aWOirsPTS^`{6+_k_$>TB!%a|Fm3v~@4K$F(z($`+v=0Bs-4 zjsTt}2i>kr(Hb{MaloSq3+Lk#kdY&S2iO<&^-s`;`ac+9rj>L7VKH@=N}RJ42$LG- zmM21LjKZwJk2caH9ln&PUTjb6z!+Brc*tvH?RFw?BIwHQ^B2}C`e4(&BLJB8e)K$N ziZI0<=f*;fRa!x&o_fxEV2;YEHY7Y9qJb|<2C3k1uNN85P)86s-x{N5nV;EhS&L$c zUOvW=+2^M(Le1y}-Ntf+IbgsYr=}RCgcqMyopD%n!>HOUulp`b z!m>z1JD%CcX3R>MH1I_wUjGdHN6I{E;85qxCq(SHZ~tMOmv`x9JJqymS`I8u^e~_i zUZN8Kw`(4iV|RISJ0#bvzY-I8yAFRi4wK6d885O}d~rwHdG%IukBCM%75(TXRoVEEeEB>b-r5kR98t5d)67G%tf)}p!)e$%fKb|il{ zroyQsCr2*7yBzr7f8!W%mhQ&%b29J&vt0DBs~MPPeTSC^zpB-t<)>(Iy4&(Rc-wKc zrh0uaTFG>Q!)mmzLp3H+%$Q<2A`HO#n5nRlwMq_g<&DJ?W2+4Uuetjf^P<17rDGY)H-irMKv2R5~%+=RITmwlMvvkbAVN zk4ugeT9^{;Szh%L;7p{`zA`rz$!Qd$_o;k28w6ICSR~r14XX~+P|N`CSZ==qoNt7K zN1ika^Wj5e)jc?rN6i;CK{qR?&Dw<-fq2Nn=w&g@i_6JF-puuHmb-~a+xSsOjV1b= zhYcixB+IFrN9&mQwn=}*#t6+^?6bF4u&IBvcsE#-9mt=}E$;~yaB8o;d19)lh3L|7 z3dA=HB-XOwb_xV;!DMELSI8~{SR7Xf00-$^Nd2r1wo$+_6`CpKo)I14IIm~h`7N)` zxK3k!twz}LhQ;h8Kt+k9yNO1jT`m;^5O1?sxnyx$$q)+vP?+t@682-1!tx|3tmcu( z!`?G!7|X4(%6V;tOwusms+x8pM9$aLT!a2VW)GLH4aWn7?X4CMcbsY-Gc3~M?gy<{ zLtAX|l7>o`h>e&X;rdNkrqKF|8MLB0c`hqnDrboSvO*>Ea6b4?NM%QX##Dw5y8&JT z8_i;U5z`T$dW7~@Y&X>qr5Z$g2d|p*{qoaDh*Ycob@1= zXPvC=afRc*Em|>cq$;5v87ERjob9@`>-aR*y79Gc|5JQ$J|e|K^LybDgM+dcd5&jR zr-}%&Iz8^@my}~j1>u#aI6i)43QLA?>f*c=rNFOx+qA*1I`=@IeekJ=eZu@HrzT|)oSfF)Cq=;a zC|;&1nnH2SA=F{_q?8H+!2c{>5ODKaqUQ7SHB%{D`IOJH)E!@!i+9x8eBBi46-3^O z{P*|7AzK};>e0xse!wm)*DO{T%w>E`{G<&>ZjJiOMAI-Fr}r6hbV#!CV(o%4uoZn= zZLYvXvbI%1Yc|{5oteFDD&W*wp?PxRs%k(lWgyip)A;&<9&j(r0k0KT)PQXBALIdk zZ*tXGj=_2#*E%35v=2r!@3M&TXr3H*sTxfyea@K#$|0$BxK6<7>dtRH)9e> z@qJmN)Gdhs=x{FJPZhoNba$gy4Ru=sBFkY%vc#xgkj#Un?v?uL=t=C*%wv(+z35Hv zdi9tz7;W`LUgqZkQ#yhHl8Jz}eB5G^je0H)VI8*yk^tW%n{$uqw_uljc3x8s*39yA|>-7NCtU@7kRTO#^K-;uN4ZkBs`O=g_b;Kwi zhzDSjco29G+!Kf}ZAL#@A-{|sY4I@OGc+*cw_+Es756C|{O2`{i4D>;O3Rnem~0W2 z-!`WKS7sck(hLFe`>xX@Pzrp|#{}|6Lt6B-^fZvGnV&wNMkeXvTcy;TSqPJC@j^A^ z9SP*oI60p3tnGO?=NI8YE-naOiRddtl1@7_M0T;U2hGe#oB1oy)bR;s$E|f6Z^ws! ziNAS22a3~tr`$$Cvsk}E?ez>CRLH`IWDs^YJjt`saFob`UKdeq!yY)!_Ub!LJ6+LX z2ZNeVs{Tj8rd%|YkJh&W9wM$&v7u6)Waq>iy6`(!-lZY#%Ox^zmKAa>#7Y3`s08YF zQ_y}_lrNxKc+&CCVYkgKQ)pf!Gn3bzrXq>|j}h<~^Zdz4$>-F+88~0m{Ys)|AWg%_-qnxB#<}TSJh=YT+4kS9p z=5t?^yrb0)?)f{NK{gK9IR4I0|F`drBZ+p_pBh`axKWMefF{D~yY5}1%YrgvL}n$r zrM+Fa3|_VWDub@`*q}K|t`M(Da$=54uhKQtBRJNg3QC73L~@J<5hJUjONs))F&8De z`_e7$j@}pVe+U4|1Uz!s19jcjxv|MNhNp@i!yOw6kiU7_u z-All|RL#Jh7i1^_!Mw;jq@b47QXnprTtMF{iIBv4$=LAgNRKmtMMa8x*~N2; z?zPW#A$b8Tq@FqzvT=V?L%4j8Dw)s8ZNZ~w1EhZW90y9n=cJ9*5b18&{}}gp*|0U7 zvzS66nzF+cZFvhd`b6xiEm+4W)RTwzxHf+Wb&0$nZEX4+MefOOuJB+C zx}hrj?SJ)z9;KNz;?E>00PcLbaOp^pQ^YNtF=7#xuc2jH?;Zx4`1h?v!neX_hcjn? zf*w}pIu-?h3o?u!C=XJ^IvusFEu2&RQxv0{z~==^@`jL=99Y7OuYgq z2C@Pv?sit>93W+`dF^u?TfSbT*3sl~c4Nvc;l6fcBVcl~x^|K7a(F4z93p*A;HC5L z^tK4F*+#<4I)*fm8N6tDUCd+Fm}q?@QN}!G0&D}KC~}@#=Am*;oTvfWK^^;9qjX6l zEl+tgO=7QOe_J#%C9dd7<-2OP)EU<4Nz+tNR_3caO&%p?#qQlz)BWgTA&NZ;ll7CM zo4V=!rp$G>V?meF%j;)8V`AWT(!u*ZA&b`=IOaiOR+l&DAn9{rdGZX_^Dc0<K*d z$FK%^*|tLXCD*V|osNATY)`b$0et9CrW)mKH#p z-$vH6y4-z$JgCN$CzsJB4Xfy1q)I>>R1WbKv4a3MG3WnVeb@se*Gi>S zKc39}ngx-S{s}<>ASh1Z3At=4f@c4ZjJ%fYQb%m>b`pxzP?7z-CS4P)BcXkOVO&M{ ztmrWLPUrq)9o_%ri{if=)FUmLBCWSQgfp@f0*S_|+4lH80%ISj+QMmXf8td_F0ikK zOo8Oqe+hW8)OA-o>zaOP_2)mMez7)KUIsU(+l*%iewn%bL94A-?%i^9yc#&(=5`V` z`pLrutMtM6n z*R$h7j1Mj{hk{j2Oh!IS7$8*`(w*d5i`Lp94=UUb| zg~ont>s>3#S))p`!*jIwjWo8kb2532zn1`b z(YET;g1LA%+vKMA_(ey$U4P`~)_CEsiso)sL;;P#-e6Xn$C1Eet}lfk2rEt%57mOm zSW?KaFf&R}zi!e?S&vHmr2?cY!u_xS!k(F)e;APj)Fvr}#-&$`&i zsJ-@*4uV`9nDEt0UR9{KEWlr7=A*#?{K9AE{fttxw1w%lvSxhgi?!lqpp z%k>xUK)$S0JHNkrRYokkd+>-dKX`(Rw_X(X{}Y;PcE_Z7G+;Tt$@7P1*qSx_{F+Ae zKN^5fx37OU&#~q$@i7_1!Jxz0=@ss#EUec>bf)N2_~Ve4%bfC!|8)Fd zJ~;A$*ykIzy%>%?aCT8G9_69B%{)oU1gM1W(rQyIZ#qcBm+CZo^zErTH=-uVlv-f` zbTnbhZfuK*WceZfZ0c0%5uK z10%$}pGDedPVZp74#TbvzFkaBbk+(+2zgA1pO4#+0=Bn{Z2&Y6WWDPnq74RHB!T^ptzKk4_Q&c?Tqn%R bFI{WA5{9J+JV8U5Nz9Aa*E-V4 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 literal 0 HcmV?d00001 diff --git a/assets/RazorPad.snk b/assets/RazorPad.snk new file mode 100644 index 0000000000000000000000000000000000000000..067205ae5695976b8421cf5ee5793f155263d603 GIT binary patch literal 596 zcmV-a0;~N80ssI2Bme+XQ$aES1ONa50098GWm}mzoik5w{Y_r&e8b7M2x#zY!A?0^ zlUg&)2JkHbb_7<|+96P!tVzVlHt`4}f+wes_}`qAmXrR**p`H-vXNx*}^O0T}XZXk%jgDbQzHB@z8AJ3h9Z!GFshxq34J`%1mjX*HhCc zDp@Ysuqm#VRqUG(0FvQ$x6m4TJ;05YGpy0|TRnjk#be;lWxllNwDcg5OLL2j8`X1Q z#j8>}0gtr)ChGAYJ>1+OS(Cf?QPOLEUwPDbM2XP4JD7m?cDIp#1QFNgJ0w-QUFM?> zdiI%t_>k98cAUZ+z_ow~i$_LJ#-ZQWC%bp$p$$qj43fwPNT>q>SE|v}dHMy_g63!h zG{6dF|2bVz_!E~R%%hA{WAkCyt+^AuMyinEn{UzNwA#!8-fpCKrw9yp08aT$=Zs(Ki?OZ-JIy5XWNudN$R3EAnF{F$xHgdxV zX66#U=Y5fT#SsRIl6w^o7~@WWLmPA)N~M&X#~hjU>~U$GY&aS&v4Qy~WNc`tVg_w) z0*jB((4~XgiT?mdW%jTeTt4W~!Ot6fj iFzI&A)#;}JLwlGQnu7A)YLng8VTY&=+d9!`3*H$5%q5us literal 0 HcmV?d00001 diff --git a/assets/icons rounded.psd b/assets/icons rounded.psd new file mode 100644 index 0000000000000000000000000000000000000000..2c8b9b4e716baa9a6376bf83d0dcb2488f854030 GIT binary patch literal 117212 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 literal 0 HcmV?d00001 diff --git a/tools/ILMerge/ILMerge.bat b/tools/ILMerge/ILMerge.bat new file mode 100644 index 0000000..5437b50 --- /dev/null +++ b/tools/ILMerge/ILMerge.bat @@ -0,0 +1 @@ +ilmerge.exe /targetplatform:v4,"C:\Windows\Microsoft.NET\Framework64\v4.0.30319" /out:../RazorPad.exe /lib:"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies" /lib:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0" RazorPad.exe RazorPad.Core.dll "C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll" "C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.Razor.dll" "C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.dll" "C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.Razor.dll" "C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\Microsoft.Web.Infrastructure.dll" \ No newline at end of file diff --git a/tools/ILMerge/ILMerge.exe b/tools/ILMerge/ILMerge.exe new file mode 100644 index 0000000000000000000000000000000000000000..3d44384e812f59d463b533578b076b62c339dc63 GIT binary patch literal 861184 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%0A&zpLPXVd5 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Ł$iGV%z6p>cBo8aMZg#%g|eMXhQ4b3BBO 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�Zuajo1> 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 z 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 Date: Tue, 28 Feb 2012 16:31:31 -0500 Subject: [PATCH 05/88] Merging Editor UI --- RazorPad.Core.sln => RazorPad.sln | 12 ++++++++++++ 1 file changed, 12 insertions(+) rename RazorPad.Core.sln => RazorPad.sln (72%) diff --git a/RazorPad.Core.sln b/RazorPad.sln similarity index 72% rename from RazorPad.Core.sln rename to RazorPad.sln index fae8626..d83c155 100644 --- a/RazorPad.Core.sln +++ b/RazorPad.sln @@ -5,6 +5,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.Core", "RazorPad.C EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.Core.Tests", "RazorPad.Core.Tests\RazorPad.Core.Tests.csproj", "{4C25DE40-6799-4144-9F23-3919193772EC}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.EditorUI", "RazorPad.EditorUI\RazorPad.EditorUI.csproj", "{A635596E-2215-4FEF-BC10-92F63EAAAA97}" +EndProject Global GlobalSection(TestCaseManagementSettings) = postSolution CategoryFile = RazorPad.vsmdi @@ -38,6 +40,16 @@ Global {511D144C-F4C7-40A3-B3B4-80D891FCE2F5}.Release|Mixed Platforms.Build.0 = Release|x86 {511D144C-F4C7-40A3-B3B4-80D891FCE2F5}.Release|x86.ActiveCfg = Release|x86 {511D144C-F4C7-40A3-B3B4-80D891FCE2F5}.Release|x86.Build.0 = Release|x86 + {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Debug|Any CPU.ActiveCfg = Debug|x86 + {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Debug|x86.ActiveCfg = Debug|x86 + {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Debug|x86.Build.0 = Debug|x86 + {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Release|Any CPU.ActiveCfg = Release|x86 + {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Release|Mixed Platforms.Build.0 = Release|x86 + {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Release|x86.ActiveCfg = Release|x86 + {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From fe4e7b1e2e1c033ac3be142199bd648dafed1d68 Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Fri, 13 Apr 2012 14:14:47 -0400 Subject: [PATCH 06/88] Fixing --- .gitignore | 1 + RazorPad.Core/Compilation/TemplateCompilationParameters.cs | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ae0b622..c58e7ed 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ UpgradeLog.XML RazorPad.Web.Website/App_Data/Database packages +*ncrunch* \ No newline at end of file diff --git a/RazorPad.Core/Compilation/TemplateCompilationParameters.cs b/RazorPad.Core/Compilation/TemplateCompilationParameters.cs index a6163f8..f22332b 100644 --- a/RazorPad.Core/Compilation/TemplateCompilationParameters.cs +++ b/RazorPad.Core/Compilation/TemplateCompilationParameters.cs @@ -32,8 +32,7 @@ protected TemplateCompilationParameters(RazorCodeLanguage language, CodeDomProvi Language = language; CodeProvider = codeProvider; CompilerParameters = compilerParameters ?? new CompilerParameters { GenerateInMemory = true }; - CompilerParameters.ReferencedAssemblies.Add(AppDomain.CurrentDomain - .GetAssemblies().First(asm => asm.FullName.StartsWith("RazorPad.Web")).Location); + CompilerParameters.ReferencedAssemblies.Add(typeof(TemplateBase).Assembly.Location); } public static TemplateCompilationParameters CreateFromFilename(string filename) From 21fa97528cf12a6ffa1a8c0146f7e27afd5ed999 Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Fri, 13 Apr 2012 14:45:58 -0400 Subject: [PATCH 07/88] Adding HTML view --- .../AttachedProperties/BrowseBehavior.cs | 39 +++++++++++++++++++ RazorPad.EditorUI/MainWindow.xaml | 11 ++++-- RazorPad.EditorUI/RazorPad.EditorUI.csproj | 1 + 3 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 RazorPad.EditorUI/AttachedProperties/BrowseBehavior.cs diff --git a/RazorPad.EditorUI/AttachedProperties/BrowseBehavior.cs b/RazorPad.EditorUI/AttachedProperties/BrowseBehavior.cs new file mode 100644 index 0000000..cdb0c2a --- /dev/null +++ b/RazorPad.EditorUI/AttachedProperties/BrowseBehavior.cs @@ -0,0 +1,39 @@ +using System.Windows; +using WebBrowserControl = System.Windows.Controls.WebBrowser; + +namespace RazorPad.AttachedProperties +{ + public class BrowseBehavior + { + public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached( + "Html", + typeof(string), + typeof(BrowseBehavior), + new FrameworkPropertyMetadata(OnHtmlChanged)); + + [AttachedPropertyBrowsableForType(typeof(WebBrowserControl))] + public static string GetHtml(WebBrowserControl d) + { + return (string)d.GetValue(HtmlProperty); + } + + public static void SetHtml(WebBrowserControl d, string value) + { + d.SetValue(HtmlProperty, value); + } + + static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + WebBrowserControl wb = d as WebBrowserControl; + + var text = e.NewValue as string; + if (string.IsNullOrWhiteSpace(text)) + text = ""; + + if (wb != null) + { + wb.NavigateToString(text); + } + } + } +} diff --git a/RazorPad.EditorUI/MainWindow.xaml b/RazorPad.EditorUI/MainWindow.xaml index 5e8f2d8..ea105fc 100644 --- a/RazorPad.EditorUI/MainWindow.xaml +++ b/RazorPad.EditorUI/MainWindow.xaml @@ -2,7 +2,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ViewModels="clr-namespace:RazorPad.ViewModels" - xmlns:RazorPad="clr-namespace:RazorPad" + xmlns:RazorPad="clr-namespace:RazorPad" xmlns:AttachedProperties="clr-namespace:RazorPad.AttachedProperties" Title="Razor Pad" Icon="razor.ico" Height="700" Width="1000"> @@ -67,14 +67,19 @@ - + + + + + + - + diff --git a/RazorPad.EditorUI/RazorPad.EditorUI.csproj b/RazorPad.EditorUI/RazorPad.EditorUI.csproj index bdb4fa6..7ba1a07 100644 --- a/RazorPad.EditorUI/RazorPad.EditorUI.csproj +++ b/RazorPad.EditorUI/RazorPad.EditorUI.csproj @@ -70,6 +70,7 @@ MSBuild:Compile Designer + From 5c947a784232ced7899fe3c928c7a16b06e4b68e Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Mon, 16 Apr 2012 16:36:49 -0400 Subject: [PATCH 08/88] Adding Sidebar --- RazorPad.EditorUI/MainWindow.xaml | 6 +---- RazorPad.EditorUI/RazorPad.EditorUI.csproj | 7 ++++++ RazorPad.EditorUI/Sidebar.xaml | 16 +++++++++++++ RazorPad.EditorUI/Sidebar.xaml.cs | 27 ++++++++++++++++++++++ 4 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 RazorPad.EditorUI/Sidebar.xaml create mode 100644 RazorPad.EditorUI/Sidebar.xaml.cs diff --git a/RazorPad.EditorUI/MainWindow.xaml b/RazorPad.EditorUI/MainWindow.xaml index ea105fc..414e518 100644 --- a/RazorPad.EditorUI/MainWindow.xaml +++ b/RazorPad.EditorUI/MainWindow.xaml @@ -29,11 +29,7 @@ - - - - - + diff --git a/RazorPad.EditorUI/RazorPad.EditorUI.csproj b/RazorPad.EditorUI/RazorPad.EditorUI.csproj index 7ba1a07..845d349 100644 --- a/RazorPad.EditorUI/RazorPad.EditorUI.csproj +++ b/RazorPad.EditorUI/RazorPad.EditorUI.csproj @@ -81,6 +81,9 @@ RazorTemplateModelProperties.xaml + + Sidebar.xaml + @@ -102,6 +105,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + diff --git a/RazorPad.EditorUI/Sidebar.xaml b/RazorPad.EditorUI/Sidebar.xaml new file mode 100644 index 0000000..d631b8a --- /dev/null +++ b/RazorPad.EditorUI/Sidebar.xaml @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/RazorPad.EditorUI/Sidebar.xaml.cs b/RazorPad.EditorUI/Sidebar.xaml.cs new file mode 100644 index 0000000..f9554a2 --- /dev/null +++ b/RazorPad.EditorUI/Sidebar.xaml.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace RazorPad +{ + ///

+ /// Interaction logic for Sidebar.xaml + /// + public partial class Sidebar : UserControl + { + public Sidebar() + { + InitializeComponent(); + } + } +} From c029f22ff2b9c76ad68da491229519b7d0632b77 Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Mon, 16 Apr 2012 16:49:07 -0400 Subject: [PATCH 09/88] Moving Views to their own folder --- RazorPad.EditorUI/App.xaml | 2 +- RazorPad.EditorUI/{ => Assets}/razor.ico | Bin RazorPad.EditorUI/RazorPad.EditorUI.csproj | 20 ++++++------- RazorPad.EditorUI/Sidebar.xaml.cs | 27 ------------------ RazorPad.EditorUI/{ => Views}/MainWindow.xaml | 12 ++++---- .../{ => Views}/MainWindow.xaml.cs | 5 ++-- .../{ => Views}/RazorTemplateEditor.xaml | 2 +- .../{ => Views}/RazorTemplateEditor.xaml.cs | 2 +- .../RazorTemplateModelProperties.xaml | 2 +- .../RazorTemplateModelProperties.xaml.cs | 5 ++-- RazorPad.EditorUI/{ => Views}/Sidebar.xaml | 6 ++-- RazorPad.EditorUI/Views/Sidebar.xaml.cs | 15 ++++++++++ 12 files changed, 42 insertions(+), 56 deletions(-) rename RazorPad.EditorUI/{ => Assets}/razor.ico (100%) delete mode 100644 RazorPad.EditorUI/Sidebar.xaml.cs rename RazorPad.EditorUI/{ => Views}/MainWindow.xaml (88%) rename RazorPad.EditorUI/{ => Views}/MainWindow.xaml.cs (94%) rename RazorPad.EditorUI/{ => Views}/RazorTemplateEditor.xaml (85%) rename RazorPad.EditorUI/{ => Views}/RazorTemplateEditor.xaml.cs (95%) rename RazorPad.EditorUI/{ => Views}/RazorTemplateModelProperties.xaml (92%) rename RazorPad.EditorUI/{ => Views}/RazorTemplateModelProperties.xaml.cs (94%) rename RazorPad.EditorUI/{ => Views}/Sidebar.xaml (77%) create mode 100644 RazorPad.EditorUI/Views/Sidebar.xaml.cs diff --git a/RazorPad.EditorUI/App.xaml b/RazorPad.EditorUI/App.xaml index d424a18..fb0804f 100644 --- a/RazorPad.EditorUI/App.xaml +++ b/RazorPad.EditorUI/App.xaml @@ -1,5 +1,5 @@  + StartupUri="Views\MainWindow.xaml"> diff --git a/RazorPad.EditorUI/razor.ico b/RazorPad.EditorUI/Assets/razor.ico similarity index 100% rename from RazorPad.EditorUI/razor.ico rename to RazorPad.EditorUI/Assets/razor.ico diff --git a/RazorPad.EditorUI/RazorPad.EditorUI.csproj b/RazorPad.EditorUI/RazorPad.EditorUI.csproj index 845d349..46d468a 100644 --- a/RazorPad.EditorUI/RazorPad.EditorUI.csproj +++ b/RazorPad.EditorUI/RazorPad.EditorUI.csproj @@ -39,7 +39,7 @@ 4 - razor.ico + Assets\razor.ico true @@ -75,13 +75,13 @@ - + MainWindow.xaml - + RazorTemplateModelProperties.xaml - + Sidebar.xaml @@ -89,23 +89,23 @@ - + Designer MSBuild:Compile - + MSBuild:Compile Designer - + RazorTemplateEditor.xaml Code - + Designer MSBuild:Compile - + Designer MSBuild:Compile @@ -142,7 +142,7 @@ - + diff --git a/RazorPad.EditorUI/Sidebar.xaml.cs b/RazorPad.EditorUI/Sidebar.xaml.cs deleted file mode 100644 index f9554a2..0000000 --- a/RazorPad.EditorUI/Sidebar.xaml.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; - -namespace RazorPad -{ - /// - /// Interaction logic for Sidebar.xaml - /// - public partial class Sidebar : UserControl - { - public Sidebar() - { - InitializeComponent(); - } - } -} diff --git a/RazorPad.EditorUI/MainWindow.xaml b/RazorPad.EditorUI/Views/MainWindow.xaml similarity index 88% rename from RazorPad.EditorUI/MainWindow.xaml rename to RazorPad.EditorUI/Views/MainWindow.xaml index 414e518..59c23ff 100644 --- a/RazorPad.EditorUI/MainWindow.xaml +++ b/RazorPad.EditorUI/Views/MainWindow.xaml @@ -1,10 +1,10 @@ - + xmlns:Views="clr-namespace:RazorPad.Views" + Title="Razor Pad" Height="700" Width="1000"> @@ -29,7 +29,7 @@ - + @@ -47,7 +47,7 @@ - + diff --git a/RazorPad.EditorUI/MainWindow.xaml.cs b/RazorPad.EditorUI/Views/MainWindow.xaml.cs similarity index 94% rename from RazorPad.EditorUI/MainWindow.xaml.cs rename to RazorPad.EditorUI/Views/MainWindow.xaml.cs index 92d0ccc..c31d2b5 100644 --- a/RazorPad.EditorUI/MainWindow.xaml.cs +++ b/RazorPad.EditorUI/Views/MainWindow.xaml.cs @@ -1,10 +1,9 @@ -using System; -using System.IO; +using System.IO; using System.Windows; using Microsoft.Win32; using RazorPad.ViewModels; -namespace RazorPad +namespace RazorPad.Views { /// /// Interaction logic for Main.xaml diff --git a/RazorPad.EditorUI/RazorTemplateEditor.xaml b/RazorPad.EditorUI/Views/RazorTemplateEditor.xaml similarity index 85% rename from RazorPad.EditorUI/RazorTemplateEditor.xaml rename to RazorPad.EditorUI/Views/RazorTemplateEditor.xaml index e95d559..adf976b 100644 --- a/RazorPad.EditorUI/RazorTemplateEditor.xaml +++ b/RazorPad.EditorUI/Views/RazorTemplateEditor.xaml @@ -1,4 +1,4 @@ - diff --git a/RazorPad.EditorUI/RazorTemplateEditor.xaml.cs b/RazorPad.EditorUI/Views/RazorTemplateEditor.xaml.cs similarity index 95% rename from RazorPad.EditorUI/RazorTemplateEditor.xaml.cs rename to RazorPad.EditorUI/Views/RazorTemplateEditor.xaml.cs index 7868a04..970afdc 100644 --- a/RazorPad.EditorUI/RazorTemplateEditor.xaml.cs +++ b/RazorPad.EditorUI/Views/RazorTemplateEditor.xaml.cs @@ -5,7 +5,7 @@ using TextBox = System.Windows.Controls.TextBox; using UserControl = System.Windows.Controls.UserControl; -namespace RazorPad +namespace RazorPad.Views { /// /// Interaction logic for MainWindow.xaml diff --git a/RazorPad.EditorUI/RazorTemplateModelProperties.xaml b/RazorPad.EditorUI/Views/RazorTemplateModelProperties.xaml similarity index 92% rename from RazorPad.EditorUI/RazorTemplateModelProperties.xaml rename to RazorPad.EditorUI/Views/RazorTemplateModelProperties.xaml index dc4f255..afbc4f6 100644 --- a/RazorPad.EditorUI/RazorTemplateModelProperties.xaml +++ b/RazorPad.EditorUI/Views/RazorTemplateModelProperties.xaml @@ -1,4 +1,4 @@ - /// Interaction logic for RazorTemplateModelProperties.xaml diff --git a/RazorPad.EditorUI/Sidebar.xaml b/RazorPad.EditorUI/Views/Sidebar.xaml similarity index 77% rename from RazorPad.EditorUI/Sidebar.xaml rename to RazorPad.EditorUI/Views/Sidebar.xaml index d631b8a..14e13de 100644 --- a/RazorPad.EditorUI/Sidebar.xaml +++ b/RazorPad.EditorUI/Views/Sidebar.xaml @@ -1,15 +1,15 @@ - - + diff --git a/RazorPad.EditorUI/Views/Sidebar.xaml.cs b/RazorPad.EditorUI/Views/Sidebar.xaml.cs new file mode 100644 index 0000000..b5860cf --- /dev/null +++ b/RazorPad.EditorUI/Views/Sidebar.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace RazorPad.Views +{ + /// + /// Interaction logic for Sidebar.xaml + /// + public partial class Sidebar : UserControl + { + public Sidebar() + { + InitializeComponent(); + } + } +} From 0ea2b3ff5a11735fe74bb10e2f813241824bfeb6 Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Tue, 17 Apr 2012 00:59:59 -0400 Subject: [PATCH 10/88] Introducing Model Providers --- RazorPad.Core/Framework/DynamicDictionary.cs | 7 +- .../DelayedNotifyPropertyChangedTextBox.cs | 42 ++++++++++++ RazorPad.EditorUI/Framework/IModelProvider.cs | 13 ++++ RazorPad.EditorUI/Framework/ModelBuilder.cs | 13 ++++ RazorPad.EditorUI/Framework/ModelProvider.cs | 45 +++++++++++++ .../Framework/NotifyPropertyChanged.cs | 20 ++++++ .../ModelProviders/Json/JsonModelBuilder.xaml | 24 +++++++ .../Json/JsonModelBuilder.xaml.cs | 18 +++++ .../ModelProviders/Json/JsonModelProvider.cs | 51 ++++++++++++++ .../PropertyGridModelBuilder.xaml} | 6 +- .../PropertyGridModelBuilder.xaml.cs} | 13 ++-- .../PropertyGrid/PropertyGridModelProvider.cs | 34 ++++++++++ RazorPad.EditorUI/RazorPad.EditorUI.csproj | 23 +++++-- .../ViewModels/MainWindowViewModel.cs | 19 ++++-- .../RazorTemplateEditorViewModel.cs | 67 ++++++++++++------- .../RazorTemplateModelPropertiesViewModel.cs | 61 ----------------- .../RazorTemplateModelPropertyViewModel.cs | 40 ----------- RazorPad.EditorUI/Views/MainWindow.xaml | 14 ++-- RazorPad.EditorUI/Views/MainWindow.xaml.cs | 8 --- .../Views/RazorTemplateEditor.xaml | 5 +- RazorPad.EditorUI/Views/Sidebar.xaml | 15 ++--- 21 files changed, 364 insertions(+), 174 deletions(-) create mode 100644 RazorPad.EditorUI/Framework/DelayedNotifyPropertyChangedTextBox.cs create mode 100644 RazorPad.EditorUI/Framework/IModelProvider.cs create mode 100644 RazorPad.EditorUI/Framework/ModelBuilder.cs create mode 100644 RazorPad.EditorUI/Framework/ModelProvider.cs create mode 100644 RazorPad.EditorUI/Framework/NotifyPropertyChanged.cs create mode 100644 RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml create mode 100644 RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml.cs create mode 100644 RazorPad.EditorUI/ModelProviders/Json/JsonModelProvider.cs rename RazorPad.EditorUI/{Views/RazorTemplateModelProperties.xaml => ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml} (82%) rename RazorPad.EditorUI/{Views/RazorTemplateModelProperties.xaml.cs => ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml.cs} (79%) create mode 100644 RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelProvider.cs delete mode 100644 RazorPad.EditorUI/ViewModels/RazorTemplateModelPropertiesViewModel.cs delete mode 100644 RazorPad.EditorUI/ViewModels/RazorTemplateModelPropertyViewModel.cs diff --git a/RazorPad.Core/Framework/DynamicDictionary.cs b/RazorPad.Core/Framework/DynamicDictionary.cs index 6d533fe..13a7155 100644 --- a/RazorPad.Core/Framework/DynamicDictionary.cs +++ b/RazorPad.Core/Framework/DynamicDictionary.cs @@ -9,7 +9,12 @@ namespace RazorPad.Framework { public class DynamicDictionary : DynamicObject, IDictionary, IDictionary, INotifyPropertyChanged { - readonly Dictionary _dictionary = new Dictionary(); + private readonly Dictionary _dictionary; + + public DynamicDictionary(IDictionary properties = null) + { + _dictionary = new Dictionary(properties ?? new Dictionary()); + } public event PropertyChangedEventHandler PropertyChanged; diff --git a/RazorPad.EditorUI/Framework/DelayedNotifyPropertyChangedTextBox.cs b/RazorPad.EditorUI/Framework/DelayedNotifyPropertyChangedTextBox.cs new file mode 100644 index 0000000..6bbfae4 --- /dev/null +++ b/RazorPad.EditorUI/Framework/DelayedNotifyPropertyChangedTextBox.cs @@ -0,0 +1,42 @@ +using System; +using System.Windows.Controls; +using System.Windows.Forms; +using TextBox = System.Windows.Controls.TextBox; + +namespace RazorPad.Framework +{ + public class DelayedNotifyPropertyChangedTextBox : TextBox + { + private readonly Timer _textChangedTimer; + + public int TextChangedEventDelay + { + get { return _textChangedTimer.Interval; } + set { _textChangedTimer.Interval = value; } + } + + public DelayedNotifyPropertyChangedTextBox() + { + _textChangedTimer = new Timer { Interval = (int)TimeSpan.FromSeconds(.5).TotalMilliseconds }; + InitializeTextChangedTimer(); + TextChanged += OnTextChanged; + } + + private void InitializeTextChangedTimer() + { + _textChangedTimer.Tick += (x, y) => + { + GetBindingExpression(TextProperty).UpdateSource(); + _textChangedTimer.Stop(); + }; + } + + private void OnTextChanged(object sender, TextChangedEventArgs e) + { + if (_textChangedTimer.Enabled) + _textChangedTimer.Stop(); + + _textChangedTimer.Start(); + } + } +} diff --git a/RazorPad.EditorUI/Framework/IModelProvider.cs b/RazorPad.EditorUI/Framework/IModelProvider.cs new file mode 100644 index 0000000..75b7256 --- /dev/null +++ b/RazorPad.EditorUI/Framework/IModelProvider.cs @@ -0,0 +1,13 @@ +using System; + +namespace RazorPad.Framework +{ + public interface IModelProvider + { + event EventHandler ModelChanged; + + Type ModelType { get; } + + dynamic GetModel(); + } +} diff --git a/RazorPad.EditorUI/Framework/ModelBuilder.cs b/RazorPad.EditorUI/Framework/ModelBuilder.cs new file mode 100644 index 0000000..d5e4433 --- /dev/null +++ b/RazorPad.EditorUI/Framework/ModelBuilder.cs @@ -0,0 +1,13 @@ +using System.Windows.Controls; + +namespace RazorPad.Framework +{ + public abstract class ModelBuilder : UserControl + { + public virtual IModelProvider ModelProvider + { + get { return (IModelProvider)DataContext; } + set { DataContext = value; } + } + } +} \ No newline at end of file diff --git a/RazorPad.EditorUI/Framework/ModelProvider.cs b/RazorPad.EditorUI/Framework/ModelProvider.cs new file mode 100644 index 0000000..13223ae --- /dev/null +++ b/RazorPad.EditorUI/Framework/ModelProvider.cs @@ -0,0 +1,45 @@ +using System; + +namespace RazorPad.Framework +{ + public abstract class ModelProvider : NotifyPropertyChanged, IModelProvider + { + public event EventHandler ModelChanged + { + add { _modelChanged += value; } + remove { _modelChanged -= value; } + } + private event EventHandler _modelChanged; + + + public Type ModelType + { + get { return _modelType; } + set + { + if (_modelType == value) + return; + + _modelType = value; + TriggerPropertyChanged("ModelType"); + } + } + private Type _modelType; + + + protected ModelProvider(Type modelType) + { + ModelType = modelType ?? typeof(object); + } + + + public abstract dynamic GetModel(); + + + public void TriggerModelChanged() + { + if (_modelChanged != null) + _modelChanged(this, EventArgs.Empty); + } + } +} \ No newline at end of file diff --git a/RazorPad.EditorUI/Framework/NotifyPropertyChanged.cs b/RazorPad.EditorUI/Framework/NotifyPropertyChanged.cs new file mode 100644 index 0000000..f422eaa --- /dev/null +++ b/RazorPad.EditorUI/Framework/NotifyPropertyChanged.cs @@ -0,0 +1,20 @@ +using System.ComponentModel; + +namespace RazorPad.Framework +{ + public abstract class NotifyPropertyChanged : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged + { + add { _propertyChanged += value; } + remove { _propertyChanged -= value; } + } + private event PropertyChangedEventHandler _propertyChanged; + + protected virtual void TriggerPropertyChanged(string propertyName) + { + if (_propertyChanged != null) + _propertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } +} \ No newline at end of file diff --git a/RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml b/RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml new file mode 100644 index 0000000..2830c9b --- /dev/null +++ b/RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + diff --git a/RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml.cs b/RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml.cs new file mode 100644 index 0000000..e0991ee --- /dev/null +++ b/RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml.cs @@ -0,0 +1,18 @@ +using RazorPad.Framework; + +namespace RazorPad.ModelProviders.Json +{ + public partial class JsonModelBuilder : ModelBuilder + { + protected JsonModelProvider ViewModel + { + get { return (JsonModelProvider)ModelProvider; } + } + + public JsonModelBuilder() + { + InitializeComponent(); + ModelProvider = new JsonModelProvider(); + } + } +} diff --git a/RazorPad.EditorUI/ModelProviders/Json/JsonModelProvider.cs b/RazorPad.EditorUI/ModelProviders/Json/JsonModelProvider.cs new file mode 100644 index 0000000..3ef0e9d --- /dev/null +++ b/RazorPad.EditorUI/ModelProviders/Json/JsonModelProvider.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Web.Script.Serialization; +using RazorPad.Framework; + +namespace RazorPad.ModelProviders.Json +{ + public class JsonModelProvider : ModelProvider + { + public string Json + { + get { return _json; } + set + { + if (_json == value) + return; + + _json = value; + TriggerModelChanged(); + TriggerPropertyChanged("Json"); + } + } + private string _json; + + public JsonModelProvider(Type modelType = null, string json = null) + : base(modelType) + { + Json = json; + } + + public override dynamic GetModel() + { + dynamic model; + + var serializer = new JavaScriptSerializer(); + + var json = (string.IsNullOrWhiteSpace(Json)) ? "{}" : Json; + var modelType = ModelType ?? typeof (object); + + if (modelType == typeof(object)) + model = serializer.DeserializeObject(json); + else + model = serializer.Deserialize(json, modelType); + + if (model is IDictionary) + model = new DynamicDictionary((IDictionary) model); + + return model; + } + } +} \ No newline at end of file diff --git a/RazorPad.EditorUI/Views/RazorTemplateModelProperties.xaml b/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml similarity index 82% rename from RazorPad.EditorUI/Views/RazorTemplateModelProperties.xaml rename to RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml index afbc4f6..d5b0f56 100644 --- a/RazorPad.EditorUI/Views/RazorTemplateModelProperties.xaml +++ b/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml @@ -1,11 +1,11 @@ - @@ -20,4 +20,4 @@ - + diff --git a/RazorPad.EditorUI/Views/RazorTemplateModelProperties.xaml.cs b/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml.cs similarity index 79% rename from RazorPad.EditorUI/Views/RazorTemplateModelProperties.xaml.cs rename to RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml.cs index d619870..a628485 100644 --- a/RazorPad.EditorUI/Views/RazorTemplateModelProperties.xaml.cs +++ b/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml.cs @@ -1,19 +1,17 @@ using System.Windows; using System.Windows.Forms; using RazorPad.Framework; -using RazorPad.ViewModels; -using UserControl = System.Windows.Controls.UserControl; -namespace RazorPad.Views +namespace RazorPad.ModelProviders { /// /// Interaction logic for RazorTemplateModelProperties.xaml /// - public partial class RazorTemplateModelProperties : UserControl + public partial class RazorTemplateModelProperties { - protected RazorTemplateModelPropertiesViewModel ViewModel + protected PropertyGridModelProvider ViewModel { - get { return (RazorTemplateModelPropertiesViewModel) DataContext; } + get { return (PropertyGridModelProvider) ModelProvider; } } protected DynamicDictionary PropertyDictionary { get; set; } @@ -22,6 +20,7 @@ public RazorTemplateModelProperties() { InitializeComponent(); PropertyDictionary = new DynamicDictionary(); + ModelProvider = new PropertyGridModelProvider(); } private void OnAddPropertyClick(object sender, RoutedEventArgs e) @@ -62,7 +61,7 @@ private void UpdatePropertyGrid(DynamicDictionary newDictionary) private void OnPropertyValueChanged(object s, PropertyValueChangedEventArgs e) { - ViewModel.TriggerPropertyChanged(); + ViewModel.TriggerModelChanged(); } } } diff --git a/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelProvider.cs b/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelProvider.cs new file mode 100644 index 0000000..d2e3e10 --- /dev/null +++ b/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelProvider.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using RazorPad.Framework; + +namespace RazorPad.ModelProviders +{ + public class PropertyGridModelProvider : ModelProvider + { + public DynamicDictionary Properties + { + get { return _properties; } + set + { + if(_properties == value) + return; + + _properties = value; + TriggerPropertyChanged("Properties"); + } + } + private DynamicDictionary _properties; + + public PropertyGridModelProvider(Type modelType = null, IDictionary properties = null) + : base(modelType) + { + Properties = new DynamicDictionary(properties); + } + + public override dynamic GetModel() + { + return Properties; + } + } +} \ No newline at end of file diff --git a/RazorPad.EditorUI/RazorPad.EditorUI.csproj b/RazorPad.EditorUI/RazorPad.EditorUI.csproj index 46d468a..ac42263 100644 --- a/RazorPad.EditorUI/RazorPad.EditorUI.csproj +++ b/RazorPad.EditorUI/RazorPad.EditorUI.csproj @@ -49,6 +49,7 @@ + @@ -73,13 +74,22 @@ + + + + + + + JsonModelBuilder.xaml + + MainWindow.xaml - - RazorTemplateModelProperties.xaml + + PropertyGridModelBuilder.xaml Sidebar.xaml @@ -87,8 +97,11 @@ - - + + + MSBuild:Compile + Designer + Designer MSBuild:Compile @@ -101,7 +114,7 @@ RazorTemplateEditor.xaml Code - + Designer MSBuild:Compile diff --git a/RazorPad.EditorUI/ViewModels/MainWindowViewModel.cs b/RazorPad.EditorUI/ViewModels/MainWindowViewModel.cs index e30aa71..8960ced 100644 --- a/RazorPad.EditorUI/ViewModels/MainWindowViewModel.cs +++ b/RazorPad.EditorUI/ViewModels/MainWindowViewModel.cs @@ -93,10 +93,14 @@ protected bool CanAddNewTemplate private void InitializeTemplateEditors() { TemplateEditors = new ObservableCollection(); - AddNewTemplateEditor(); + + var defaultDocument = AddNewTemplateEditor(); + defaultDocument.TemplateText = "

Welcome to @Model.Name!

\r\n
Start typing some text to get started.
\r\n
Or, try adding a property called 'Message' and see what happens...
\r\n\r\n

@Model.Message

"; + defaultDocument.ModelProvider = new ModelProviders.Json.JsonModelProvider(json: "{\r\n\tName: 'RazorPad'\r\n}"); + defaultDocument.Execute(); } - internal RazorTemplateEditorViewModel AddNewTemplateEditor(string filename = null, bool setAsCurrentTemplate = true) + internal RazorTemplateEditorViewModel AddNewTemplateEditor(string filename = null, bool current = true) { RazorTemplateEditorViewModel loadedTemplate = TemplateEditors @@ -107,19 +111,22 @@ internal RazorTemplateEditorViewModel AddNewTemplateEditor(string filename = nul { loadedTemplate.LoadFromFile(filename); - if (setAsCurrentTemplate) + if (current) CurrentTemplate = loadedTemplate; return loadedTemplate; } - var templateEditor = new RazorTemplateEditorViewModel(filename); - templateEditor.ErrorMessages = ErrorMessages; + var templateEditor = new RazorTemplateEditorViewModel(filename) { + ErrorMessages = ErrorMessages, + ModelBuilder = new ModelProviders.Json.JsonModelBuilder(), + }; templateEditor.OnStatusUpdated += (sender, args) => StatusMessage = args.Message; + TemplateEditors.Add(templateEditor); - if (setAsCurrentTemplate) + if (current) CurrentTemplate = templateEditor; return templateEditor; diff --git a/RazorPad.EditorUI/ViewModels/RazorTemplateEditorViewModel.cs b/RazorPad.EditorUI/ViewModels/RazorTemplateEditorViewModel.cs index 9221692..b48cb47 100644 --- a/RazorPad.EditorUI/ViewModels/RazorTemplateEditorViewModel.cs +++ b/RazorPad.EditorUI/ViewModels/RazorTemplateEditorViewModel.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.Composition; using System.IO; using System.Text; using System.Text.RegularExpressions; @@ -33,19 +34,45 @@ public TemplateCompilationParameters TemplateCompilationParameters } } - public RazorTemplateModelPropertiesViewModel TemplateModelProperties + + public ModelBuilder ModelBuilder { - get { return _templateModelProperties; } + get { return _modelBuilder; } set { - if (_templateModelProperties == value) + _modelBuilder = value; + + if (value != null && ModelProvider == null && _modelBuilder.ModelProvider != null) + ModelProvider = _modelBuilder.ModelProvider; + + OnPropertyChanged("ModelBuilder"); + } + } + private ModelBuilder _modelBuilder; + + public IModelProvider ModelProvider + { + get { return _modelProvider; } + set + { + if (_modelProvider == value) return; - _templateModelProperties = value; - OnPropertyChanged("TemplateModelProperties"); + if (_modelProvider != null) + _modelProvider.ModelChanged -= TriggerRefresh; + + if (value != null) + value.ModelChanged += TriggerRefresh; + + if(ModelBuilder != null) + ModelBuilder.ModelProvider = value; + + _modelProvider = value; + + OnPropertyChanged("ModelProvider"); } } - private RazorTemplateModelPropertiesViewModel _templateModelProperties; + private IModelProvider _modelProvider; public TextWriter ErrorMessages { @@ -158,9 +185,6 @@ public RazorTemplateEditorViewModel(string filename = null) if(!string.IsNullOrWhiteSpace(filename)) LoadFromFile(filename); - TemplateModelProperties = new RazorTemplateModelPropertiesViewModel(typeof(object)); - TemplateModelProperties.PropertiesUpdated += (x, y) => Refresh(); - Execute(); } @@ -185,17 +209,6 @@ public void Parse() if (GeneratorResults != null && GeneratorResults.Success) { UpdateStatus("Template successfully parsed"); - - try - { - Type templateModelType = TemplateCompiler.GetTemplateModelType(TemplateText); - TemplateModelProperties.TemplateModelType = templateModelType; - } - catch (Exception ex) - { - ErrorMessages.WriteLine(ex); - UpdateStatus(ex.Message); - } } else { @@ -219,14 +232,15 @@ public void Parse() public void Execute() { + UpdateStatus("Parsing template..."); Parse(); - UpdateStatus("Executing template..."); - - var model = TemplateModelProperties.Properties; - try { + UpdateStatus("Retrieving model..."); + var model = ModelProvider.GetModel(); + + UpdateStatus("Executing template..."); ExecutedTemplateOutput = TemplateCompiler.Execute(TemplateText, model); UpdateStatus("Success!"); } @@ -283,5 +297,10 @@ public void Refresh() { Execute(); } + + private void TriggerRefresh(object sender, EventArgs args) + { + Refresh(); + } } } \ No newline at end of file diff --git a/RazorPad.EditorUI/ViewModels/RazorTemplateModelPropertiesViewModel.cs b/RazorPad.EditorUI/ViewModels/RazorTemplateModelPropertiesViewModel.cs deleted file mode 100644 index a455637..0000000 --- a/RazorPad.EditorUI/ViewModels/RazorTemplateModelPropertiesViewModel.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.ComponentModel; -using RazorPad.Framework; - -namespace RazorPad.ViewModels -{ - public class RazorTemplateModelPropertiesViewModel : INotifyPropertyChanged - { - public event PropertyChangedEventHandler PropertyChanged; - public event EventHandler PropertiesUpdated; - - public Type TemplateModelType - { - get { return _templateModelType; } - set - { - if (_templateModelType == value) - return; - - _templateModelType = value; - OnPropertyChanged("TemplateModelType"); - } - } - private Type _templateModelType; - - - public DynamicDictionary Properties - { - get { return _properties; } - set - { - if(_properties == value) - return; - - _properties = value; - OnPropertyChanged("Properties"); - } - } - private DynamicDictionary _properties; - - - public RazorTemplateModelPropertiesViewModel(Type templateModelType = null) - { - TemplateModelType = templateModelType ?? typeof(object); - Properties = new DynamicDictionary(); - } - - - protected void OnPropertyChanged(string propertyName) - { - if (PropertyChanged != null) - PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); - } - - public void TriggerPropertyChanged() - { - if (PropertiesUpdated != null) - PropertiesUpdated(this, EventArgs.Empty); - } - } -} \ No newline at end of file diff --git a/RazorPad.EditorUI/ViewModels/RazorTemplateModelPropertyViewModel.cs b/RazorPad.EditorUI/ViewModels/RazorTemplateModelPropertyViewModel.cs deleted file mode 100644 index 6c492c5..0000000 --- a/RazorPad.EditorUI/ViewModels/RazorTemplateModelPropertyViewModel.cs +++ /dev/null @@ -1,40 +0,0 @@ -using RazorPad.Framework; - -namespace RazorPad.ViewModels -{ - public class RazorTemplateModelPropertyViewModel : ViewModelBase - { - public string Name - { - get { return _name; } - set - { - if (_name == value) - return; - - _name = value; - OnPropertyChanged("Name"); - } - } - private string _name; - - public object Value - { - get { return _value; } - set - { - if (_value == value) - return; - - _value = value; - OnPropertyChanged("Value"); - } - } - private object _value; - - public RazorTemplateModelPropertyViewModel(string name = null) - { - Name = name; - } - } -} \ No newline at end of file diff --git a/RazorPad.EditorUI/Views/MainWindow.xaml b/RazorPad.EditorUI/Views/MainWindow.xaml index 59c23ff..b8054b8 100644 --- a/RazorPad.EditorUI/Views/MainWindow.xaml +++ b/RazorPad.EditorUI/Views/MainWindow.xaml @@ -62,24 +62,26 @@ - + + - - - + + - + + - + + diff --git a/RazorPad.EditorUI/Views/MainWindow.xaml.cs b/RazorPad.EditorUI/Views/MainWindow.xaml.cs index c31d2b5..39c1782 100644 --- a/RazorPad.EditorUI/Views/MainWindow.xaml.cs +++ b/RazorPad.EditorUI/Views/MainWindow.xaml.cs @@ -20,14 +20,6 @@ public MainWindow() InitializeComponent(); ViewModel.GetSaveAsFilename += GetSaveAsFilename; - - InitializeDemoTemplate(); - } - - private void InitializeDemoTemplate() - { - ViewModel.CurrentTemplate.TemplateModelProperties.Properties.Add("Name", "Razor Pad"); - ViewModel.CurrentTemplate.TemplateText = "Hello, my name is @Model.Name!"; } private static string GetSaveAsFilename(RazorTemplateEditorViewModel template) diff --git a/RazorPad.EditorUI/Views/RazorTemplateEditor.xaml b/RazorPad.EditorUI/Views/RazorTemplateEditor.xaml index adf976b..0eac326 100644 --- a/RazorPad.EditorUI/Views/RazorTemplateEditor.xaml +++ b/RazorPad.EditorUI/Views/RazorTemplateEditor.xaml @@ -1,10 +1,9 @@  + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Framework="clr-namespace:RazorPad.Framework"> - diff --git a/RazorPad.EditorUI/Views/Sidebar.xaml b/RazorPad.EditorUI/Views/Sidebar.xaml index 14e13de..82dac09 100644 --- a/RazorPad.EditorUI/Views/Sidebar.xaml +++ b/RazorPad.EditorUI/Views/Sidebar.xaml @@ -3,14 +3,9 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:Views="clr-namespace:RazorPad.Views" - mc:Ignorable="d" - d:DesignHeight="300" d:DesignWidth="300"> - - - - - - - + mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300" + Width="300" Padding="5 0"> + + + From 2d62053491eb356ad15cc22b90ceac7c259b6a40 Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Wed, 18 Apr 2012 16:02:41 -0400 Subject: [PATCH 11/88] Cleanup and restructuring --- RazorPad.Core.Tests/AcceptanceTests.cs | 7 +- .../Properties/AssemblyInfo.cs | 1 - .../RazorPad.Core.Tests.csproj | 1 - .../TemplateCompilationParameters.cs | 5 +- RazorPad.Core/Properties/AssemblyInfo.cs | 1 - .../PropertyGridModelBuilder.xaml | 23 ----- .../PropertyGridModelBuilder.xaml.cs | 67 -------------- .../PropertyGrid/PropertyGridModelProvider.cs | 34 ------- .../App.xaml | 0 .../Properties/AssemblyInfo.cs | 2 - .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../Properties/Settings.Designer.cs | 0 .../Properties/Settings.settings | 0 .../RazorPad.UI.Application.csproj | 43 ++------- .../ViewModels/MainWindowViewModel.cs | 7 +- .../RazorTemplateEditorViewModel.cs | 2 +- .../Views/MainWindow.xaml | 8 +- .../Views/MainWindow.xaml.cs | 0 .../Views/RazorTemplateEditor.xaml | 5 +- .../Views/RazorTemplateEditor.xaml.cs | 0 .../Views/Sidebar.xaml | 0 .../Views/Sidebar.xaml.cs | 0 .../app.config | 0 .../razor.ico | Bin .../ModelProviders}/IModelProvider.cs | 2 +- .../ModelProviders/Json/JsonModelBuilder.xaml | 7 +- .../Json/JsonModelBuilder.xaml.cs | 4 +- .../ModelProviders/Json/JsonModelProvider.cs | 17 +--- .../ModelProviders}/ModelBuilder.cs | 2 +- .../ModelProviders}/ModelProvider.cs | 15 +++- RazorPad.UI/Properties/AssemblyInfo.cs | 35 ++++++++ RazorPad.UI/RazorPad.UI.csproj | 84 ++++++++++++++++++ RazorPad.UI/RazorPad.UI.csproj.DotSettings | 5 ++ .../Util}/InMemoryTextWriter.cs | 2 +- .../ViewModel}/NotifyPropertyChanged.cs | 2 +- .../ViewModel}/ViewModelBase.cs | 3 +- .../Wpf}/BrowseBehavior.cs | 12 +-- .../Wpf}/CommandSink.cs | 2 +- .../Wpf}/CommandSinkBinding.cs | 2 +- .../DelayedNotifyPropertyChangedTextBox.cs | 23 +++-- .../Wpf}/ICommandSink.cs | 2 +- RazorPad.sln | 14 ++- 43 files changed, 210 insertions(+), 229 deletions(-) delete mode 100644 RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml delete mode 100644 RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml.cs delete mode 100644 RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelProvider.cs rename {RazorPad.EditorUI => RazorPad.UI.Application}/App.xaml (100%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/Properties/AssemblyInfo.cs (94%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/Properties/Resources.Designer.cs (100%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/Properties/Resources.resx (100%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/Properties/Settings.Designer.cs (100%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/Properties/Settings.settings (100%) rename RazorPad.EditorUI/RazorPad.EditorUI.csproj => RazorPad.UI.Application/RazorPad.UI.Application.csproj (72%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/ViewModels/MainWindowViewModel.cs (91%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/ViewModels/RazorTemplateEditorViewModel.cs (96%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/Views/MainWindow.xaml (90%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/Views/MainWindow.xaml.cs (100%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/Views/RazorTemplateEditor.xaml (59%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/Views/RazorTemplateEditor.xaml.cs (100%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/Views/Sidebar.xaml (100%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/Views/Sidebar.xaml.cs (100%) rename {RazorPad.EditorUI => RazorPad.UI.Application}/app.config (100%) rename {RazorPad.EditorUI/Assets => RazorPad.UI.Application}/razor.ico (100%) rename {RazorPad.EditorUI/Framework => RazorPad.UI/ModelProviders}/IModelProvider.cs (80%) rename {RazorPad.EditorUI => RazorPad.UI}/ModelProviders/Json/JsonModelBuilder.xaml (70%) rename {RazorPad.EditorUI => RazorPad.UI}/ModelProviders/Json/JsonModelBuilder.xaml.cs (79%) rename {RazorPad.EditorUI => RazorPad.UI}/ModelProviders/Json/JsonModelProvider.cs (63%) rename {RazorPad.EditorUI/Framework => RazorPad.UI/ModelProviders}/ModelBuilder.cs (86%) rename {RazorPad.EditorUI/Framework => RazorPad.UI/ModelProviders}/ModelProvider.cs (67%) create mode 100644 RazorPad.UI/Properties/AssemblyInfo.cs create mode 100644 RazorPad.UI/RazorPad.UI.csproj create mode 100644 RazorPad.UI/RazorPad.UI.csproj.DotSettings rename {RazorPad.EditorUI/Framework => RazorPad.UI/Util}/InMemoryTextWriter.cs (93%) rename {RazorPad.EditorUI/Framework => RazorPad.UI/ViewModel}/NotifyPropertyChanged.cs (92%) rename {RazorPad.EditorUI/Framework => RazorPad.UI/ViewModel}/ViewModelBase.cs (90%) rename {RazorPad.EditorUI/AttachedProperties => RazorPad.UI/Wpf}/BrowseBehavior.cs (67%) rename {RazorPad.EditorUI/Framework => RazorPad.UI/Wpf}/CommandSink.cs (95%) rename {RazorPad.EditorUI/Framework => RazorPad.UI/Wpf}/CommandSinkBinding.cs (96%) rename {RazorPad.EditorUI/Framework => RazorPad.UI/Wpf}/DelayedNotifyPropertyChangedTextBox.cs (53%) rename {RazorPad.EditorUI/Framework => RazorPad.UI/Wpf}/ICommandSink.cs (95%) diff --git a/RazorPad.Core.Tests/AcceptanceTests.cs b/RazorPad.Core.Tests/AcceptanceTests.cs index 859daf3..80fcdca 100644 --- a/RazorPad.Core.Tests/AcceptanceTests.cs +++ b/RazorPad.Core.Tests/AcceptanceTests.cs @@ -1,9 +1,4 @@ -using System; -using System.CodeDom.Compiler; -using System.Globalization; -using System.IO; -using System.Reflection; -using Microsoft.VisualStudio.TestTools.UnitTesting; +using Microsoft.VisualStudio.TestTools.UnitTesting; using RazorPad.Compilation; namespace RazorPad.Core.Tests diff --git a/RazorPad.Core.Tests/Properties/AssemblyInfo.cs b/RazorPad.Core.Tests/Properties/AssemblyInfo.cs index 3bf046b..2c3a181 100644 --- a/RazorPad.Core.Tests/Properties/AssemblyInfo.cs +++ b/RazorPad.Core.Tests/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following diff --git a/RazorPad.Core.Tests/RazorPad.Core.Tests.csproj b/RazorPad.Core.Tests/RazorPad.Core.Tests.csproj index 47c6096..edd35dc 100644 --- a/RazorPad.Core.Tests/RazorPad.Core.Tests.csproj +++ b/RazorPad.Core.Tests/RazorPad.Core.Tests.csproj @@ -35,7 +35,6 @@ 4 - diff --git a/RazorPad.Core/Compilation/TemplateCompilationParameters.cs b/RazorPad.Core/Compilation/TemplateCompilationParameters.cs index 3c81dc7..890282c 100644 --- a/RazorPad.Core/Compilation/TemplateCompilationParameters.cs +++ b/RazorPad.Core/Compilation/TemplateCompilationParameters.cs @@ -1,11 +1,10 @@ using System; -using System.Diagnostics.Contracts; -using System.Linq; using System.CodeDom.Compiler; +using System.Diagnostics.Contracts; +using System.Reflection; using System.Web.Razor; using Microsoft.CSharp; using Microsoft.VisualBasic; -using System.Reflection; namespace RazorPad.Compilation { diff --git a/RazorPad.Core/Properties/AssemblyInfo.cs b/RazorPad.Core/Properties/AssemblyInfo.cs index 27c048d..221a9db 100644 --- a/RazorPad.Core/Properties/AssemblyInfo.cs +++ b/RazorPad.Core/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following diff --git a/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml b/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml deleted file mode 100644 index d5b0f56..0000000 --- a/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml.cs b/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml.cs deleted file mode 100644 index a628485..0000000 --- a/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelBuilder.xaml.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System.Windows; -using System.Windows.Forms; -using RazorPad.Framework; - -namespace RazorPad.ModelProviders -{ - /// - /// Interaction logic for RazorTemplateModelProperties.xaml - /// - public partial class RazorTemplateModelProperties - { - protected PropertyGridModelProvider ViewModel - { - get { return (PropertyGridModelProvider) ModelProvider; } - } - - protected DynamicDictionary PropertyDictionary { get; set; } - - public RazorTemplateModelProperties() - { - InitializeComponent(); - PropertyDictionary = new DynamicDictionary(); - ModelProvider = new PropertyGridModelProvider(); - } - - private void OnAddPropertyClick(object sender, RoutedEventArgs e) - { - string newPropertyName = NewPropertyName.Text; - - if (string.IsNullOrWhiteSpace(newPropertyName)) - return; - - PropertyDictionary.Add(newPropertyName, string.Empty); - - PropertyGrid.Refresh(); - } - - private void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e) - { - UpdatePropertyGrid(ViewModel != null ? ViewModel.Properties : null); - } - - private void UpdatePropertyGrid(DynamicDictionary newDictionary) - { - if (newDictionary == null) - { - newDictionary = new DynamicDictionary(); - } - else - { - foreach (var item in PropertyDictionary) - { - if (!newDictionary.ContainsKey(item.Key)) - newDictionary.Add(item); - } - } - - PropertyDictionary = newDictionary; - PropertyGrid.SelectedObject = new DictionaryPropertyGridAdapter(PropertyDictionary); - } - - private void OnPropertyValueChanged(object s, PropertyValueChangedEventArgs e) - { - ViewModel.TriggerModelChanged(); - } - } -} diff --git a/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelProvider.cs b/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelProvider.cs deleted file mode 100644 index d2e3e10..0000000 --- a/RazorPad.EditorUI/ModelProviders/PropertyGrid/PropertyGridModelProvider.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; -using RazorPad.Framework; - -namespace RazorPad.ModelProviders -{ - public class PropertyGridModelProvider : ModelProvider - { - public DynamicDictionary Properties - { - get { return _properties; } - set - { - if(_properties == value) - return; - - _properties = value; - TriggerPropertyChanged("Properties"); - } - } - private DynamicDictionary _properties; - - public PropertyGridModelProvider(Type modelType = null, IDictionary properties = null) - : base(modelType) - { - Properties = new DynamicDictionary(properties); - } - - public override dynamic GetModel() - { - return Properties; - } - } -} \ No newline at end of file diff --git a/RazorPad.EditorUI/App.xaml b/RazorPad.UI.Application/App.xaml similarity index 100% rename from RazorPad.EditorUI/App.xaml rename to RazorPad.UI.Application/App.xaml diff --git a/RazorPad.EditorUI/Properties/AssemblyInfo.cs b/RazorPad.UI.Application/Properties/AssemblyInfo.cs similarity index 94% rename from RazorPad.EditorUI/Properties/AssemblyInfo.cs rename to RazorPad.UI.Application/Properties/AssemblyInfo.cs index 59e4ded..c40d9b4 100644 --- a/RazorPad.EditorUI/Properties/AssemblyInfo.cs +++ b/RazorPad.UI.Application/Properties/AssemblyInfo.cs @@ -1,6 +1,4 @@ using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Windows; diff --git a/RazorPad.EditorUI/Properties/Resources.Designer.cs b/RazorPad.UI.Application/Properties/Resources.Designer.cs similarity index 100% rename from RazorPad.EditorUI/Properties/Resources.Designer.cs rename to RazorPad.UI.Application/Properties/Resources.Designer.cs diff --git a/RazorPad.EditorUI/Properties/Resources.resx b/RazorPad.UI.Application/Properties/Resources.resx similarity index 100% rename from RazorPad.EditorUI/Properties/Resources.resx rename to RazorPad.UI.Application/Properties/Resources.resx diff --git a/RazorPad.EditorUI/Properties/Settings.Designer.cs b/RazorPad.UI.Application/Properties/Settings.Designer.cs similarity index 100% rename from RazorPad.EditorUI/Properties/Settings.Designer.cs rename to RazorPad.UI.Application/Properties/Settings.Designer.cs diff --git a/RazorPad.EditorUI/Properties/Settings.settings b/RazorPad.UI.Application/Properties/Settings.settings similarity index 100% rename from RazorPad.EditorUI/Properties/Settings.settings rename to RazorPad.UI.Application/Properties/Settings.settings diff --git a/RazorPad.EditorUI/RazorPad.EditorUI.csproj b/RazorPad.UI.Application/RazorPad.UI.Application.csproj similarity index 72% rename from RazorPad.EditorUI/RazorPad.EditorUI.csproj rename to RazorPad.UI.Application/RazorPad.UI.Application.csproj index ac42263..47712c8 100644 --- a/RazorPad.EditorUI/RazorPad.EditorUI.csproj +++ b/RazorPad.UI.Application/RazorPad.UI.Application.csproj @@ -39,69 +39,38 @@ 4 - Assets\razor.ico + razor.ico true - - - - - - 4.0 - - MSBuild:Compile Designer - - - - - - - - - - - - JsonModelBuilder.xaml - - MainWindow.xaml - - PropertyGridModelBuilder.xaml - Sidebar.xaml - - - - MSBuild:Compile - Designer - Designer MSBuild:Compile @@ -114,10 +83,6 @@ RazorTemplateEditor.xaml Code - - Designer - MSBuild:Compile - Designer MSBuild:Compile @@ -153,9 +118,13 @@ {511D144C-F4C7-40A3-B3B4-80D891FCE2F5} RazorPad.Core + + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC} + RazorPad.UI + - + diff --git a/RazorPad.EditorUI/ViewModels/MainWindowViewModel.cs b/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs similarity index 91% rename from RazorPad.EditorUI/ViewModels/MainWindowViewModel.cs rename to RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs index 8960ced..994eedc 100644 --- a/RazorPad.EditorUI/ViewModels/MainWindowViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs @@ -2,7 +2,8 @@ using System.Collections.ObjectModel; using System.Linq; using System.Windows.Input; -using RazorPad.Framework; +using RazorPad.UI; +using RazorPad.UI.Json; namespace RazorPad.ViewModels { @@ -96,7 +97,7 @@ private void InitializeTemplateEditors() var defaultDocument = AddNewTemplateEditor(); defaultDocument.TemplateText = "

Welcome to @Model.Name!

\r\n
Start typing some text to get started.
\r\n
Or, try adding a property called 'Message' and see what happens...
\r\n\r\n

@Model.Message

"; - defaultDocument.ModelProvider = new ModelProviders.Json.JsonModelProvider(json: "{\r\n\tName: 'RazorPad'\r\n}"); + defaultDocument.ModelProvider = new JsonModelProvider(json: "{\r\n\tName: 'RazorPad'\r\n}"); defaultDocument.Execute(); } @@ -119,7 +120,7 @@ internal RazorTemplateEditorViewModel AddNewTemplateEditor(string filename = nul var templateEditor = new RazorTemplateEditorViewModel(filename) { ErrorMessages = ErrorMessages, - ModelBuilder = new ModelProviders.Json.JsonModelBuilder(), + ModelBuilder = new JsonModelBuilder(), }; templateEditor.OnStatusUpdated += (sender, args) => StatusMessage = args.Message; diff --git a/RazorPad.EditorUI/ViewModels/RazorTemplateEditorViewModel.cs b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs similarity index 96% rename from RazorPad.EditorUI/ViewModels/RazorTemplateEditorViewModel.cs rename to RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs index b48cb47..75e2d0e 100644 --- a/RazorPad.EditorUI/ViewModels/RazorTemplateEditorViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs @@ -1,11 +1,11 @@ using System; -using System.ComponentModel.Composition; using System.IO; using System.Text; using System.Text.RegularExpressions; using System.Web.Razor; using RazorPad.Compilation; using RazorPad.Framework; +using RazorPad.UI; namespace RazorPad.ViewModels { diff --git a/RazorPad.EditorUI/Views/MainWindow.xaml b/RazorPad.UI.Application/Views/MainWindow.xaml similarity index 90% rename from RazorPad.EditorUI/Views/MainWindow.xaml rename to RazorPad.UI.Application/Views/MainWindow.xaml index b8054b8..bafa940 100644 --- a/RazorPad.EditorUI/Views/MainWindow.xaml +++ b/RazorPad.UI.Application/Views/MainWindow.xaml @@ -1,10 +1,8 @@  + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ViewModels="clr-namespace:RazorPad.ViewModels" + xmlns:Views="clr-namespace:RazorPad.Views" + xmlns:AttachedProperties="clr-namespace:RazorPad.UI.Wpf;assembly=RazorPad.UI" Title="Razor Pad" Height="700" Width="1000"> diff --git a/RazorPad.EditorUI/Views/MainWindow.xaml.cs b/RazorPad.UI.Application/Views/MainWindow.xaml.cs similarity index 100% rename from RazorPad.EditorUI/Views/MainWindow.xaml.cs rename to RazorPad.UI.Application/Views/MainWindow.xaml.cs diff --git a/RazorPad.EditorUI/Views/RazorTemplateEditor.xaml b/RazorPad.UI.Application/Views/RazorTemplateEditor.xaml similarity index 59% rename from RazorPad.EditorUI/Views/RazorTemplateEditor.xaml rename to RazorPad.UI.Application/Views/RazorTemplateEditor.xaml index 0eac326..5aabdad 100644 --- a/RazorPad.EditorUI/Views/RazorTemplateEditor.xaml +++ b/RazorPad.UI.Application/Views/RazorTemplateEditor.xaml @@ -1,8 +1,9 @@  + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:RazorPadExt="clr-namespace:RazorPad.UI.Wpf;assembly=RazorPad.UI"> - diff --git a/RazorPad.EditorUI/Views/RazorTemplateEditor.xaml.cs b/RazorPad.UI.Application/Views/RazorTemplateEditor.xaml.cs similarity index 100% rename from RazorPad.EditorUI/Views/RazorTemplateEditor.xaml.cs rename to RazorPad.UI.Application/Views/RazorTemplateEditor.xaml.cs diff --git a/RazorPad.EditorUI/Views/Sidebar.xaml b/RazorPad.UI.Application/Views/Sidebar.xaml similarity index 100% rename from RazorPad.EditorUI/Views/Sidebar.xaml rename to RazorPad.UI.Application/Views/Sidebar.xaml diff --git a/RazorPad.EditorUI/Views/Sidebar.xaml.cs b/RazorPad.UI.Application/Views/Sidebar.xaml.cs similarity index 100% rename from RazorPad.EditorUI/Views/Sidebar.xaml.cs rename to RazorPad.UI.Application/Views/Sidebar.xaml.cs diff --git a/RazorPad.EditorUI/app.config b/RazorPad.UI.Application/app.config similarity index 100% rename from RazorPad.EditorUI/app.config rename to RazorPad.UI.Application/app.config diff --git a/RazorPad.EditorUI/Assets/razor.ico b/RazorPad.UI.Application/razor.ico similarity index 100% rename from RazorPad.EditorUI/Assets/razor.ico rename to RazorPad.UI.Application/razor.ico diff --git a/RazorPad.EditorUI/Framework/IModelProvider.cs b/RazorPad.UI/ModelProviders/IModelProvider.cs similarity index 80% rename from RazorPad.EditorUI/Framework/IModelProvider.cs rename to RazorPad.UI/ModelProviders/IModelProvider.cs index 75b7256..a714d58 100644 --- a/RazorPad.EditorUI/Framework/IModelProvider.cs +++ b/RazorPad.UI/ModelProviders/IModelProvider.cs @@ -1,6 +1,6 @@ using System; -namespace RazorPad.Framework +namespace RazorPad.UI { public interface IModelProvider { diff --git a/RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml b/RazorPad.UI/ModelProviders/Json/JsonModelBuilder.xaml similarity index 70% rename from RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml rename to RazorPad.UI/ModelProviders/Json/JsonModelBuilder.xaml index 2830c9b..51bdf28 100644 --- a/RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml +++ b/RazorPad.UI/ModelProviders/Json/JsonModelBuilder.xaml @@ -1,9 +1,10 @@ - @@ -14,7 +15,7 @@ - diff --git a/RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml.cs b/RazorPad.UI/ModelProviders/Json/JsonModelBuilder.xaml.cs similarity index 79% rename from RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml.cs rename to RazorPad.UI/ModelProviders/Json/JsonModelBuilder.xaml.cs index e0991ee..a32a170 100644 --- a/RazorPad.EditorUI/ModelProviders/Json/JsonModelBuilder.xaml.cs +++ b/RazorPad.UI/ModelProviders/Json/JsonModelBuilder.xaml.cs @@ -1,6 +1,4 @@ -using RazorPad.Framework; - -namespace RazorPad.ModelProviders.Json +namespace RazorPad.UI.Json { public partial class JsonModelBuilder : ModelBuilder { diff --git a/RazorPad.EditorUI/ModelProviders/Json/JsonModelProvider.cs b/RazorPad.UI/ModelProviders/Json/JsonModelProvider.cs similarity index 63% rename from RazorPad.EditorUI/ModelProviders/Json/JsonModelProvider.cs rename to RazorPad.UI/ModelProviders/Json/JsonModelProvider.cs index 3ef0e9d..a00c7b0 100644 --- a/RazorPad.EditorUI/ModelProviders/Json/JsonModelProvider.cs +++ b/RazorPad.UI/ModelProviders/Json/JsonModelProvider.cs @@ -1,9 +1,7 @@ using System; -using System.Collections.Generic; using System.Web.Script.Serialization; -using RazorPad.Framework; -namespace RazorPad.ModelProviders.Json +namespace RazorPad.UI.Json { public class JsonModelProvider : ModelProvider { @@ -28,24 +26,17 @@ public JsonModelProvider(Type modelType = null, string json = null) Json = json; } - public override dynamic GetModel() + protected override dynamic RebuildModel() { - dynamic model; - var serializer = new JavaScriptSerializer(); var json = (string.IsNullOrWhiteSpace(Json)) ? "{}" : Json; var modelType = ModelType ?? typeof (object); if (modelType == typeof(object)) - model = serializer.DeserializeObject(json); + return serializer.DeserializeObject(json); else - model = serializer.Deserialize(json, modelType); - - if (model is IDictionary) - model = new DynamicDictionary((IDictionary) model); - - return model; + return serializer.Deserialize(json, modelType); } } } \ No newline at end of file diff --git a/RazorPad.EditorUI/Framework/ModelBuilder.cs b/RazorPad.UI/ModelProviders/ModelBuilder.cs similarity index 86% rename from RazorPad.EditorUI/Framework/ModelBuilder.cs rename to RazorPad.UI/ModelProviders/ModelBuilder.cs index d5e4433..18033c2 100644 --- a/RazorPad.EditorUI/Framework/ModelBuilder.cs +++ b/RazorPad.UI/ModelProviders/ModelBuilder.cs @@ -1,6 +1,6 @@ using System.Windows.Controls; -namespace RazorPad.Framework +namespace RazorPad.UI { public abstract class ModelBuilder : UserControl { diff --git a/RazorPad.EditorUI/Framework/ModelProvider.cs b/RazorPad.UI/ModelProviders/ModelProvider.cs similarity index 67% rename from RazorPad.EditorUI/Framework/ModelProvider.cs rename to RazorPad.UI/ModelProviders/ModelProvider.cs index 13223ae..aa6cb7a 100644 --- a/RazorPad.EditorUI/Framework/ModelProvider.cs +++ b/RazorPad.UI/ModelProviders/ModelProvider.cs @@ -1,6 +1,8 @@ using System; +using System.Collections.Generic; +using RazorPad.Framework; -namespace RazorPad.Framework +namespace RazorPad.UI { public abstract class ModelProvider : NotifyPropertyChanged, IModelProvider { @@ -33,13 +35,22 @@ protected ModelProvider(Type modelType) } - public abstract dynamic GetModel(); + public virtual dynamic GetModel() + { + var model = RebuildModel(); + + if (model is IDictionary) + model = new DynamicDictionary((IDictionary)model); + return model; + } public void TriggerModelChanged() { if (_modelChanged != null) _modelChanged(this, EventArgs.Empty); } + + protected abstract dynamic RebuildModel(); } } \ No newline at end of file diff --git a/RazorPad.UI/Properties/AssemblyInfo.cs b/RazorPad.UI/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5689fca --- /dev/null +++ b/RazorPad.UI/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("RazorPad.UI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Dow Jones & Co.")] +[assembly: AssemblyProduct("RazorPad.UI")] +[assembly: AssemblyCopyright("Copyright © Dow Jones & Co. 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("9ff7ba63-2b84-48f3-b265-6cb9a542b245")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/RazorPad.UI/RazorPad.UI.csproj b/RazorPad.UI/RazorPad.UI.csproj new file mode 100644 index 0000000..68b0629 --- /dev/null +++ b/RazorPad.UI/RazorPad.UI.csproj @@ -0,0 +1,84 @@ + + + + + Debug + AnyCPU + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC} + Library + Properties + RazorPad.UI + RazorPad.UI + v4.0 + 512 + ..\..\RazorPad\ + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + JsonModelBuilder.xaml + + + + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + + + {511D144C-F4C7-40A3-B3B4-80D891FCE2F5} + RazorPad.Core + + + + + + \ No newline at end of file diff --git a/RazorPad.UI/RazorPad.UI.csproj.DotSettings b/RazorPad.UI/RazorPad.UI.csproj.DotSettings new file mode 100644 index 0000000..2762a60 --- /dev/null +++ b/RazorPad.UI/RazorPad.UI.csproj.DotSettings @@ -0,0 +1,5 @@ + + True + True + True + True \ No newline at end of file diff --git a/RazorPad.EditorUI/Framework/InMemoryTextWriter.cs b/RazorPad.UI/Util/InMemoryTextWriter.cs similarity index 93% rename from RazorPad.EditorUI/Framework/InMemoryTextWriter.cs rename to RazorPad.UI/Util/InMemoryTextWriter.cs index fc2901c..82e473e 100644 --- a/RazorPad.EditorUI/Framework/InMemoryTextWriter.cs +++ b/RazorPad.UI/Util/InMemoryTextWriter.cs @@ -2,7 +2,7 @@ using System.IO; using System.Text; -namespace RazorPad.Framework +namespace RazorPad.UI { public class InMemoryTextWriter : TextWriter, INotifyPropertyChanged { diff --git a/RazorPad.EditorUI/Framework/NotifyPropertyChanged.cs b/RazorPad.UI/ViewModel/NotifyPropertyChanged.cs similarity index 92% rename from RazorPad.EditorUI/Framework/NotifyPropertyChanged.cs rename to RazorPad.UI/ViewModel/NotifyPropertyChanged.cs index f422eaa..377aa73 100644 --- a/RazorPad.EditorUI/Framework/NotifyPropertyChanged.cs +++ b/RazorPad.UI/ViewModel/NotifyPropertyChanged.cs @@ -1,6 +1,6 @@ using System.ComponentModel; -namespace RazorPad.Framework +namespace RazorPad.UI { public abstract class NotifyPropertyChanged : INotifyPropertyChanged { diff --git a/RazorPad.EditorUI/Framework/ViewModelBase.cs b/RazorPad.UI/ViewModel/ViewModelBase.cs similarity index 90% rename from RazorPad.EditorUI/Framework/ViewModelBase.cs rename to RazorPad.UI/ViewModel/ViewModelBase.cs index 9ee1bf0..2c70d07 100644 --- a/RazorPad.EditorUI/Framework/ViewModelBase.cs +++ b/RazorPad.UI/ViewModel/ViewModelBase.cs @@ -1,7 +1,8 @@ using System; using System.ComponentModel; +using RazorPad.UI.Wpf; -namespace RazorPad.Framework +namespace RazorPad.UI { public abstract class ViewModelBase : CommandSink, INotifyPropertyChanged { diff --git a/RazorPad.EditorUI/AttachedProperties/BrowseBehavior.cs b/RazorPad.UI/Wpf/BrowseBehavior.cs similarity index 67% rename from RazorPad.EditorUI/AttachedProperties/BrowseBehavior.cs rename to RazorPad.UI/Wpf/BrowseBehavior.cs index cdb0c2a..4ddd4b4 100644 --- a/RazorPad.EditorUI/AttachedProperties/BrowseBehavior.cs +++ b/RazorPad.UI/Wpf/BrowseBehavior.cs @@ -1,7 +1,7 @@ using System.Windows; -using WebBrowserControl = System.Windows.Controls.WebBrowser; +using System.Windows.Controls; -namespace RazorPad.AttachedProperties +namespace RazorPad.UI.Wpf { public class BrowseBehavior { @@ -11,20 +11,20 @@ public class BrowseBehavior typeof(BrowseBehavior), new FrameworkPropertyMetadata(OnHtmlChanged)); - [AttachedPropertyBrowsableForType(typeof(WebBrowserControl))] - public static string GetHtml(WebBrowserControl d) + [AttachedPropertyBrowsableForType(typeof(WebBrowser))] + public static string GetHtml(WebBrowser d) { return (string)d.GetValue(HtmlProperty); } - public static void SetHtml(WebBrowserControl d, string value) + public static void SetHtml(WebBrowser d, string value) { d.SetValue(HtmlProperty, value); } static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { - WebBrowserControl wb = d as WebBrowserControl; + WebBrowser wb = d as WebBrowser; var text = e.NewValue as string; if (string.IsNullOrWhiteSpace(text)) diff --git a/RazorPad.EditorUI/Framework/CommandSink.cs b/RazorPad.UI/Wpf/CommandSink.cs similarity index 95% rename from RazorPad.EditorUI/Framework/CommandSink.cs rename to RazorPad.UI/Wpf/CommandSink.cs index de6ae80..f860906 100644 --- a/RazorPad.EditorUI/Framework/CommandSink.cs +++ b/RazorPad.UI/Wpf/CommandSink.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Windows.Input; -namespace RazorPad.Framework +namespace RazorPad.UI.Wpf { ///
/// This implementation of ICommandSink can serve as a base diff --git a/RazorPad.EditorUI/Framework/CommandSinkBinding.cs b/RazorPad.UI/Wpf/CommandSinkBinding.cs similarity index 96% rename from RazorPad.EditorUI/Framework/CommandSinkBinding.cs rename to RazorPad.UI/Wpf/CommandSinkBinding.cs index 658eb0e..7fbafa1 100644 --- a/RazorPad.EditorUI/Framework/CommandSinkBinding.cs +++ b/RazorPad.UI/Wpf/CommandSinkBinding.cs @@ -2,7 +2,7 @@ using System.Windows; using System.Windows.Input; -namespace RazorPad.Framework +namespace RazorPad.UI.Wpf { /// /// A CommandBinding subclass that will attach its diff --git a/RazorPad.EditorUI/Framework/DelayedNotifyPropertyChangedTextBox.cs b/RazorPad.UI/Wpf/DelayedNotifyPropertyChangedTextBox.cs similarity index 53% rename from RazorPad.EditorUI/Framework/DelayedNotifyPropertyChangedTextBox.cs rename to RazorPad.UI/Wpf/DelayedNotifyPropertyChangedTextBox.cs index 6bbfae4..cdd1588 100644 --- a/RazorPad.EditorUI/Framework/DelayedNotifyPropertyChangedTextBox.cs +++ b/RazorPad.UI/Wpf/DelayedNotifyPropertyChangedTextBox.cs @@ -1,15 +1,17 @@ using System; +using System.Timers; using System.Windows.Controls; -using System.Windows.Forms; -using TextBox = System.Windows.Controls.TextBox; +using System.Windows.Threading; -namespace RazorPad.Framework +namespace RazorPad.UI.Wpf { public class DelayedNotifyPropertyChangedTextBox : TextBox { + public static readonly int DefaultTextChangedEventDelay = (int)TimeSpan.FromSeconds(.5).TotalMilliseconds; + private readonly Timer _textChangedTimer; - public int TextChangedEventDelay + public double TextChangedEventDelay { get { return _textChangedTimer.Interval; } set { _textChangedTimer.Interval = value; } @@ -17,16 +19,23 @@ public int TextChangedEventDelay public DelayedNotifyPropertyChangedTextBox() { - _textChangedTimer = new Timer { Interval = (int)TimeSpan.FromSeconds(.5).TotalMilliseconds }; + _textChangedTimer = new Timer { Interval = DefaultTextChangedEventDelay }; InitializeTextChangedTimer(); TextChanged += OnTextChanged; } private void InitializeTextChangedTimer() { - _textChangedTimer.Tick += (x, y) => + _textChangedTimer.Elapsed += (x, y) => { - GetBindingExpression(TextProperty).UpdateSource(); + var bindingExpression = GetBindingExpression(TextProperty); + + if(bindingExpression != null) + { + Dispatcher.BeginInvoke(DispatcherPriority.DataBind, + new Action(bindingExpression.UpdateSource)); + } + _textChangedTimer.Stop(); }; } diff --git a/RazorPad.EditorUI/Framework/ICommandSink.cs b/RazorPad.UI/Wpf/ICommandSink.cs similarity index 95% rename from RazorPad.EditorUI/Framework/ICommandSink.cs rename to RazorPad.UI/Wpf/ICommandSink.cs index 971ec28..8b841c9 100644 --- a/RazorPad.EditorUI/Framework/ICommandSink.cs +++ b/RazorPad.UI/Wpf/ICommandSink.cs @@ -1,6 +1,6 @@ using System.Windows.Input; -namespace RazorPad.Framework +namespace RazorPad.UI.Wpf { /// /// Represents an object that is capable of being notified of diff --git a/RazorPad.sln b/RazorPad.sln index d83c155..d95ba33 100644 --- a/RazorPad.sln +++ b/RazorPad.sln @@ -5,7 +5,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.Core", "RazorPad.C EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.Core.Tests", "RazorPad.Core.Tests\RazorPad.Core.Tests.csproj", "{4C25DE40-6799-4144-9F23-3919193772EC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.EditorUI", "RazorPad.EditorUI\RazorPad.EditorUI.csproj", "{A635596E-2215-4FEF-BC10-92F63EAAAA97}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.UI.Application", "RazorPad.UI.Application\RazorPad.UI.Application.csproj", "{A635596E-2215-4FEF-BC10-92F63EAAAA97}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.UI", "RazorPad.UI\RazorPad.UI.csproj", "{147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}" EndProject Global GlobalSection(TestCaseManagementSettings) = postSolution @@ -20,6 +22,16 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}.Debug|x86.ActiveCfg = Debug|Any CPU + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}.Release|Any CPU.Build.0 = Release|Any CPU + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}.Release|x86.ActiveCfg = Release|Any CPU {4C25DE40-6799-4144-9F23-3919193772EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4C25DE40-6799-4144-9F23-3919193772EC}.Debug|Any CPU.Build.0 = Debug|Any CPU {4C25DE40-6799-4144-9F23-3919193772EC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU From 5b4f5fa8f01f2051981fc73bb4a3537de9a30c23 Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Wed, 18 Apr 2012 16:52:39 -0400 Subject: [PATCH 12/88] Refactoring ViewModelBase and adding EventHandlerExtensions --- .gitignore | 3 ++- RazorPad.Core/Compilation/TemplateCompiler.cs | 1 - .../Extensions/EventHandlerExtensions.cs | 27 +++++++++++++++++++ RazorPad.Core/Extensions/StringExtensions.cs | 2 +- RazorPad.Core/Framework/EventArgs.cs | 5 ++++ RazorPad.Core/RazorPad.Core.csproj | 1 + .../ViewModels/MainWindowViewModel.cs | 3 ++- .../RazorTemplateEditorViewModel.cs | 2 +- RazorPad.UI/ViewModel/ViewModelBase.cs | 14 ++-------- RazorPad.UI/Wpf/CommandSink.cs | 2 +- 10 files changed, 42 insertions(+), 18 deletions(-) create mode 100644 RazorPad.Core/Extensions/EventHandlerExtensions.cs diff --git a/.gitignore b/.gitignore index c58e7ed..f996057 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ UpgradeLog.XML RazorPad.Web.Website/App_Data/Database packages -*ncrunch* \ No newline at end of file +*ncrunch* +*.DotSettings \ No newline at end of file diff --git a/RazorPad.Core/Compilation/TemplateCompiler.cs b/RazorPad.Core/Compilation/TemplateCompiler.cs index ed8cee8..70ea035 100644 --- a/RazorPad.Core/Compilation/TemplateCompiler.cs +++ b/RazorPad.Core/Compilation/TemplateCompiler.cs @@ -5,7 +5,6 @@ using System.Reflection; using System.Web.Razor; using RazorPad.Compilation.Hosts; -using RazorPad.Core; namespace RazorPad.Compilation { diff --git a/RazorPad.Core/Extensions/EventHandlerExtensions.cs b/RazorPad.Core/Extensions/EventHandlerExtensions.cs new file mode 100644 index 0000000..ecfcea6 --- /dev/null +++ b/RazorPad.Core/Extensions/EventHandlerExtensions.cs @@ -0,0 +1,27 @@ +using System; +using RazorPad.Framework; + +namespace RazorPad +{ + public static class EventHandlerExtensions + { + public static void SafeInvoke(this EventHandler handler, EventArgs args = null, object sender = null) + { + if (handler != null) + handler(sender, args ?? EventArgs.Empty); + } + + public static void SafeInvoke(this EventHandler> handler, TData data, object sender = null) + { + if (handler != null) + handler(sender, new EventArgs(data)); + } + + public static void SafeInvoke(this EventHandler handler, TEventArgs args = null, object sender = null) + where TEventArgs : EventArgs + { + if (handler != null) + handler(sender, args); + } + } +} diff --git a/RazorPad.Core/Extensions/StringExtensions.cs b/RazorPad.Core/Extensions/StringExtensions.cs index 136d682..a0a8b8f 100644 --- a/RazorPad.Core/Extensions/StringExtensions.cs +++ b/RazorPad.Core/Extensions/StringExtensions.cs @@ -1,7 +1,7 @@ using System.IO; using System.Text; -namespace RazorPad.Core +namespace RazorPad { public static class StringExtensions { diff --git a/RazorPad.Core/Framework/EventArgs.cs b/RazorPad.Core/Framework/EventArgs.cs index a4f0fb2..cce3207 100644 --- a/RazorPad.Core/Framework/EventArgs.cs +++ b/RazorPad.Core/Framework/EventArgs.cs @@ -4,6 +4,11 @@ namespace RazorPad.Framework { public class EventArgs : EventArgs { + public new static EventArgs Empty + { + get { return new EventArgs(default(T)); } + } + public T Message { get; private set; } public EventArgs(T message) diff --git a/RazorPad.Core/RazorPad.Core.csproj b/RazorPad.Core/RazorPad.Core.csproj index 851f013..de59093 100644 --- a/RazorPad.Core/RazorPad.Core.csproj +++ b/RazorPad.Core/RazorPad.Core.csproj @@ -76,6 +76,7 @@ + diff --git a/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs b/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs index 994eedc..e5132c5 100644 --- a/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs @@ -4,10 +4,11 @@ using System.Windows.Input; using RazorPad.UI; using RazorPad.UI.Json; +using RazorPad.UI.Wpf; namespace RazorPad.ViewModels { - public class MainWindowViewModel : ViewModelBase + public class MainWindowViewModel : CommandSink { public Func GetSaveAsFilename { diff --git a/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs index 75e2d0e..8462bfb 100644 --- a/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs @@ -290,7 +290,7 @@ public void SaveToFile(string fileName = null) private void UpdateStatus(string statusMessage) { - SafeInvoke(OnStatusUpdated, new EventArgs(statusMessage)); + OnStatusUpdated.SafeInvoke(statusMessage); } public void Refresh() diff --git a/RazorPad.UI/ViewModel/ViewModelBase.cs b/RazorPad.UI/ViewModel/ViewModelBase.cs index 2c70d07..7e44317 100644 --- a/RazorPad.UI/ViewModel/ViewModelBase.cs +++ b/RazorPad.UI/ViewModel/ViewModelBase.cs @@ -1,25 +1,15 @@ -using System; -using System.ComponentModel; -using RazorPad.UI.Wpf; +using System.ComponentModel; namespace RazorPad.UI { - public abstract class ViewModelBase : CommandSink, INotifyPropertyChanged + public abstract class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; - protected void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } - - protected void SafeInvoke(EventHandler handler, TEventArgs args = null) - where TEventArgs : EventArgs - { - if (handler != null) - handler(this, args); - } } } diff --git a/RazorPad.UI/Wpf/CommandSink.cs b/RazorPad.UI/Wpf/CommandSink.cs index f860906..268378b 100644 --- a/RazorPad.UI/Wpf/CommandSink.cs +++ b/RazorPad.UI/Wpf/CommandSink.cs @@ -14,7 +14,7 @@ namespace RazorPad.UI.Wpf /// Taken from Josh Smith's CodeProject MVVM article: /// http://www.codeproject.com/KB/WPF/VMCommanding.aspx /// - public class CommandSink : ICommandSink + public class CommandSink : ViewModelBase, ICommandSink { readonly Dictionary _commandToCallbacksMap = new Dictionary(); From f811fe2657beed8f5959d279f7dfe2aa545412fe Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Thu, 19 Apr 2012 01:23:27 -0400 Subject: [PATCH 13/88] Refactoring Acceptance Tests to use files and T4 template --- RazorPad.Core.Tests/AcceptanceTests.cs | 42 +++++++++---- RazorPad.Core.Tests/AcceptanceTests.tt | 60 +++++++++++++++++++ .../AcceptanceTests/Functions.cshtml | 15 +++++ .../AcceptanceTests/Functions.cshtml.output | 1 + .../AcceptanceTests/Helpers.cshtml | 5 ++ .../AcceptanceTests/Helpers.cshtml.output | 1 + .../AcceptanceTests/SimpleRendering.cshtml | 5 ++ .../SimpleRendering.cshtml.output | 1 + .../RazorPad.Core.Tests.csproj | 21 ++++++- 9 files changed, 137 insertions(+), 14 deletions(-) create mode 100644 RazorPad.Core.Tests/AcceptanceTests.tt create mode 100644 RazorPad.Core.Tests/AcceptanceTests/Functions.cshtml create mode 100644 RazorPad.Core.Tests/AcceptanceTests/Functions.cshtml.output create mode 100644 RazorPad.Core.Tests/AcceptanceTests/Helpers.cshtml create mode 100644 RazorPad.Core.Tests/AcceptanceTests/Helpers.cshtml.output create mode 100644 RazorPad.Core.Tests/AcceptanceTests/SimpleRendering.cshtml create mode 100644 RazorPad.Core.Tests/AcceptanceTests/SimpleRendering.cshtml.output diff --git a/RazorPad.Core.Tests/AcceptanceTests.cs b/RazorPad.Core.Tests/AcceptanceTests.cs index 80fcdca..28d9897 100644 --- a/RazorPad.Core.Tests/AcceptanceTests.cs +++ b/RazorPad.Core.Tests/AcceptanceTests.cs @@ -1,4 +1,5 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.IO; +using Microsoft.VisualStudio.TestTools.UnitTesting; using RazorPad.Compilation; namespace RazorPad.Core.Tests @@ -14,33 +15,48 @@ public void TestInitialize() _templateCompiler = new TemplateCompiler(); } + [TestMethod] public void ShouldSupportFunctions() { - const string template = @"@functions { int MyValue = 1; } @MyValue"; + string template = LoadResource("AcceptanceTests.Functions.cshtml"); var results = _templateCompiler.Execute(template); - Assert.AreEqual(results.Trim(), "1"); + string output = LoadResource("AcceptanceTests.Functions.cshtml.output"); + Assert.AreEqual(results.Trim(), output); } - - + + [TestMethod] public void ShouldSupportHelpers() { - const string template = @" -@helper DisplayCurrency(decimal value) { - @value.ToString(""C2"") -} + string template = LoadResource("AcceptanceTests.Helpers.cshtml"); + + var results = _templateCompiler.Execute(template); + + string output = LoadResource("AcceptanceTests.Helpers.cshtml.output"); + Assert.AreEqual(results.Trim(), output); + } + + + [TestMethod] + public void ShouldSupportSimplerendering() + { + string template = LoadResource("AcceptanceTests.SimpleRendering.cshtml"); -@DisplayCurrency(3.4m) -"; - var code = _templateCompiler.GenerateCode(template); var results = _templateCompiler.Execute(template); - Assert.AreEqual(results.Trim(), 3.4m.ToString("C2")); + string output = LoadResource("AcceptanceTests.SimpleRendering.cshtml.output"); + Assert.AreEqual(results.Trim(), output); } + private string LoadResource(string name) + { + var type = GetType(); + using (var reader = new StreamReader(type.Assembly.GetManifestResourceStream(type, name))) + return reader.ReadToEnd(); + } } } diff --git a/RazorPad.Core.Tests/AcceptanceTests.tt b/RazorPad.Core.Tests/AcceptanceTests.tt new file mode 100644 index 0000000..25756be --- /dev/null +++ b/RazorPad.Core.Tests/AcceptanceTests.tt @@ -0,0 +1,60 @@ +<#@ template language="C#" hostspecific="true" #> +<#@ output extension=".cs" #> +<#@ import namespace="System.IO" #> +using System.IO; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using RazorPad.Compilation; + +namespace RazorPad.Core.Tests +{ + [TestClass] + public class AcceptanceTests + { + private TemplateCompiler _templateCompiler; + + [TestInitialize] + public void TestInitialize() + { + _templateCompiler = new TemplateCompiler(); + } + +<# + foreach(var directoryPath in Directory.GetDirectories(Host.ResolvePath(""))) + { + var directoryInfo = new DirectoryInfo(directoryPath); + var directory = directoryInfo.Name; + + if(directory == "bin" || directory == "obj") + continue; + + foreach(var file in directoryInfo.GetFiles("*.cshtml")) + { + string resourceName = "AcceptanceTests." + file.Name.Replace("\\", "."); + string outputResourceName = resourceName + ".output"; + string displayName = Path.GetFileNameWithoutExtension(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(file.Name)); +#> + + [TestMethod] + public void ShouldSupport<#= displayName #>() + { + string template = LoadResource("<#= resourceName #>"); + + var results = _templateCompiler.Execute(template); + + string output = LoadResource("<#= outputResourceName #>"); + Assert.AreEqual(results.Trim(), output); + } + +<# + } + } +#> + + private string LoadResource(string name) + { + var type = GetType(); + using (var reader = new StreamReader(type.Assembly.GetManifestResourceStream(type, name))) + return reader.ReadToEnd(); + } + } +} diff --git a/RazorPad.Core.Tests/AcceptanceTests/Functions.cshtml b/RazorPad.Core.Tests/AcceptanceTests/Functions.cshtml new file mode 100644 index 0000000..7173a45 --- /dev/null +++ b/RazorPad.Core.Tests/AcceptanceTests/Functions.cshtml @@ -0,0 +1,15 @@ +@functions { + + private const int firstNumber = 10; + + int Add(int x, int y) + { + return x + y; + } +} + +@{ + const int secondNumber = 5; +} + +@firstNumber plus @secondNumber equals @Add(firstNumber, secondNumber) \ No newline at end of file diff --git a/RazorPad.Core.Tests/AcceptanceTests/Functions.cshtml.output b/RazorPad.Core.Tests/AcceptanceTests/Functions.cshtml.output new file mode 100644 index 0000000..70afc81 --- /dev/null +++ b/RazorPad.Core.Tests/AcceptanceTests/Functions.cshtml.output @@ -0,0 +1 @@ +10 plus 5 equals 15 \ No newline at end of file diff --git a/RazorPad.Core.Tests/AcceptanceTests/Helpers.cshtml b/RazorPad.Core.Tests/AcceptanceTests/Helpers.cshtml new file mode 100644 index 0000000..b982fb6 --- /dev/null +++ b/RazorPad.Core.Tests/AcceptanceTests/Helpers.cshtml @@ -0,0 +1,5 @@ +@helper DisplayCurrency(decimal value) { + @value.ToString("C2", new System.Globalization.CultureInfo("en-us")) +} + +@DisplayCurrency(3.4m) \ No newline at end of file diff --git a/RazorPad.Core.Tests/AcceptanceTests/Helpers.cshtml.output b/RazorPad.Core.Tests/AcceptanceTests/Helpers.cshtml.output new file mode 100644 index 0000000..6fe4f0a --- /dev/null +++ b/RazorPad.Core.Tests/AcceptanceTests/Helpers.cshtml.output @@ -0,0 +1 @@ +$3.40 \ No newline at end of file diff --git a/RazorPad.Core.Tests/AcceptanceTests/SimpleRendering.cshtml b/RazorPad.Core.Tests/AcceptanceTests/SimpleRendering.cshtml new file mode 100644 index 0000000..d59be12 --- /dev/null +++ b/RazorPad.Core.Tests/AcceptanceTests/SimpleRendering.cshtml @@ -0,0 +1,5 @@ +@{ + var name = "RazorPad"; +} + +

Hello, @name!

\ No newline at end of file diff --git a/RazorPad.Core.Tests/AcceptanceTests/SimpleRendering.cshtml.output b/RazorPad.Core.Tests/AcceptanceTests/SimpleRendering.cshtml.output new file mode 100644 index 0000000..173b6f8 --- /dev/null +++ b/RazorPad.Core.Tests/AcceptanceTests/SimpleRendering.cshtml.output @@ -0,0 +1 @@ +

Hello, RazorPad!

\ No newline at end of file diff --git a/RazorPad.Core.Tests/RazorPad.Core.Tests.csproj b/RazorPad.Core.Tests/RazorPad.Core.Tests.csproj index edd35dc..c6e4e82 100644 --- a/RazorPad.Core.Tests/RazorPad.Core.Tests.csproj +++ b/RazorPad.Core.Tests/RazorPad.Core.Tests.csproj @@ -51,7 +51,15 @@ - + + TextTemplatingFileGenerator + AcceptanceTests1.cs + + + True + True + AcceptanceTests.tt + @@ -60,6 +68,17 @@ RazorPad.Core + + + + + + + + + + + + \ No newline at end of file diff --git a/RazorPad.UI.Tests/RazorPad.UI.Tests.ncrunchproject b/RazorPad.UI.Tests/RazorPad.UI.Tests.ncrunchproject new file mode 100644 index 0000000..50845ce --- /dev/null +++ b/RazorPad.UI.Tests/RazorPad.UI.Tests.ncrunchproject @@ -0,0 +1,16 @@ + + false + false + false + false + false + true + true + false + true + true + 60000 + + + AutoDetect + \ No newline at end of file diff --git a/RazorPad.UI/ModelBuilders/Json/JsonModelBuilder.xaml.cs b/RazorPad.UI/ModelBuilders/Json/JsonModelBuilder.xaml.cs index a47699f..44bbfa0 100644 --- a/RazorPad.UI/ModelBuilders/Json/JsonModelBuilder.xaml.cs +++ b/RazorPad.UI/ModelBuilders/Json/JsonModelBuilder.xaml.cs @@ -1,7 +1,9 @@ -using RazorPad.Providers; +using System.ComponentModel.Composition; +using RazorPad.Providers; namespace RazorPad.UI.Json { + [Export(typeof(ModelBuilder))] public partial class JsonModelBuilder : ModelBuilder { protected JsonModelProvider ViewModel diff --git a/RazorPad.UI/ModelBuilders/ModelBuilderFactory.cs b/RazorPad.UI/ModelBuilders/ModelBuilderFactory.cs new file mode 100644 index 0000000..8d6cbb6 --- /dev/null +++ b/RazorPad.UI/ModelBuilders/ModelBuilderFactory.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; +using System.ComponentModel.Composition; +using System.Linq; +using RazorPad.UI.Json; + +namespace RazorPad.UI.ModelBuilders +{ + public class ModelBuilderFactory + { + private readonly IDictionary _modelBuilders; + + public ModelBuilder DefaultBuilder { get; set; } + + [ImportingConstructor] + public ModelBuilderFactory(IEnumerable modelBuilders = null) + { + DefaultBuilder = new JsonModelBuilder(); + _modelBuilders = (modelBuilders ?? new [] { DefaultBuilder }) + .ToDictionary(x => x.GetType().Name.Replace("ModelBuilder", string.Empty), y => y); + } + + public ModelBuilder Create(IModelProvider modelProvider) + { + var providerName = modelProvider.GetType().Name.Replace("ModelProvider", string.Empty); + + var builder = Create(providerName); + builder.ModelProvider = modelProvider; + + return builder; + } + + public ModelBuilder Create(string providerName) + { + if (_modelBuilders.ContainsKey(providerName)) + return _modelBuilders[providerName]; + + return DefaultBuilder; + } + } +} diff --git a/RazorPad.UI/RazorPad.UI.csproj b/RazorPad.UI/RazorPad.UI.csproj index 29ed23b..295f673 100644 --- a/RazorPad.UI/RazorPad.UI.csproj +++ b/RazorPad.UI/RazorPad.UI.csproj @@ -36,6 +36,7 @@ + @@ -46,6 +47,7 @@ JsonModelBuilder.xaml
+ diff --git a/RazorPad.UI/RazorPad.UI.csproj.DotSettings b/RazorPad.UI/RazorPad.UI.csproj.DotSettings deleted file mode 100644 index 2762a60..0000000 --- a/RazorPad.UI/RazorPad.UI.csproj.DotSettings +++ /dev/null @@ -1,5 +0,0 @@ - - True - True - True - True \ No newline at end of file diff --git a/RazorPad.sln b/RazorPad.sln index d95ba33..4917112 100644 --- a/RazorPad.sln +++ b/RazorPad.sln @@ -9,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.UI.Application", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.UI", "RazorPad.UI\RazorPad.UI.csproj", "{147DFCE8-A33F-42F4-A8F1-7E999C02D1DC}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.UI.Tests", "RazorPad.UI.Tests\RazorPad.UI.Tests.csproj", "{BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}" +EndProject Global GlobalSection(TestCaseManagementSettings) = postSolution CategoryFile = RazorPad.vsmdi @@ -62,6 +64,16 @@ Global {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Release|Mixed Platforms.Build.0 = Release|x86 {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Release|x86.ActiveCfg = Release|x86 {A635596E-2215-4FEF-BC10-92F63EAAAA97}.Release|x86.Build.0 = Release|x86 + {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Debug|x86.ActiveCfg = Debug|Any CPU + {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Release|Any CPU.Build.0 = Release|Any CPU + {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From e7fb6a60f14b91d33bc5cd6c75a20360c823271f Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Mon, 23 Apr 2012 12:30:13 -0400 Subject: [PATCH 27/88] Final working version of the Model Provider/Builder implementation... albeit a wicked crazy hack job. Ouch. --- .../ViewModels/MainWindowViewModel.cs | 4 +- .../RazorTemplateEditorViewModel.cs | 23 +++++---- RazorPad.UI.Application/Views/Sidebar.xaml | 2 +- .../ModelBuilders/ModelBuilderFactoryTests.cs | 15 ++---- RazorPad.UI.Tests/RazorPad.UI.Tests.csproj | 1 + .../ModelBuilders/IModelBuilderBuilder.cs | 7 +++ .../Json/JsonModelBuilder.xaml.cs | 15 ++++-- .../Json/JsonModelBuilderViewModel.cs | 23 +++++++++ RazorPad.UI/ModelBuilders/ModelBuilder.cs | 5 -- .../ModelBuilders/ModelBuilderFactory.cs | 30 ++++++------ .../ModelBuilders/ModelBuilderViewModel.cs | 48 +++++++++++++++++++ RazorPad.UI/RazorPad.UI.csproj | 3 ++ 12 files changed, 125 insertions(+), 51 deletions(-) create mode 100644 RazorPad.UI/ModelBuilders/IModelBuilderBuilder.cs create mode 100644 RazorPad.UI/ModelBuilders/Json/JsonModelBuilderViewModel.cs create mode 100644 RazorPad.UI/ModelBuilders/ModelBuilderViewModel.cs diff --git a/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs b/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs index 0793648..14a7e4b 100644 --- a/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs @@ -106,9 +106,7 @@ internal RazorTemplateEditorViewModel AddNewTemplateEditor(string filename = nul return loadedTemplate; } - var templateEditor = new RazorTemplateEditorViewModel(filename) { - ModelBuilder = new JsonModelBuilder(), - }; + var templateEditor = new RazorTemplateEditorViewModel(filename); templateEditor.OnStatusUpdated += (sender, args) => StatusMessage = args.Message; diff --git a/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs index 93ffb97..3a1d1cc 100644 --- a/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs @@ -43,14 +43,13 @@ public TemplateCompilationParameters TemplateCompilationParameters public ModelBuilder ModelBuilder { - get { return _modelBuilder; } + get { return _modelBuilder ?? (ModelBuilder = _modelBuilderFactory.Create(_modelProvider)); } set { - _modelBuilder = value; + if (_modelBuilder == value) + return; - if (value != null && ModelProvider == null && _modelBuilder.ModelProvider != null) - ModelProvider = _modelBuilder.ModelProvider; - + _modelBuilder = value; OnPropertyChanged("ModelBuilder"); } } @@ -67,15 +66,15 @@ public IModelProvider ModelProvider if (_modelProvider != null) _modelProvider.ModelChanged -= TriggerRefresh; - if (value != null) - value.ModelChanged += TriggerRefresh; - - if(ModelBuilder != null) - ModelBuilder.ModelProvider = value; - _modelProvider = value; + if (_modelProvider != null) + _modelProvider.ModelChanged += TriggerRefresh; + OnPropertyChanged("ModelProvider"); + + _modelBuilder = null; + OnPropertyChanged("ModelBuilder"); } } private IModelProvider _modelProvider; @@ -288,8 +287,8 @@ public void LoadFromFile(string fileName) { var document = _documentLoader.Load(fileName); Filename = document.Filename; - ModelBuilder = _modelBuilderFactory.Create(document.ModelProvider); TemplateText = document.Template; + ModelProvider = document.ModelProvider; ModelProvider.TriggerModelChanged(); } catch (Exception ex) diff --git a/RazorPad.UI.Application/Views/Sidebar.xaml b/RazorPad.UI.Application/Views/Sidebar.xaml index 82dac09..00644ea 100644 --- a/RazorPad.UI.Application/Views/Sidebar.xaml +++ b/RazorPad.UI.Application/Views/Sidebar.xaml @@ -6,6 +6,6 @@ mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300" Width="300" Padding="5 0"> - + diff --git a/RazorPad.UI.Tests/ModelBuilders/ModelBuilderFactoryTests.cs b/RazorPad.UI.Tests/ModelBuilders/ModelBuilderFactoryTests.cs index 35613a6..37e34f3 100644 --- a/RazorPad.UI.Tests/ModelBuilders/ModelBuilderFactoryTests.cs +++ b/RazorPad.UI.Tests/ModelBuilders/ModelBuilderFactoryTests.cs @@ -1,5 +1,6 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using RazorPad.Providers; +using RazorPad.UI.Json; namespace RazorPad.UI.ModelBuilders { @@ -11,14 +12,7 @@ public class ModelBuilderFactoryTests [TestInitialize] public void TestInitialize() { - _factory = new ModelBuilderFactory(new[] {new Json.JsonModelBuilder()}); - } - - [TestMethod] - public void ShouldInstantiateModelBuilderByNameExcludingModelBuilderSuffix() - { - var builder = _factory.Create("Json"); - Assert.IsInstanceOfType(builder, typeof(Json.JsonModelBuilder)); + _factory = new ModelBuilderFactory(new[] {new JsonModelBuilderBuilder()}); } [TestMethod] @@ -26,7 +20,7 @@ public void ShouldInstantiateModelBuilderByModelProviderOfSameNameExcludingModel { var jsonModelProvider = new JsonModelProvider(); var builder = _factory.Create(jsonModelProvider); - Assert.IsInstanceOfType(builder, typeof(Json.JsonModelBuilder)); + Assert.IsInstanceOfType(builder, typeof(JsonModelBuilder)); } [TestMethod] @@ -34,7 +28,8 @@ public void ShouldPopulateModelProviderPropertyWhenCreateIsCalledWithModelProvid { var jsonModelProvider = new JsonModelProvider(); var builder = _factory.Create(jsonModelProvider); - Assert.AreSame(jsonModelProvider, builder.ModelProvider); + dynamic dataContext = builder.DataContext; + Assert.AreSame(jsonModelProvider, dataContext.ModelProvider); } } } diff --git a/RazorPad.UI.Tests/RazorPad.UI.Tests.csproj b/RazorPad.UI.Tests/RazorPad.UI.Tests.csproj index 7c81014..5570632 100644 --- a/RazorPad.UI.Tests/RazorPad.UI.Tests.csproj +++ b/RazorPad.UI.Tests/RazorPad.UI.Tests.csproj @@ -31,6 +31,7 @@ 4 + diff --git a/RazorPad.UI/ModelBuilders/IModelBuilderBuilder.cs b/RazorPad.UI/ModelBuilders/IModelBuilderBuilder.cs new file mode 100644 index 0000000..f84886e --- /dev/null +++ b/RazorPad.UI/ModelBuilders/IModelBuilderBuilder.cs @@ -0,0 +1,7 @@ +namespace RazorPad.UI +{ + public interface IModelBuilderBuilder + { + ModelBuilder Build(IModelProvider provider = null); + } +} \ No newline at end of file diff --git a/RazorPad.UI/ModelBuilders/Json/JsonModelBuilder.xaml.cs b/RazorPad.UI/ModelBuilders/Json/JsonModelBuilder.xaml.cs index 44bbfa0..d5a55d0 100644 --- a/RazorPad.UI/ModelBuilders/Json/JsonModelBuilder.xaml.cs +++ b/RazorPad.UI/ModelBuilders/Json/JsonModelBuilder.xaml.cs @@ -1,20 +1,25 @@ using System.ComponentModel.Composition; using RazorPad.Providers; +using RazorPad.UI.ModelBuilders.Json; namespace RazorPad.UI.Json { [Export(typeof(ModelBuilder))] public partial class JsonModelBuilder : ModelBuilder { - protected JsonModelProvider ViewModel + public JsonModelBuilder() { - get { return (JsonModelProvider)ModelProvider; } + InitializeComponent(); } + } - public JsonModelBuilder() + public class JsonModelBuilderBuilder : IModelBuilderBuilder + { + public ModelBuilder Build(IModelProvider provider = null) { - InitializeComponent(); - ModelProvider = new JsonModelProvider(); + var modelProvider = provider as JsonModelProvider; + var viewModel = new JsonModelBuilderViewModel(modelProvider); + return new JsonModelBuilder {DataContext = viewModel}; } } } diff --git a/RazorPad.UI/ModelBuilders/Json/JsonModelBuilderViewModel.cs b/RazorPad.UI/ModelBuilders/Json/JsonModelBuilderViewModel.cs new file mode 100644 index 0000000..5a5404f --- /dev/null +++ b/RazorPad.UI/ModelBuilders/Json/JsonModelBuilderViewModel.cs @@ -0,0 +1,23 @@ +using RazorPad.Providers; + +namespace RazorPad.UI.ModelBuilders.Json +{ + public class JsonModelBuilderViewModel : ModelBuilderViewModel + { + public string Json + { + get { return ModelProvider.Json; } + set { ModelProvider.Json = value; } + } + + public JsonModelBuilderViewModel(JsonModelProvider modelProvider = null) + : base(modelProvider ?? new JsonModelProvider()) + { + } + + protected override void OnModelChanged() + { + OnPropertyChanged("Json"); + } + } +} diff --git a/RazorPad.UI/ModelBuilders/ModelBuilder.cs b/RazorPad.UI/ModelBuilders/ModelBuilder.cs index 18033c2..581a63f 100644 --- a/RazorPad.UI/ModelBuilders/ModelBuilder.cs +++ b/RazorPad.UI/ModelBuilders/ModelBuilder.cs @@ -4,10 +4,5 @@ namespace RazorPad.UI { public abstract class ModelBuilder : UserControl { - public virtual IModelProvider ModelProvider - { - get { return (IModelProvider)DataContext; } - set { DataContext = value; } - } } } \ No newline at end of file diff --git a/RazorPad.UI/ModelBuilders/ModelBuilderFactory.cs b/RazorPad.UI/ModelBuilders/ModelBuilderFactory.cs index 8d6cbb6..15cf7c1 100644 --- a/RazorPad.UI/ModelBuilders/ModelBuilderFactory.cs +++ b/RazorPad.UI/ModelBuilders/ModelBuilderFactory.cs @@ -7,34 +7,34 @@ namespace RazorPad.UI.ModelBuilders { public class ModelBuilderFactory { - private readonly IDictionary _modelBuilders; + private readonly IDictionary _modelBuilders; + private readonly IModelBuilderBuilder DefaultBuilder; - public ModelBuilder DefaultBuilder { get; set; } [ImportingConstructor] - public ModelBuilderFactory(IEnumerable modelBuilders = null) + public ModelBuilderFactory(IEnumerable modelBuilders = null) { - DefaultBuilder = new JsonModelBuilder(); + DefaultBuilder = new JsonModelBuilderBuilder(); _modelBuilders = (modelBuilders ?? new [] { DefaultBuilder }) .ToDictionary(x => x.GetType().Name.Replace("ModelBuilder", string.Empty), y => y); } public ModelBuilder Create(IModelProvider modelProvider) { - var providerName = modelProvider.GetType().Name.Replace("ModelProvider", string.Empty); - - var builder = Create(providerName); - builder.ModelProvider = modelProvider; + IModelBuilderBuilder builder = null; - return builder; - } + if (modelProvider != null) + { + var providerName = modelProvider.GetType().Name.Replace("ModelProvider", string.Empty); - public ModelBuilder Create(string providerName) - { - if (_modelBuilders.ContainsKey(providerName)) - return _modelBuilders[providerName]; + if (_modelBuilders.ContainsKey(providerName)) + builder = _modelBuilders[providerName]; + } + + if (builder == null) + builder = DefaultBuilder; - return DefaultBuilder; + return builder.Build(modelProvider); } } } diff --git a/RazorPad.UI/ModelBuilders/ModelBuilderViewModel.cs b/RazorPad.UI/ModelBuilders/ModelBuilderViewModel.cs new file mode 100644 index 0000000..8b05726 --- /dev/null +++ b/RazorPad.UI/ModelBuilders/ModelBuilderViewModel.cs @@ -0,0 +1,48 @@ +using System.Diagnostics.Contracts; + +namespace RazorPad.UI.ModelBuilders +{ + public abstract class ModelBuilderViewModel : ViewModelBase + { + public IModelProvider ModelProvider + { + get { return _modelProvider; } + set + { + if (_modelProvider == value) + return; + + _modelProvider = value; + OnPropertyChanged("ModelProvider"); + } + } + private IModelProvider _modelProvider; + + protected ModelBuilderViewModel(IModelProvider modelProvider) + { + Contract.Requires(modelProvider != null); + + _modelProvider = modelProvider; + _modelProvider.ModelChanged += (sender, args) => OnModelChanged(); + } + + protected virtual void OnModelChanged() + { + } + } + + public abstract class ModelBuilderViewModel : ModelBuilderViewModel + where TModelProvider : class, IModelProvider + { + public new TModelProvider ModelProvider + { + get { return (TModelProvider)base.ModelProvider; } + set { base.ModelProvider = value; } + } + + protected ModelBuilderViewModel(TModelProvider modelProvider) + : base(modelProvider) + { + } + } +} \ No newline at end of file diff --git a/RazorPad.UI/RazorPad.UI.csproj b/RazorPad.UI/RazorPad.UI.csproj index 295f673..dd7c434 100644 --- a/RazorPad.UI/RazorPad.UI.csproj +++ b/RazorPad.UI/RazorPad.UI.csproj @@ -43,11 +43,14 @@ + + JsonModelBuilder.xaml + From 4cc8e756784fe310f9fbcad1b9b03ac5f66ac2e0 Mon Sep 17 00:00:00 2001 From: mrchief Date: Mon, 23 Apr 2012 16:26:01 -0400 Subject: [PATCH 28/88] Cleaning up AvalonDock refs --- .../RazorPad.UI.Application.csproj | 14 ---- RazorPad.UI.Application/Views/MainDock.xaml | 75 ------------------ .../Views/MainDock.xaml.cs | 78 ------------------- RazorPad.UI.Application/packages.config | 1 - 4 files changed, 168 deletions(-) delete mode 100644 RazorPad.UI.Application/Views/MainDock.xaml delete mode 100644 RazorPad.UI.Application/Views/MainDock.xaml.cs diff --git a/RazorPad.UI.Application/RazorPad.UI.Application.csproj b/RazorPad.UI.Application/RazorPad.UI.Application.csproj index e7dd911..5b7a1f1 100644 --- a/RazorPad.UI.Application/RazorPad.UI.Application.csproj +++ b/RazorPad.UI.Application/RazorPad.UI.Application.csproj @@ -45,13 +45,6 @@ true - - ..\packages\AvalonDock.Unofficial.1.3.1\lib\net40\AvalonDock.dll - - - ..\packages\AvalonDock.Unofficial.1.3.1\lib\net40\AvalonDock.Themes.dll - True - @@ -70,9 +63,6 @@ MSBuild:Compile Designer - - MainDock.xaml - MainWindow.xaml @@ -81,10 +71,6 @@ - - Designer - MSBuild:Compile - Designer MSBuild:Compile diff --git a/RazorPad.UI.Application/Views/MainDock.xaml b/RazorPad.UI.Application/Views/MainDock.xaml deleted file mode 100644 index 53ded46..0000000 --- a/RazorPad.UI.Application/Views/MainDock.xaml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RazorPad.UI.Application/Views/MainDock.xaml.cs b/RazorPad.UI.Application/Views/MainDock.xaml.cs deleted file mode 100644 index cbd7c77..0000000 --- a/RazorPad.UI.Application/Views/MainDock.xaml.cs +++ /dev/null @@ -1,78 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using Microsoft.Win32; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.IO; -using RazorPad.ViewModels; - -namespace RazorPad.Views -{ - /// - /// Interaction logic for MainDock.xaml - /// - public partial class MainDock : Window - { - protected MainWindowViewModel ViewModel - { - get { return (MainWindowViewModel)DataContext; } - } - - public MainDock() - { - InitializeComponent(); - - ViewModel.GetSaveAsFilename += GetSaveAsFilename; - } - - private static string GetSaveAsFilename(RazorTemplateEditorViewModel template) - { - SaveFileDialog dlg = new SaveFileDialog(); - - string currentFilename = template.Filename; - - if (!string.IsNullOrWhiteSpace(currentFilename)) - dlg.InitialDirectory = Path.GetDirectoryName(currentFilename); - - if (dlg.ShowDialog().GetValueOrDefault()) - return dlg.FileName; - else - return null; - } - - private void OpenFile_Click(object sender, RoutedEventArgs e) - { - // Create OpenFileDialog - OpenFileDialog dlg = new OpenFileDialog(); - - // Set filter for file extension and default file extension - dlg.DefaultExt = ".cshtml"; - dlg.Filter = "C# Razor Documents|*.cshtml"; - dlg.Filter = "VB Razor Documents|*.vbhtml"; - dlg.Filter = "All Files|*.*"; - - if (dlg.ShowDialog().GetValueOrDefault()) - { - ViewModel.AddNewTemplateEditor(dlg.FileName); - } - } - - private void SaveFile_Click(object sender, RoutedEventArgs e) - { - ViewModel.CurrentTemplate.SaveToFile(); - } - - private void SaveAsFile_Click(object sender, RoutedEventArgs e) - { - var filename = GetSaveAsFilename(ViewModel.CurrentTemplate); - ViewModel.CurrentTemplate.SaveToFile(filename); - } - } -} diff --git a/RazorPad.UI.Application/packages.config b/RazorPad.UI.Application/packages.config index 720457a..037b768 100644 --- a/RazorPad.UI.Application/packages.config +++ b/RazorPad.UI.Application/packages.config @@ -1,4 +1,3 @@  - \ No newline at end of file From bcc92964a43788d2f2d0b6a3f2beb98bed51e813 Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Mon, 23 Apr 2012 17:00:44 -0400 Subject: [PATCH 29/88] Cleaning up the RazorTemplateViewModel --- .../ViewModels/MainWindowViewModel.cs | 58 +++++++-- .../RazorTemplateEditorViewModel.cs | 119 ++++-------------- .../Views/MainDock.xaml.cs | 19 +-- .../Views/MainWindow.xaml.cs | 4 +- 4 files changed, 77 insertions(+), 123 deletions(-) diff --git a/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs b/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs index 14a7e4b..ddf6850 100644 --- a/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/MainWindowViewModel.cs @@ -1,15 +1,18 @@ using System; using System.Collections.ObjectModel; +using System.IO; using System.Linq; using System.Windows.Input; +using RazorPad.Persistence; using RazorPad.Providers; -using RazorPad.UI.Json; using RazorPad.UI.Wpf; namespace RazorPad.ViewModels { public class MainWindowViewModel : CommandSink { + private readonly RazorDocumentLoader _documentLoader; + public Func GetSaveAsFilename { get { return _getSaveAsFilename; } @@ -55,6 +58,7 @@ public string StatusMessage public MainWindowViewModel() { + _documentLoader = new RazorDocumentLoader(); InitializeTemplateEditors(); RegisterCommands(); } @@ -63,7 +67,7 @@ private void RegisterCommands() { RegisterCommand(ApplicationCommands.Save, x => CurrentTemplate != null && CurrentTemplate.CanSaveToCurrentlyLoadedFile, - x => CurrentTemplate.SaveToFile()); + x => SaveCurrentTemplate()); RegisterCommand(ApplicationCommands.SaveAs, x => CurrentTemplate != null && CurrentTemplate.CanSaveAsNewFilename, @@ -82,11 +86,13 @@ protected bool CanAddNewTemplate private void InitializeTemplateEditors() { TemplateEditors = new ObservableCollection(); - - var defaultDocument = AddNewTemplateEditor(); - defaultDocument.TemplateText = "

Welcome to @Model.Name!

\r\n
Start typing some text to get started.
\r\n
Or, try adding a property called 'Message' and see what happens...
\r\n\r\n

@Model.Message

"; - defaultDocument.ModelProvider = new JsonModelProvider(json: "{\r\n\tName: 'RazorPad'\r\n}"); - defaultDocument.Execute(); + + var defaultDocument = new RazorDocument { + Template = "

Welcome to @Model.Name!

\r\n
Start typing some text to get started.
\r\n
Or, try adding a property called 'Message' and see what happens...
\r\n\r\n

@Model.Message

", + ModelProvider = new JsonModelProvider(json: "{\r\n\tName: 'RazorPad'\r\n}") + }; + + AddNewTemplateEditor(new RazorTemplateEditorViewModel(defaultDocument)).Execute(); } internal RazorTemplateEditorViewModel AddNewTemplateEditor(string filename = null, bool current = true) @@ -98,24 +104,54 @@ internal RazorTemplateEditorViewModel AddNewTemplateEditor(string filename = nul if (loadedTemplate != null) { - loadedTemplate.LoadFromFile(filename); - if (current) CurrentTemplate = loadedTemplate; return loadedTemplate; } - var templateEditor = new RazorTemplateEditorViewModel(filename); - templateEditor.OnStatusUpdated += (sender, args) => StatusMessage = args.Message; + var document = _documentLoader.Load(filename); + return AddNewTemplateEditor(new RazorTemplateEditorViewModel(document)); + } + + internal RazorTemplateEditorViewModel AddNewTemplateEditor(RazorTemplateEditorViewModel templateEditor, bool current = true) + { + templateEditor.OnStatusUpdated += (sender, args) => StatusMessage = args.Message; TemplateEditors.Add(templateEditor); if (current) CurrentTemplate = templateEditor; + templateEditor.Execute(); + return templateEditor; } + + public void SaveCurrentTemplate(string fileName = null) + { + var template = CurrentTemplate; + var targetFilename = fileName ?? template.Filename; + + try + { + if (string.IsNullOrWhiteSpace(targetFilename)) + throw new ApplicationException("No filename specified!"); + + if (targetFilename.EndsWith(".razorpad", StringComparison.OrdinalIgnoreCase)) + throw new NotImplementedException("Saving .razorpad documents has not been implemented yet -- coming soon!"); + + template.Filename = targetFilename; + + using (var writer = new StreamWriter(File.OpenWrite(template.Filename))) + writer.Write(template.TemplateText); + } + catch (Exception ex) + { + StatusMessage = ex.Message; + } + } + } } diff --git a/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs index 3a1d1cc..0a98fa2 100644 --- a/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs @@ -5,9 +5,7 @@ using System.Web.Razor; using RazorPad.Compilation; using RazorPad.Framework; -using RazorPad.Persistence; using RazorPad.UI; -using RazorPad.UI.Json; using RazorPad.UI.ModelBuilders; namespace RazorPad.ViewModels @@ -15,7 +13,6 @@ namespace RazorPad.ViewModels public class RazorTemplateEditorViewModel : ViewModelBase { private readonly ModelBuilderFactory _modelBuilderFactory; - private readonly RazorDocumentLoader _documentLoader; public ITemplateCompiler TemplateCompiler { get; set; } @@ -32,52 +29,34 @@ public string DisplayName } } - public TemplateCompilationParameters TemplateCompilationParameters + public RazorDocument Document { - get + get { return _document; } + private set { - return TemplateCompiler == null ? null : TemplateCompiler.CompilationParameters; + _document = value; + + if (_document != null && _document.ModelProvider != null) + { + _document.ModelProvider.ModelChanged += TriggerRefresh; + } } } + private RazorDocument _document; - - public ModelBuilder ModelBuilder + public TemplateCompilationParameters TemplateCompilationParameters { - get { return _modelBuilder ?? (ModelBuilder = _modelBuilderFactory.Create(_modelProvider)); } - set + get { - if (_modelBuilder == value) - return; - - _modelBuilder = value; - OnPropertyChanged("ModelBuilder"); + return TemplateCompiler == null ? null : TemplateCompiler.CompilationParameters; } } - private ModelBuilder _modelBuilder; - public IModelProvider ModelProvider - { - get { return _modelProvider; } - set - { - if (_modelProvider == value) - return; - - if (_modelProvider != null) - _modelProvider.ModelChanged -= TriggerRefresh; - - _modelProvider = value; - - if (_modelProvider != null) - _modelProvider.ModelChanged += TriggerRefresh; - OnPropertyChanged("ModelProvider"); - - _modelBuilder = null; - OnPropertyChanged("ModelBuilder"); - } + public ModelBuilder ModelBuilder + { + get { return _modelBuilderFactory.Create(Document.ModelProvider); } } - private IModelProvider _modelProvider; public InMemoryTextWriter Messages { @@ -123,17 +102,16 @@ public string ExecutedTemplateOutput public string Filename { - get { return _filename; } + get { return Document.Filename; } set { - if (_filename == value) + if (Document.Filename == value) return; - _filename = value; + Document.Filename = value; OnPropertyChanged("Filename"); } } - private string _filename; public string GeneratedTemplateCode { @@ -165,18 +143,17 @@ public GeneratorResults GeneratorResults public string TemplateText { - get { return _templateText; } + get { return Document.Template; } set { - if (_templateText == value) + if (Document.Template == value) return; - _templateText = value; + Document.Template = value; OnPropertyChanged("TemplateText"); Refresh(); } } - private string _templateText; public bool CanSaveToCurrentlyLoadedFile { @@ -189,18 +166,13 @@ public bool CanSaveAsNewFilename } - public RazorTemplateEditorViewModel(string filename = null, RazorDocumentLoader documentLoader = null, ModelBuilderFactory modelBuilderFactory = null) + public RazorTemplateEditorViewModel(RazorDocument document = null, ModelBuilderFactory modelBuilderFactory = null) { _modelBuilderFactory = modelBuilderFactory ?? new ModelBuilderFactory(); - _documentLoader = documentLoader ?? new RazorDocumentLoader(); + Document = document ?? new RazorDocument(); Messages = new InMemoryTextWriter(); TemplateCompiler = new TemplateCompiler(); - - if(!string.IsNullOrWhiteSpace(filename)) - LoadFromFile(filename); - - Execute(); } @@ -256,7 +228,7 @@ public void Execute() try { Log("Retrieving model..."); - var model = ModelProvider.GetModel(); + var model = Document.GetModel(); Log("Executing template..."); ExecutedTemplateOutput = TemplateCompiler.Execute(TemplateText, model); @@ -281,47 +253,6 @@ private void Log(Exception ex) Messages.WriteLine("[{0}] {1}\r\n{2}", DateTime.Now.ToShortTimeString(), ex.Message, ex.StackTrace); } - public void LoadFromFile(string fileName) - { - try - { - var document = _documentLoader.Load(fileName); - Filename = document.Filename; - TemplateText = document.Template; - ModelProvider = document.ModelProvider; - ModelProvider.TriggerModelChanged(); - } - catch (Exception ex) - { - Log(ex); - UpdateStatus(ex.Message); - } - } - - public void SaveToFile(string fileName = null) - { - var targetFilename = fileName ?? Filename; - - try - { - if (string.IsNullOrWhiteSpace(targetFilename)) - throw new ApplicationException("No filename specified!"); - - if (targetFilename.EndsWith(".razorpad", StringComparison.OrdinalIgnoreCase)) - throw new NotImplementedException("Saving .razorpad documents has not been implemented yet -- coming soon!"); - - Filename = targetFilename; - - using (var writer = new StreamWriter(File.OpenWrite(Filename))) - writer.Write(TemplateText); - } - catch (Exception ex) - { - Log(ex); - UpdateStatus(ex.Message); - } - } - private void UpdateStatus(string statusMessage) { OnStatusUpdated.SafeInvoke(statusMessage); diff --git a/RazorPad.UI.Application/Views/MainDock.xaml.cs b/RazorPad.UI.Application/Views/MainDock.xaml.cs index cbd7c77..f8d1791 100644 --- a/RazorPad.UI.Application/Views/MainDock.xaml.cs +++ b/RazorPad.UI.Application/Views/MainDock.xaml.cs @@ -1,23 +1,10 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; +using System.Windows; using Microsoft.Win32; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; using System.IO; using RazorPad.ViewModels; namespace RazorPad.Views { - /// - /// Interaction logic for MainDock.xaml - /// public partial class MainDock : Window { protected MainWindowViewModel ViewModel @@ -66,13 +53,13 @@ private void OpenFile_Click(object sender, RoutedEventArgs e) private void SaveFile_Click(object sender, RoutedEventArgs e) { - ViewModel.CurrentTemplate.SaveToFile(); + ViewModel.SaveCurrentTemplate(); } private void SaveAsFile_Click(object sender, RoutedEventArgs e) { var filename = GetSaveAsFilename(ViewModel.CurrentTemplate); - ViewModel.CurrentTemplate.SaveToFile(filename); + ViewModel.SaveCurrentTemplate(filename); } } } diff --git a/RazorPad.UI.Application/Views/MainWindow.xaml.cs b/RazorPad.UI.Application/Views/MainWindow.xaml.cs index 39c1782..0ff637b 100644 --- a/RazorPad.UI.Application/Views/MainWindow.xaml.cs +++ b/RazorPad.UI.Application/Views/MainWindow.xaml.cs @@ -56,13 +56,13 @@ private void OpenFile_Click(object sender, RoutedEventArgs e) private void SaveFile_Click(object sender, RoutedEventArgs e) { - ViewModel.CurrentTemplate.SaveToFile(); + ViewModel.SaveCurrentTemplate(); } private void SaveAsFile_Click(object sender, RoutedEventArgs e) { var filename = GetSaveAsFilename(ViewModel.CurrentTemplate); - ViewModel.CurrentTemplate.SaveToFile(filename); + ViewModel.SaveCurrentTemplate(filename); } } } From 3c22ff4e791433e546f79ed45ec1f90dd1bf11e9 Mon Sep 17 00:00:00 2001 From: mrchief Date: Mon, 23 Apr 2012 17:02:01 -0400 Subject: [PATCH 30/88] Adding screenshot to serve as reference --- assets/Add Ref Dialogs.png | Bin 0 -> 122558 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/Add Ref Dialogs.png diff --git a/assets/Add Ref Dialogs.png b/assets/Add Ref Dialogs.png new file mode 100644 index 0000000000000000000000000000000000000000..52186c7f2273c6de55d21754fa51eed81c781898 GIT binary patch literal 122558 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
c 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 xqYa!8cL^Fw;k~(*2{)0soYBJ}7L!Mx Date: Tue, 24 Apr 2012 12:54:21 -0400 Subject: [PATCH 31/88] UI For adding references complete (needs finishing touches) --- .../RazorPad.UI.Application.csproj | 23 ++++ .../ViewModels/Reference.cs | 27 +++++ .../ViewModels/ReferencesDialogWindow.xaml | 67 +++++++++++ .../ViewModels/ReferencesDialogWindow.xaml.cs | 31 +++++ .../SearchableReferencesViewModel.cs | 42 +++++++ .../Views/AssemblyReferences.xaml | 37 ++++++ .../Views/AssemblyReferences.xaml.cs | 113 ++++++++++++++++++ .../Views/ListViewFilterText.xaml | 46 +++++++ .../Views/ListViewFilterText.xaml.cs | 72 +++++++++++ RazorPad.UI.Application/Views/MainWindow.xaml | 3 + .../Views/MainWindow.xaml.cs | 15 +++ 11 files changed, 476 insertions(+) create mode 100644 RazorPad.UI.Application/ViewModels/Reference.cs create mode 100644 RazorPad.UI.Application/ViewModels/ReferencesDialogWindow.xaml create mode 100644 RazorPad.UI.Application/ViewModels/ReferencesDialogWindow.xaml.cs create mode 100644 RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs create mode 100644 RazorPad.UI.Application/Views/AssemblyReferences.xaml create mode 100644 RazorPad.UI.Application/Views/AssemblyReferences.xaml.cs create mode 100644 RazorPad.UI.Application/Views/ListViewFilterText.xaml create mode 100644 RazorPad.UI.Application/Views/ListViewFilterText.xaml.cs diff --git a/RazorPad.UI.Application/RazorPad.UI.Application.csproj b/RazorPad.UI.Application/RazorPad.UI.Application.csproj index 5b7a1f1..1c85d19 100644 --- a/RazorPad.UI.Application/RazorPad.UI.Application.csproj +++ b/RazorPad.UI.Application/RazorPad.UI.Application.csproj @@ -63,6 +63,17 @@ MSBuild:Compile Designer + + + ReferencesDialogWindow.xaml + + + + AssemblyReferences.xaml + + + ListViewFilterText.xaml + MainWindow.xaml @@ -71,6 +82,18 @@ + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + Designer MSBuild:Compile diff --git a/RazorPad.UI.Application/ViewModels/Reference.cs b/RazorPad.UI.Application/ViewModels/Reference.cs new file mode 100644 index 0000000..58a5e49 --- /dev/null +++ b/RazorPad.UI.Application/ViewModels/Reference.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace RazorPad.ViewModels +{ + public class Reference + { + public string Name { get; set; } + public string Location { get; set; } + public string Version { get; set; } + public string Culture { get; set; } + public string PublicKeyToken { get; set; } + public string ProcessorArchitecture { get; set; } + + public Reference(string name) + { + Name = name; + } + + public Reference() + : this("") { } + + + } +} diff --git a/RazorPad.UI.Application/ViewModels/ReferencesDialogWindow.xaml b/RazorPad.UI.Application/ViewModels/ReferencesDialogWindow.xaml new file mode 100644 index 0000000..c58fd18 --- /dev/null +++ b/RazorPad.UI.Application/ViewModels/ReferencesDialogWindow.xaml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/RazorPad.UI.Application/ViewModels/ReferencesDialogWindow.xaml.cs b/RazorPad.UI.Application/ViewModels/ReferencesDialogWindow.xaml.cs new file mode 100644 index 0000000..32b06d7 --- /dev/null +++ b/RazorPad.UI.Application/ViewModels/ReferencesDialogWindow.xaml.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace RazorPad.ViewModels +{ + ///

+ /// Interaction logic for ReferencesDialogWindow.xaml + /// + public partial class ReferencesDialogWindow : Window + { + public ReferencesDialogWindow() + { + InitializeComponent(); + } + + private void okButton_Click(object sender, RoutedEventArgs e) + { + // TODO : Add reference + } + } +} diff --git a/RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs b/RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs new file mode 100644 index 0000000..87653e6 --- /dev/null +++ b/RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Windows.Data; +using RazorPad.UI; + +namespace RazorPad.ViewModels +{ + public class SearchableReferencesViewModel : ViewModelBase + { + private readonly ObservableCollection _recentReferences; + private Reference _selectedReference; + + public SearchableReferencesViewModel() + { + _recentReferences = GetRecentReferences(); + } + + private ObservableCollection GetRecentReferences() + { + return new ObservableCollection { + new Reference("System") { Version = "4.0.0.0"}, + new Reference("System.Web") { Version = "4.0.0.0"}, + new Reference("Microsoft.Design") { Version = "3.5.0.0"} + }; + } + + public ObservableCollection RecentReferences + { + get { return _recentReferences; } + } + + public Reference SelectedReference + { + get { return _selectedReference ?? _recentReferences.First(); } + set { _selectedReference = value; } + } + } +} diff --git a/RazorPad.UI.Application/Views/AssemblyReferences.xaml b/RazorPad.UI.Application/Views/AssemblyReferences.xaml new file mode 100644 index 0000000..07e80c5 --- /dev/null +++ b/RazorPad.UI.Application/Views/AssemblyReferences.xaml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/RazorPad.UI.Application/Views/AssemblyReferences.xaml.cs b/RazorPad.UI.Application/Views/AssemblyReferences.xaml.cs new file mode 100644 index 0000000..6b168be --- /dev/null +++ b/RazorPad.UI.Application/Views/AssemblyReferences.xaml.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using RazorPad.ViewModels; + +namespace RazorPad.Views +{ + /// + /// Interaction logic for AssemblyReferences.xaml + /// + public partial class AssemblyReferences : UserControl + { + // parses the filter string + private Filter _filter = new Filter(); + + private class Filter + { + // main filer text + private string _text; + + /// + /// Indicates if the filter is empty. + /// + public bool IsEmpty + { + get { return string.IsNullOrEmpty(_text); } + } + + /// + /// Parse the filter text, determines if doing an operation, + /// for example 'red > 100'. + /// + public void Parse(string text) + { + // store main text + _text = text.Trim().ToLower(); + + // enhancement: add regex filtering support + } + + /// + /// Return true if the Reference matches the filter. + /// + public bool Matches(Reference item) + { + // check name + return item.Name.ToLower().Contains(_text); + } + } + + public AssemblyReferences() + { + InitializeComponent(); + UpdateResult(); + FilterText.Focus(); + } + + private void FilterTextTextChanged(object sender, TextChangedEventArgs e) + { + FilterList(); + UpdateResult(); + } + + /// + /// Filter the list synchronously. Alternately, you can use Dispatcher + /// to filter the list in the background, or BackgroundWorker to filter + /// the list using a separate thread. + /// + private void FilterList() + { + // parse the filter string once, the _filter object + // is used later in the FilterCallback method + _filter.Parse(FilterText.Text); + + // get the data the ListView is bound to + var view = CollectionViewSource.GetDefaultView(ReferencesListView.ItemsSource); + + // clear the list if the filter is empty, otherwise filter the list + view.Filter = (_filter.IsEmpty) ? null : + view.Filter = FilterCallback; + } + + /// + /// Called for each item in the list. Return true if it + /// should be in the list, or false to not be in the list. + /// + private bool FilterCallback(object item) + { + return (_filter.Matches(item as Reference)); + } + + /// + /// Update the number of items in the list. + /// + private void UpdateResult() + { + Result.Content = string.Format("{0} item{1}", + ReferencesListView.Items.Count, + ReferencesListView.Items.Count == 1 ? "" : "s"); + } + } +} diff --git a/RazorPad.UI.Application/Views/ListViewFilterText.xaml b/RazorPad.UI.Application/Views/ListViewFilterText.xaml new file mode 100644 index 0000000..80c6796 --- /dev/null +++ b/RazorPad.UI.Application/Views/ListViewFilterText.xaml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + +
public partial class MainWindow : Window { + private IEnumerable _coreReferences; + protected MainWindowViewModel ViewModel { get { return (MainWindowViewModel)DataContext; } } + protected IEnumerable CoreReferences + { + get { return _coreReferences ?? (_coreReferences = RazorPadHost.DefaultIncludes.Select(di => di.Location)); } + } + public MainWindow() { InitializeComponent(); @@ -75,22 +84,34 @@ private void ManageReference_Click(object sender, RoutedEventArgs e) ViewModel.CurrentTemplate.TemplateCompiler.CompilationParameters.CompilerParameters.ReferencedAssemblies.CopyTo( loadedReferencesTempArray, 0); - var loadedReferences = loadedReferencesTempArray.Select(s => new Reference(s)); - + var loadedReferences = loadedReferencesTempArray + .Select(s => + new Reference(s) + { + //Filters = + //{ + IsNotReadOnly = !CoreReferences.Contains(s), + IsInstalled = true, + //} + }); + + var dialogDataContext = new ReferencesViewModel(loadedReferences); var dlg = new ReferencesDialogWindow { Owner = this, - DataContext = new ReferencesViewModel(loadedReferences) + DataContext = dialogDataContext }; dlg.ShowDialog(); if (dlg.DialogResult != true) return; - var referencesVM = dlg.DataContext as ReferencesViewModel; - if (referencesVM != null) - foreach (var reference in referencesVM.SelectedReferences) - ViewModel.CurrentTemplate.TemplateCompiler.CompilationParameters.AddAssemblyReference(reference.Location); + // clear existing ones + ViewModel.CurrentTemplate.TemplateCompiler.CompilationParameters.CompilerParameters.ReferencedAssemblies.Clear(); + + foreach (var reference in dialogDataContext.InstalledReferences.References) + ViewModel.CurrentTemplate.TemplateCompiler.CompilationParameters.AddAssemblyReference(reference.Location); } + } } diff --git a/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml b/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml index edd0a91..8b22058 100644 --- a/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml +++ b/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml @@ -26,7 +26,7 @@ - + diff --git a/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml.cs b/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml.cs index 68cb436..4e52b15 100644 --- a/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml.cs +++ b/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml.cs @@ -1,5 +1,9 @@ using System; +using System.IO; +using System.Linq; +using System.Text; using System.Windows; +using System.Windows.Data; using System.Windows.Forms; using RazorPad.ViewModels; using MessageBox = System.Windows.MessageBox; @@ -23,8 +27,9 @@ private void OkButtonClick(object sender, RoutedEventArgs e) private void BrowseButtonClicked(object sender, RoutedEventArgs e) { - var ofd = new OpenFileDialog { - DefaultExt = ".dll", + var ofd = new OpenFileDialog + { + DefaultExt = ".dll", Filter = "Component Files (.dll)|*.dll" }; @@ -37,15 +42,44 @@ private void BrowseButtonClicked(object sender, RoutedEventArgs e) foreach (var filePath in ofd.FileNames) try { - vm.RecentReferences.References.Add(new Reference(filePath) { Selected = true }); + vm.InstalledReferences.References.Add( + new Reference(filePath) + { + //Filters = + //{ + IsInstalled = true, + IsRecent = true + //} + }); } catch (ArgumentException aex) { MessageBox.Show("Could not add reference due to: " + aex.Message, "Add Reference Error", MessageBoxButton.OK, - MessageBoxImage.Error); + MessageBoxImage.Error); } } } } + + protected override void OnClosing(System.ComponentModel.CancelEventArgs e) + { + UpdateRecentReferences(); + base.OnClosing(e); + } + + void UpdateRecentReferences() + { + var vm = DataContext as ReferencesViewModel; + if (vm == null) return; + + var recentReferences = vm.RecentReferences.References; + + using (var fs = File.OpenWrite("References.txt")) + { + var txt = string.Join(Environment.NewLine, recentReferences.Distinct().Take(50)); + fs.Write(Encoding.ASCII.GetBytes(txt), 0, txt.Length); + fs.Close(); + } + } } } From 71f12e4a95a850bdcf9d796494737bad449eb0a6 Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Fri, 27 Apr 2012 22:52:23 -0400 Subject: [PATCH 46/88] Renaming RazorPad.Extensions to RazorPad.Extensions.Xml --- RazorPad.sln | 2 +- .../ModelBuilder/XmlModelBuilder.xaml | 0 .../ModelBuilder/XmlModelBuilderFactory.cs | 0 .../ModelBuilder/XmlModelBuilderViewModel.cs | 0 .../ModelProvider/XmlModelProvider.cs | 0 .../ModelProvider/XmlModelProviderFactory.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../RazorPad.Extensions.Xml.csproj} | 0 8 files changed, 1 insertion(+), 1 deletion(-) rename Samples/{RazorPad.Extensions => RazorPad.Extensions.Xml}/ModelBuilder/XmlModelBuilder.xaml (100%) rename Samples/{RazorPad.Extensions => RazorPad.Extensions.Xml}/ModelBuilder/XmlModelBuilderFactory.cs (100%) rename Samples/{RazorPad.Extensions => RazorPad.Extensions.Xml}/ModelBuilder/XmlModelBuilderViewModel.cs (100%) rename Samples/{RazorPad.Extensions => RazorPad.Extensions.Xml}/ModelProvider/XmlModelProvider.cs (100%) rename Samples/{RazorPad.Extensions => RazorPad.Extensions.Xml}/ModelProvider/XmlModelProviderFactory.cs (100%) rename Samples/{RazorPad.Extensions => RazorPad.Extensions.Xml}/Properties/AssemblyInfo.cs (100%) rename Samples/{RazorPad.Extensions/RazorPad.Extensions.csproj => RazorPad.Extensions.Xml/RazorPad.Extensions.Xml.csproj} (100%) diff --git a/RazorPad.sln b/RazorPad.sln index 960eb70..e72323f 100644 --- a/RazorPad.sln +++ b/RazorPad.sln @@ -13,7 +13,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.UI.Tests", "RazorP EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{BC5126B0-DB22-49DE-9592-A6E9791CBAF1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.Extensions", "Samples\RazorPad.Extensions\RazorPad.Extensions.csproj", "{ED3011EE-DFF1-4561-9E8D-F96767FEC4F8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.Extensions.Xml", "Samples\RazorPad.Extensions.Xml\RazorPad.Extensions.Xml.csproj", "{ED3011EE-DFF1-4561-9E8D-F96767FEC4F8}" EndProject Global GlobalSection(TestCaseManagementSettings) = postSolution diff --git a/Samples/RazorPad.Extensions/ModelBuilder/XmlModelBuilder.xaml b/Samples/RazorPad.Extensions.Xml/ModelBuilder/XmlModelBuilder.xaml similarity index 100% rename from Samples/RazorPad.Extensions/ModelBuilder/XmlModelBuilder.xaml rename to Samples/RazorPad.Extensions.Xml/ModelBuilder/XmlModelBuilder.xaml diff --git a/Samples/RazorPad.Extensions/ModelBuilder/XmlModelBuilderFactory.cs b/Samples/RazorPad.Extensions.Xml/ModelBuilder/XmlModelBuilderFactory.cs similarity index 100% rename from Samples/RazorPad.Extensions/ModelBuilder/XmlModelBuilderFactory.cs rename to Samples/RazorPad.Extensions.Xml/ModelBuilder/XmlModelBuilderFactory.cs diff --git a/Samples/RazorPad.Extensions/ModelBuilder/XmlModelBuilderViewModel.cs b/Samples/RazorPad.Extensions.Xml/ModelBuilder/XmlModelBuilderViewModel.cs similarity index 100% rename from Samples/RazorPad.Extensions/ModelBuilder/XmlModelBuilderViewModel.cs rename to Samples/RazorPad.Extensions.Xml/ModelBuilder/XmlModelBuilderViewModel.cs diff --git a/Samples/RazorPad.Extensions/ModelProvider/XmlModelProvider.cs b/Samples/RazorPad.Extensions.Xml/ModelProvider/XmlModelProvider.cs similarity index 100% rename from Samples/RazorPad.Extensions/ModelProvider/XmlModelProvider.cs rename to Samples/RazorPad.Extensions.Xml/ModelProvider/XmlModelProvider.cs diff --git a/Samples/RazorPad.Extensions/ModelProvider/XmlModelProviderFactory.cs b/Samples/RazorPad.Extensions.Xml/ModelProvider/XmlModelProviderFactory.cs similarity index 100% rename from Samples/RazorPad.Extensions/ModelProvider/XmlModelProviderFactory.cs rename to Samples/RazorPad.Extensions.Xml/ModelProvider/XmlModelProviderFactory.cs diff --git a/Samples/RazorPad.Extensions/Properties/AssemblyInfo.cs b/Samples/RazorPad.Extensions.Xml/Properties/AssemblyInfo.cs similarity index 100% rename from Samples/RazorPad.Extensions/Properties/AssemblyInfo.cs rename to Samples/RazorPad.Extensions.Xml/Properties/AssemblyInfo.cs diff --git a/Samples/RazorPad.Extensions/RazorPad.Extensions.csproj b/Samples/RazorPad.Extensions.Xml/RazorPad.Extensions.Xml.csproj similarity index 100% rename from Samples/RazorPad.Extensions/RazorPad.Extensions.csproj rename to Samples/RazorPad.Extensions.Xml/RazorPad.Extensions.Xml.csproj From 446e211dbcf6465fb57ea4c4728542714a5d6a8b Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Fri, 27 Apr 2012 23:09:26 -0400 Subject: [PATCH 47/88] Removing unused ModelProvider.ModelType --- RazorPad.Core/Model/IModelProvider.cs | 2 -- RazorPad.Core/Model/ModelProvider.cs | 8 -------- RazorPad.Core/Model/Providers/BasicModelProvider.cs | 11 ++--------- RazorPad.Core/Model/Providers/JsonModelProvider.cs | 13 +++---------- .../ModelProvider/XmlModelProvider.cs | 2 +- 5 files changed, 6 insertions(+), 30 deletions(-) diff --git a/RazorPad.Core/Model/IModelProvider.cs b/RazorPad.Core/Model/IModelProvider.cs index 2e69085..c0f351c 100644 --- a/RazorPad.Core/Model/IModelProvider.cs +++ b/RazorPad.Core/Model/IModelProvider.cs @@ -6,8 +6,6 @@ public interface IModelProvider { event EventHandler ModelChanged; - Type ModelType { get; } - dynamic GetModel(); string Serialize(); diff --git a/RazorPad.Core/Model/ModelProvider.cs b/RazorPad.Core/Model/ModelProvider.cs index 79ca314..9bf1017 100644 --- a/RazorPad.Core/Model/ModelProvider.cs +++ b/RazorPad.Core/Model/ModelProvider.cs @@ -13,14 +13,6 @@ public event EventHandler ModelChanged } private event EventHandler _modelChanged; - public Type ModelType { get; set; } - - - protected ModelProvider(Type modelType) - { - ModelType = modelType ?? typeof(object); - } - public virtual dynamic GetModel() { diff --git a/RazorPad.Core/Model/Providers/BasicModelProvider.cs b/RazorPad.Core/Model/Providers/BasicModelProvider.cs index 2161a7f..92ef8b7 100644 --- a/RazorPad.Core/Model/Providers/BasicModelProvider.cs +++ b/RazorPad.Core/Model/Providers/BasicModelProvider.cs @@ -1,4 +1,3 @@ -using System; using System.ComponentModel.Composition; using System.Web.Script.Serialization; @@ -14,7 +13,6 @@ public dynamic Model var changed = _model != value; _model = value; - ModelType = (_model == null) ? typeof(object) : _model.GetType(); if(changed) TriggerModelChanged(); @@ -22,8 +20,7 @@ public dynamic Model } private dynamic _model; - public BasicModelProvider(Type modelType = null, object model = null) - : base(modelType) + public BasicModelProvider(object model = null) { Model = model; } @@ -36,11 +33,7 @@ public override string Serialize() public override void Deserialize(string serialized) { var serializer = new JavaScriptSerializer(); - - if (ModelType == typeof(object)) - Model = serializer.DeserializeObject(serialized); - else - Model = serializer.Deserialize(serialized, ModelType); + Model = serializer.DeserializeObject(serialized); } protected override dynamic RebuildModel() diff --git a/RazorPad.Core/Model/Providers/JsonModelProvider.cs b/RazorPad.Core/Model/Providers/JsonModelProvider.cs index c6d0e4a..9b34aaa 100644 --- a/RazorPad.Core/Model/Providers/JsonModelProvider.cs +++ b/RazorPad.Core/Model/Providers/JsonModelProvider.cs @@ -1,5 +1,4 @@ -using System; -using System.ComponentModel.Composition; +using System.ComponentModel.Composition; using System.Web.Script.Serialization; namespace RazorPad.Providers @@ -20,8 +19,7 @@ public string Json } private string _json; - public JsonModelProvider(Type modelType = null, string json = null) - : base(modelType) + public JsonModelProvider(string json = null) { Json = json; } @@ -41,12 +39,7 @@ protected override dynamic RebuildModel() var serializer = new JavaScriptSerializer(); var json = (string.IsNullOrWhiteSpace(Json)) ? "{}" : Json; - var modelType = ModelType ?? typeof (object); - - if (modelType == typeof(object)) - return serializer.DeserializeObject(json); - else - return serializer.Deserialize(json, modelType); + return serializer.DeserializeObject(json); } diff --git a/Samples/RazorPad.Extensions.Xml/ModelProvider/XmlModelProvider.cs b/Samples/RazorPad.Extensions.Xml/ModelProvider/XmlModelProvider.cs index 4756123..0a6d4a1 100644 --- a/Samples/RazorPad.Extensions.Xml/ModelProvider/XmlModelProvider.cs +++ b/Samples/RazorPad.Extensions.Xml/ModelProvider/XmlModelProvider.cs @@ -23,7 +23,7 @@ public string Xml public XmlModelProvider(Type modelType = null, string model = null) - : base(modelType) + : base() { Xml = model ?? "\r\n\r\n"; } From 530ccfd1bb09ae6ea72129b82006dd89e9a91838 Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Sat, 28 Apr 2012 00:05:23 -0400 Subject: [PATCH 48/88] Adding CSharp model provider --- .../CompilerErrorCollectionExtensions.cs | 36 ++++++++ RazorPad.Core/RazorPad.Core.csproj | 1 + .../RazorTemplateEditorViewModel.cs | 4 + .../Views/MainWindow.xaml.cs | 3 +- RazorPad.sln | 13 +++ .../ModelBuilder/CSharpModelBuilder.xaml | 15 ++++ .../ModelBuilder/CSharpModelBuilderFactory.cs | 16 ++++ .../CSharpModelBuilderViewModel.cs | 25 ++++++ .../CSharpModelEvaluatorTemplate.cs | 16 ++++ .../ModelProvider/CSharpModelProvider.cs | 76 ++++++++++++++++ .../CSharpModelProviderFactory.cs | 13 +++ .../Properties/AssemblyInfo.cs | 36 ++++++++ .../RazorPad.Extensions.CSharp.csproj | 88 +++++++++++++++++++ 13 files changed, 341 insertions(+), 1 deletion(-) create mode 100644 RazorPad.Core/Extensions/CompilerErrorCollectionExtensions.cs create mode 100644 Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilder.xaml create mode 100644 Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderFactory.cs create mode 100644 Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderViewModel.cs create mode 100644 Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelEvaluatorTemplate.cs create mode 100644 Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelProvider.cs create mode 100644 Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelProviderFactory.cs create mode 100644 Samples/RazorPad.Extensions.CSharp/Properties/AssemblyInfo.cs create mode 100644 Samples/RazorPad.Extensions.CSharp/RazorPad.Extensions.CSharp.csproj diff --git a/RazorPad.Core/Extensions/CompilerErrorCollectionExtensions.cs b/RazorPad.Core/Extensions/CompilerErrorCollectionExtensions.cs new file mode 100644 index 0000000..b1668ed --- /dev/null +++ b/RazorPad.Core/Extensions/CompilerErrorCollectionExtensions.cs @@ -0,0 +1,36 @@ +using System.CodeDom.Compiler; +using System.IO; + +namespace RazorPad.Extensions +{ + public static class CompilerErrorCollectionExtensions + { + + public static void Trace(this CompilerErrorCollection errors) + { + if(errors == null || !(errors.HasErrors && errors.HasWarnings)) + return; + + foreach (CompilerError error in errors) + { + if(error.IsWarning) + System.Diagnostics.Trace.TraceWarning(error.LogMessage()); + else + System.Diagnostics.Trace.TraceError(error.LogMessage()); + } + } + + public static void LogTo(this CompilerErrorCollection errors, TextWriter writer) + { + foreach (CompilerError error in errors) + writer.WriteLine(error.LogMessage()); + } + + public static string LogMessage(this CompilerError error) + { + return string.Format("[{0}] Line {1} {2}: {3}", + error.ErrorNumber, error.Line, error.Column, error.ErrorText); + } + + } +} diff --git a/RazorPad.Core/RazorPad.Core.csproj b/RazorPad.Core/RazorPad.Core.csproj index 4b22023..0e90f55 100644 --- a/RazorPad.Core/RazorPad.Core.csproj +++ b/RazorPad.Core/RazorPad.Core.csproj @@ -77,6 +77,7 @@ + diff --git a/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs index ef28c30..721d1c0 100644 --- a/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.Diagnostics; using System.IO; using System.Linq; using System.Text; @@ -172,6 +173,9 @@ public RazorTemplateEditorViewModel(RazorDocument document = null, ModelBuilders Messages = new InMemoryTextWriter(); TemplateCompiler = new TemplateCompiler(); + // TODO: Replace with real logging + Trace.Listeners.Add(new TextWriterTraceListener(Messages)); + if (_document.ModelProvider != null) _document.ModelProvider.ModelChanged += (sender, args) => Refresh(); } diff --git a/RazorPad.UI.Application/Views/MainWindow.xaml.cs b/RazorPad.UI.Application/Views/MainWindow.xaml.cs index da8226e..8c82594 100644 --- a/RazorPad.UI.Application/Views/MainWindow.xaml.cs +++ b/RazorPad.UI.Application/Views/MainWindow.xaml.cs @@ -1,4 +1,5 @@ -using System.IO; +using System.Diagnostics; +using System.IO; using System.Windows; using Microsoft.Win32; using RazorPad.Framework; diff --git a/RazorPad.sln b/RazorPad.sln index e72323f..c97b459 100644 --- a/RazorPad.sln +++ b/RazorPad.sln @@ -15,6 +15,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{BC51 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.Extensions.Xml", "Samples\RazorPad.Extensions.Xml\RazorPad.Extensions.Xml.csproj", "{ED3011EE-DFF1-4561-9E8D-F96767FEC4F8}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RazorPad.Extensions.CSharp", "Samples\RazorPad.Extensions.CSharp\RazorPad.Extensions.CSharp.csproj", "{E23A20ED-A2AB-4BEA-9198-BC51AA9F9660}" +EndProject Global GlobalSection(TestCaseManagementSettings) = postSolution CategoryFile = RazorPad.vsmdi @@ -78,6 +80,16 @@ Global {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Release|Mixed Platforms.Build.0 = Release|Any CPU {BBCFFF3C-AFCF-4751-9834-C4AA7D29133D}.Release|x86.ActiveCfg = Release|Any CPU + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660}.Debug|x86.ActiveCfg = Debug|Any CPU + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660}.Release|Any CPU.Build.0 = Release|Any CPU + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660}.Release|x86.ActiveCfg = Release|Any CPU {ED3011EE-DFF1-4561-9E8D-F96767FEC4F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {ED3011EE-DFF1-4561-9E8D-F96767FEC4F8}.Debug|Any CPU.Build.0 = Debug|Any CPU {ED3011EE-DFF1-4561-9E8D-F96767FEC4F8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -93,6 +105,7 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660} = {BC5126B0-DB22-49DE-9592-A6E9791CBAF1} {ED3011EE-DFF1-4561-9E8D-F96767FEC4F8} = {BC5126B0-DB22-49DE-9592-A6E9791CBAF1} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution diff --git a/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilder.xaml b/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilder.xaml new file mode 100644 index 0000000..8bb13ea --- /dev/null +++ b/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilder.xaml @@ -0,0 +1,15 @@ + + + + + diff --git a/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderFactory.cs b/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderFactory.cs new file mode 100644 index 0000000..0f84512 --- /dev/null +++ b/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderFactory.cs @@ -0,0 +1,16 @@ +using System.ComponentModel.Composition; +using RazorPad.Extensions.CSharp.ModelProvider; +using RazorPad.Extensions.CSharp.CSharpBuilder; +using RazorPad.UI; + +namespace RazorPad.Extensions.CSharp.ModelBuilder +{ + [Export(typeof(IModelBuilderFactory))] + public class CSharpModelBuilderFactory : ModelBuilderFactory + { + protected override dynamic ViewModel(CSharpModelProvider provider) + { + return new CSharpModelBuilderViewModel(provider); + } + } +} \ No newline at end of file diff --git a/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderViewModel.cs b/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderViewModel.cs new file mode 100644 index 0000000..472a428 --- /dev/null +++ b/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderViewModel.cs @@ -0,0 +1,25 @@ +using RazorPad.Extensions.CSharp.ModelProvider; +using RazorPad.UI.ModelBuilders; + +namespace RazorPad.Extensions.CSharp.ModelBuilder +{ + public class CSharpModelBuilderViewModel : ModelBuilderViewModel + { + public string CSharp + { + get { return ModelProvider.Code; } + set { ModelProvider.Code = value; } + } + + public CSharpModelBuilderViewModel(CSharpModelProvider modelProvider = null) + : base(modelProvider ?? new CSharpModelProvider()) + { + modelProvider.ModelChanged += (sender, args) => OnModelChanged(); + } + + protected override void OnModelChanged() + { + OnPropertyChanged("CSharp"); + } + } +} diff --git a/Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelEvaluatorTemplate.cs b/Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelEvaluatorTemplate.cs new file mode 100644 index 0000000..d7dc4d1 --- /dev/null +++ b/Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelEvaluatorTemplate.cs @@ -0,0 +1,16 @@ +using System; +using System.Dynamic; +using System.Linq; +using System.Collections.Generic; +using System.Text.RegularExpressions; + +public class CSharpModelEvaluator +{ + public dynamic Model = new ExpandoObject(); + + public dynamic GetModel() + { + Model.Name = "RazorPad"; + return Model; + } +} diff --git a/Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelProvider.cs b/Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelProvider.cs new file mode 100644 index 0000000..2c8f3ed --- /dev/null +++ b/Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelProvider.cs @@ -0,0 +1,76 @@ +using System; +using System.CodeDom.Compiler; +using System.IO; +using System.Runtime.CompilerServices; +using Microsoft.CSharp; + +namespace RazorPad.Extensions.CSharp.ModelProvider +{ + public class CSharpModelProvider : RazorPad.ModelProvider + { + private static readonly Lazy ClassTemplate = new Lazy(LoadClassTemplate); + + public string Code + { + get { return _code; } + set + { + if (_code == value) + return; + + _code = value; + TriggerModelChanged(); + } + } + private string _code; + + + public CSharpModelProvider(string code = null) + { + Code = code ?? ClassTemplate.Value; + } + + + public override string Serialize() + { + return Code; + } + + public override void Deserialize(string serialized) + { + Code = serialized; + } + + protected override dynamic RebuildModel() + { + var results = new CSharpCodeProvider().CompileAssemblyFromSource( + new CompilerParameters(new[] { + typeof(System.String).Assembly.Location, + typeof(System.Linq.Enumerable).Assembly.Location, + typeof(System.Text.RegularExpressions.Regex).Assembly.Location, + typeof(DynamicAttribute).Assembly.Location, + typeof(System.Dynamic.ExpandoObject).Assembly.Location, + typeof(Microsoft.CSharp.RuntimeBinder.Binder).Assembly.Location, + }), + Code); + + if(results.Errors.HasErrors) + { + results.Errors.Trace(); + return null; + } + + var type = results.CompiledAssembly.GetType("CSharpModelEvaluator"); + dynamic modelBuilder = Activator.CreateInstance(type); + return modelBuilder.GetModel(); + } + + + private static string LoadClassTemplate() + { + var type = typeof (CSharpModelProvider); + using (var reader = new StreamReader(type.Assembly.GetManifestResourceStream(type, "CSharpModelEvaluatorTemplate.cs"))) + return reader.ReadToEnd(); + } + } +} \ No newline at end of file diff --git a/Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelProviderFactory.cs b/Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelProviderFactory.cs new file mode 100644 index 0000000..a01e7ff --- /dev/null +++ b/Samples/RazorPad.Extensions.CSharp/ModelProvider/CSharpModelProviderFactory.cs @@ -0,0 +1,13 @@ +using System.ComponentModel.Composition; + +namespace RazorPad.Extensions.CSharp.ModelProvider +{ + [Export(typeof(IModelProviderFactory))] + public class CSharpModelProviderFactory : IModelProviderFactory + { + public IModelProvider Create(dynamic model = null) + { + return new CSharpModelProvider(model); + } + } +} \ No newline at end of file diff --git a/Samples/RazorPad.Extensions.CSharp/Properties/AssemblyInfo.cs b/Samples/RazorPad.Extensions.CSharp/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6638c0d --- /dev/null +++ b/Samples/RazorPad.Extensions.CSharp/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("RazorPad.Extensions")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("RazorPad.Extensions")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ea741b7b-d4f7-4932-903e-2acfca3acd2e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Samples/RazorPad.Extensions.CSharp/RazorPad.Extensions.CSharp.csproj b/Samples/RazorPad.Extensions.CSharp/RazorPad.Extensions.CSharp.csproj new file mode 100644 index 0000000..cacc8ee --- /dev/null +++ b/Samples/RazorPad.Extensions.CSharp/RazorPad.Extensions.CSharp.csproj @@ -0,0 +1,88 @@ + + + + + Debug + AnyCPU + {E23A20ED-A2AB-4BEA-9198-BC51AA9F9660} + Library + Properties + RazorPad.Extensions.CSharp + RazorPad.Extensions.CSharp + v4.0 + 512 + ..\..\..\RazorPad\ + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Designer + MSBuild:Compile + + + + + {511d144c-f4c7-40a3-b3b4-80d891fce2f5} + RazorPad.Core + False + + + {147dfce8-a33f-42f4-a8f1-7e999c02d1dc} + RazorPad.UI + False + + + + + + xcopy /Y "$(TargetDir)*.*" "$(SolutionDir)\RazorPad.UI.Application\bin\$(ConfigurationName)\plugins" + + + \ No newline at end of file From 29e8247b9a5ef302786ba841bd5c74290c8946cf Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Sat, 28 Apr 2012 00:12:12 -0400 Subject: [PATCH 49/88] Wiring up ModelChanged in base view model --- .../Json/JsonModelBuilderViewModel.cs | 1 - .../ModelBuilders/ModelBuilderViewModel.cs | 15 +++++++++++++-- .../ModelBuilder/CSharpModelBuilderViewModel.cs | 1 - .../ModelBuilder/XmlModelBuilderViewModel.cs | 1 - 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/RazorPad.UI/ModelBuilders/Json/JsonModelBuilderViewModel.cs b/RazorPad.UI/ModelBuilders/Json/JsonModelBuilderViewModel.cs index 339cc91..5a5404f 100644 --- a/RazorPad.UI/ModelBuilders/Json/JsonModelBuilderViewModel.cs +++ b/RazorPad.UI/ModelBuilders/Json/JsonModelBuilderViewModel.cs @@ -13,7 +13,6 @@ public string Json public JsonModelBuilderViewModel(JsonModelProvider modelProvider = null) : base(modelProvider ?? new JsonModelProvider()) { - modelProvider.ModelChanged += (sender, args) => OnModelChanged(); } protected override void OnModelChanged() diff --git a/RazorPad.UI/ModelBuilders/ModelBuilderViewModel.cs b/RazorPad.UI/ModelBuilders/ModelBuilderViewModel.cs index 8b05726..a2422d6 100644 --- a/RazorPad.UI/ModelBuilders/ModelBuilderViewModel.cs +++ b/RazorPad.UI/ModelBuilders/ModelBuilderViewModel.cs @@ -1,3 +1,4 @@ +using System; using System.Diagnostics.Contracts; namespace RazorPad.UI.ModelBuilders @@ -12,7 +13,14 @@ public IModelProvider ModelProvider if (_modelProvider == value) return; + if (_modelProvider != null) + _modelProvider.ModelChanged -= InternalOnModelChangedHandler; + _modelProvider = value; + + if (_modelProvider != null) + _modelProvider.ModelChanged += InternalOnModelChangedHandler; + OnPropertyChanged("ModelProvider"); } } @@ -21,9 +29,12 @@ public IModelProvider ModelProvider protected ModelBuilderViewModel(IModelProvider modelProvider) { Contract.Requires(modelProvider != null); + ModelProvider = modelProvider; + } - _modelProvider = modelProvider; - _modelProvider.ModelChanged += (sender, args) => OnModelChanged(); + private void InternalOnModelChangedHandler(object sender, EventArgs args) + { + OnModelChanged(); } protected virtual void OnModelChanged() diff --git a/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderViewModel.cs b/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderViewModel.cs index 472a428..986f120 100644 --- a/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderViewModel.cs +++ b/Samples/RazorPad.Extensions.CSharp/ModelBuilder/CSharpModelBuilderViewModel.cs @@ -14,7 +14,6 @@ public string CSharp public CSharpModelBuilderViewModel(CSharpModelProvider modelProvider = null) : base(modelProvider ?? new CSharpModelProvider()) { - modelProvider.ModelChanged += (sender, args) => OnModelChanged(); } protected override void OnModelChanged() diff --git a/Samples/RazorPad.Extensions.Xml/ModelBuilder/XmlModelBuilderViewModel.cs b/Samples/RazorPad.Extensions.Xml/ModelBuilder/XmlModelBuilderViewModel.cs index 0dac354..b1b984e 100644 --- a/Samples/RazorPad.Extensions.Xml/ModelBuilder/XmlModelBuilderViewModel.cs +++ b/Samples/RazorPad.Extensions.Xml/ModelBuilder/XmlModelBuilderViewModel.cs @@ -14,7 +14,6 @@ public string Xml public XmlModelBuilderViewModel(XmlModelProvider modelProvider = null) : base(modelProvider ?? new XmlModelProvider()) { - modelProvider.ModelChanged += (sender, args) => OnModelChanged(); } protected override void OnModelChanged() From 80861eeedb3192ceebeb6a977c26683b00ff2100 Mon Sep 17 00:00:00 2001 From: mrchief Date: Sat, 28 Apr 2012 01:37:17 -0400 Subject: [PATCH 50/88] Synchronized listviews! --- .../ViewModels/Reference.cs | 1 + .../ViewModels/ReferencesViewModel.cs | 216 ++++++++++-------- .../Views/ReferencesDialogWindow.xaml.cs | 2 +- 3 files changed, 122 insertions(+), 97 deletions(-) diff --git a/RazorPad.UI.Application/ViewModels/Reference.cs b/RazorPad.UI.Application/ViewModels/Reference.cs index b3af2b2..79d568e 100644 --- a/RazorPad.UI.Application/ViewModels/Reference.cs +++ b/RazorPad.UI.Application/ViewModels/Reference.cs @@ -23,6 +23,7 @@ public class Reference : ViewModelBase, ISearchable, IEquatable //public ReferenceViewFilters Filters { get; set; } private bool _isInstalled; + public bool IsStandard; public bool IsNotReadOnly { get; set; } public bool IsInstalled { diff --git a/RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs b/RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs index 1cc5d9d..7b96c8d 100644 --- a/RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs @@ -9,100 +9,124 @@ namespace RazorPad.ViewModels { - public class ReferencesViewModel - { - //public SearchableReferencesViewModel AssemblyReferences { get; set; } - - public SearchableReferencesViewModel StandardReferences { get; set; } - public SearchableReferencesViewModel RecentReferences { get; set; } - public SearchableReferencesViewModel InstalledReferences { get; set; } - - public ReferencesViewModel(IEnumerable loadedReferences) - { - var standardReferences = LoadStandardReferences().ToList(); - var recentReferences = GetRecentReferences().ToList(); - //var allReferences = loadedReferences.Union(standardReferences).Union(recentReferences).ToList(); - - - //AssemblyReferences = new SearchableReferencesViewModel(allReferences); - - StandardReferences = new SearchableReferencesViewModel(standardReferences); - StandardReferences.References.ListChanged += StandardReferences_ListChanged; - - RecentReferences = new SearchableReferencesViewModel(recentReferences); - RecentReferences.References.ListChanged += RecentReferences_ListChanged; - - InstalledReferences = new SearchableReferencesViewModel(loadedReferences); - InstalledReferences.References.ListChanged += InstalledReferences_ListChanged; - } - - - - void StandardReferences_ListChanged(object sender, ListChangedEventArgs e) - { - var items = e.ListChangedType; - - var reference = StandardReferences.References.ElementAt(e.NewIndex); - InstalledReferences.References.Add(reference); - - // update assemblye refs - } - - void RecentReferences_ListChanged(object sender, ListChangedEventArgs e) - { - var items = e.ListChangedType; - - // update assemblye refs - } - - void InstalledReferences_ListChanged(object sender, ListChangedEventArgs e) - { - var items = e.ListChangedType; - - // update assemblye refs - } - - - private static IEnumerable LoadStandardReferences() - { - var paths = StandardDotNetReferencesLocator.GetStandardDotNetReferencePaths() ?? Enumerable.Empty(); - - foreach (var path in paths) - { - Reference reference; - string message; - var assmeblyLoadable = Reference.TryLoadReference(path, out reference, out message); - if (!assmeblyLoadable) continue; - //reference.Filters.IsStandard = true; - yield return reference; - } - } - - private static IEnumerable GetRecentReferences() - { - const string recentReferencesFilePath = "RecentReferences.txt"; - if (File.Exists(recentReferencesFilePath)) - { - try - { - return File - .ReadAllLines(recentReferencesFilePath) - .Select(r => - new Reference(r) - { - //Filters = - //{ - IsRecent = true - //} - }); - } - catch (Exception ex) - { - // TODO: Log the exception maybe? - } - } - - return Enumerable.Empty(); - } - } + public class ReferencesViewModel + { + + public SearchableReferencesViewModel StandardReferences { get; set; } + public SearchableReferencesViewModel RecentReferences { get; set; } + public SearchableReferencesViewModel InstalledReferences { get; set; } + + public ReferencesViewModel(IEnumerable loadedReferences) + { + var standardReferences = LoadStandardReferences().ToList(); + var recentReferences = GetRecentReferences().ToList(); + var allReferences = loadedReferences.Union(standardReferences).Union(recentReferences).ToList(); + + + StandardReferences = new SearchableReferencesViewModel(standardReferences); + StandardReferences.References.ListChanged += StandardReferences_ListChanged; + + RecentReferences = new SearchableReferencesViewModel(recentReferences); + RecentReferences.References.ListChanged += RecentReferences_ListChanged; + + InstalledReferences = new SearchableReferencesViewModel(allReferences.Where(r => r.IsInstalled)); + } + + + + void StandardReferences_ListChanged(object sender, ListChangedEventArgs e) + { + // prevent stack overflow + StandardReferences.References.ListChanged -= StandardReferences_ListChanged; + RecentReferences.References.ListChanged -= RecentReferences_ListChanged; + + var reference = StandardReferences.References.ElementAt(e.NewIndex); + if (reference.IsInstalled) + { + if (!InstalledReferences.References.Contains(reference)) + { + InstalledReferences.References.Add(reference); + } + if (!RecentReferences.References.Contains(reference)) + { + RecentReferences.References.Add(reference); + } + } + else + { + var index = InstalledReferences.References.IndexOf(reference); + if (index >= 0) InstalledReferences.References.RemoveAt(index); + + } + + StandardReferences.References.ListChanged += StandardReferences_ListChanged; + RecentReferences.References.ListChanged += RecentReferences_ListChanged; + } + + void RecentReferences_ListChanged(object sender, ListChangedEventArgs e) + { + // prevent stack overflow + RecentReferences.References.ListChanged -= RecentReferences_ListChanged; + + var reference = RecentReferences.References.ElementAt(e.NewIndex); + if (reference.IsInstalled) + { + if (!InstalledReferences.References.Contains(reference)) + { + InstalledReferences.References.Add(reference); + } + } + else + { + var index = InstalledReferences.References.IndexOf(reference); + if (index >= 0) InstalledReferences.References.RemoveAt(index); + } + + RecentReferences.References.ListChanged += RecentReferences_ListChanged; + } + + + + private static IEnumerable LoadStandardReferences() + { + var paths = StandardDotNetReferencesLocator.GetStandardDotNetReferencePaths() ?? Enumerable.Empty(); + + foreach (var path in paths) + { + Reference reference; + string message; + var assmeblyLoadable = Reference.TryLoadReference(path, out reference, out message); + if (!assmeblyLoadable) continue; + reference.IsStandard = true; + yield return reference; + } + } + + private static IEnumerable GetRecentReferences() + { + const string recentReferencesFilePath = "RecentReferences.txt"; + if (File.Exists(recentReferencesFilePath)) + { + try + { + return File + .ReadAllLines(recentReferencesFilePath) + .Select(r => + new Reference(r) + { + //Filters = + //{ + IsRecent = true + //} + }); + } + catch (Exception ex) + { + // TODO: Log the exception maybe? + } + } + + return Enumerable.Empty(); + } + } } diff --git a/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml.cs b/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml.cs index 4e52b15..9370ad5 100644 --- a/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml.cs +++ b/RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml.cs @@ -42,7 +42,7 @@ private void BrowseButtonClicked(object sender, RoutedEventArgs e) foreach (var filePath in ofd.FileNames) try { - vm.InstalledReferences.References.Add( + vm.RecentReferences.References.Add( new Reference(filePath) { //Filters = From df86df96f76a9c1c6c23a97ebf7d8afc6baccf8c Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Sat, 28 Apr 2012 02:48:16 -0400 Subject: [PATCH 51/88] Fixing ModelBuilder triggering an OnModelChanged --- .../RazorTemplateEditorViewModel.cs | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs index 721d1c0..7e67464 100644 --- a/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/RazorTemplateEditorViewModel.cs @@ -252,6 +252,11 @@ public void Refresh() Execute(); } + private void OnModelChanged(object sender, EventArgs args) + { + Refresh(); + } + private void Log(string message) { Messages.WriteLine("[{0}] {1}", DateTime.Now.ToShortTimeString(), message); @@ -264,21 +269,29 @@ private void Log(Exception ex) private void UpdateModelProvider(string providerName) { - var modelProvider = _document.ModelProvider; + var newModelProvider = _modelProviderFactory.Create(providerName); + UpdateModelProvider(newModelProvider); + } + private void UpdateModelProvider(IModelProvider newModelProvider) + { + var oldModelProvider = _document.ModelProvider; - if (modelProvider != null) - _savedModels[modelProvider.GetType()] = modelProvider.Serialize(); + if (oldModelProvider != null) + { + _savedModels[oldModelProvider.GetType()] = oldModelProvider.Serialize(); + oldModelProvider.ModelChanged -= OnModelChanged; + } - _document.ModelProvider = _modelProviderFactory.Create(providerName); - modelProvider = _document.ModelProvider; + _document.ModelProvider = newModelProvider; + newModelProvider.ModelChanged += OnModelChanged; OnPropertyChanged("ModelBuilder"); string currentlySavedModel; - if (modelProvider != null && _savedModels.TryGetValue(modelProvider.GetType(), out currentlySavedModel)) + if (newModelProvider != null && _savedModels.TryGetValue(newModelProvider.GetType(), out currentlySavedModel)) { - modelProvider.Deserialize(currentlySavedModel); + newModelProvider.Deserialize(currentlySavedModel); } } From 7ae5c9b6541d6cc9d4740c65fcf0d42c0f31bd0c Mon Sep 17 00:00:00 2001 From: mrchief Date: Sat, 28 Apr 2012 03:24:07 -0400 Subject: [PATCH 52/88] Synchronized Views, filtering ... OMG!!! --- .../ViewModels/ReferencesViewModel.cs | 47 +++++++---- .../SearchableReferencesViewModel.cs | 13 +-- .../Views/AssemblyReferences.xaml | 2 +- RazorPad.UI/RazorPad.UI.csproj | 1 + .../Wpf/TheRealObservableCollection.cs | 83 +++++++++++++++++++ 5 files changed, 119 insertions(+), 27 deletions(-) create mode 100644 RazorPad.UI/Wpf/TheRealObservableCollection.cs diff --git a/RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs b/RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs index 7b96c8d..bbd8c42 100644 --- a/RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs @@ -1,11 +1,8 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Collections.Specialized; using System.ComponentModel; using System.IO; using System.Linq; -using System.Text; namespace RazorPad.ViewModels { @@ -24,51 +21,67 @@ public ReferencesViewModel(IEnumerable loadedReferences) StandardReferences = new SearchableReferencesViewModel(standardReferences); - StandardReferences.References.ListChanged += StandardReferences_ListChanged; + StandardReferences.References.ItemPropertyChanged += StandardReferences_ListChanged; RecentReferences = new SearchableReferencesViewModel(recentReferences); - RecentReferences.References.ListChanged += RecentReferences_ListChanged; + RecentReferences.References.ItemPropertyChanged += RecentReferences_ListChanged; InstalledReferences = new SearchableReferencesViewModel(allReferences.Where(r => r.IsInstalled)); } - void StandardReferences_ListChanged(object sender, ListChangedEventArgs e) + void StandardReferences_ListChanged(object sender, PropertyChangedEventArgs e) { // prevent stack overflow - StandardReferences.References.ListChanged -= StandardReferences_ListChanged; - RecentReferences.References.ListChanged -= RecentReferences_ListChanged; + StandardReferences.References.ItemPropertyChanged -= StandardReferences_ListChanged; + RecentReferences.References.ItemPropertyChanged -= RecentReferences_ListChanged; + + var reference = sender as Reference; + if (reference == null) return; - var reference = StandardReferences.References.ElementAt(e.NewIndex); if (reference.IsInstalled) { if (!InstalledReferences.References.Contains(reference)) { InstalledReferences.References.Add(reference); } - if (!RecentReferences.References.Contains(reference)) + + // find the handle by equality operator + var recentReferenceIndex = RecentReferences.References.IndexOf(reference); + + // if not found, add it + if (recentReferenceIndex == -1) + { + RecentReferences.References.Add(reference); + } + // reassign the reference for auto syncing + else { + RecentReferences.References.RemoveAt(recentReferenceIndex); RecentReferences.References.Add(reference); } + } else { var index = InstalledReferences.References.IndexOf(reference); if (index >= 0) InstalledReferences.References.RemoveAt(index); - + } - StandardReferences.References.ListChanged += StandardReferences_ListChanged; - RecentReferences.References.ListChanged += RecentReferences_ListChanged; + StandardReferences.References.ItemPropertyChanged += StandardReferences_ListChanged; + RecentReferences.References.ItemPropertyChanged += RecentReferences_ListChanged; } - void RecentReferences_ListChanged(object sender, ListChangedEventArgs e) + void RecentReferences_ListChanged(object sender, PropertyChangedEventArgs e) { // prevent stack overflow - RecentReferences.References.ListChanged -= RecentReferences_ListChanged; + RecentReferences.References.ItemPropertyChanged -= RecentReferences_ListChanged; + + var reference = sender as Reference; + if (reference == null) return; - var reference = RecentReferences.References.ElementAt(e.NewIndex); if (reference.IsInstalled) { if (!InstalledReferences.References.Contains(reference)) @@ -82,7 +95,7 @@ void RecentReferences_ListChanged(object sender, ListChangedEventArgs e) if (index >= 0) InstalledReferences.References.RemoveAt(index); } - RecentReferences.References.ListChanged += RecentReferences_ListChanged; + RecentReferences.References.ItemPropertyChanged += RecentReferences_ListChanged; } diff --git a/RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs b/RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs index acef928..4598753 100644 --- a/RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs +++ b/RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs @@ -1,12 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Collections.Specialized; -using System.ComponentModel; +using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Windows.Data; using RazorPad.UI; +using RazorPad.UI.Wpf; namespace RazorPad.ViewModels { @@ -14,10 +9,10 @@ public class SearchableReferencesViewModel : ViewModelBase { public SearchableReferencesViewModel(IEnumerable references) { - References = new BindingList(references.Distinct().OrderBy(r => r.Name).ThenBy(r => r.Version).ToList()); + References = new TheRealObservableCollection(references.Distinct().OrderBy(r => r.Name).ThenBy(r => r.Version).ToList()); } - public BindingList References { get; set; } + public TheRealObservableCollection References { get; set; } } diff --git a/RazorPad.UI.Application/Views/AssemblyReferences.xaml b/RazorPad.UI.Application/Views/AssemblyReferences.xaml index e13b680..55df36a 100644 --- a/RazorPad.UI.Application/Views/AssemblyReferences.xaml +++ b/RazorPad.UI.Application/Views/AssemblyReferences.xaml @@ -30,7 +30,7 @@ diff --git a/RazorPad.UI/RazorPad.UI.csproj b/RazorPad.UI/RazorPad.UI.csproj index dd7c434..5f83dfe 100644 --- a/RazorPad.UI/RazorPad.UI.csproj +++ b/RazorPad.UI/RazorPad.UI.csproj @@ -60,6 +60,7 @@ + diff --git a/RazorPad.UI/Wpf/TheRealObservableCollection.cs b/RazorPad.UI/Wpf/TheRealObservableCollection.cs new file mode 100644 index 0000000..85976f7 --- /dev/null +++ b/RazorPad.UI/Wpf/TheRealObservableCollection.cs @@ -0,0 +1,83 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; + +namespace RazorPad.UI.Wpf +{ + public class TheRealObservableCollection : ObservableCollection + where T : INotifyPropertyChanged + { + // The ObservableCollection give us some excellent functionality out of box, + // but it does not expose property changes to the developer, for those events + // we have to do a bit more work. + + // This is the event is what we will use to expose the property change to our code + public event ItemPropertyChangedEventHandler ItemPropertyChanged; + public delegate void ItemPropertyChangedEventHandler(T sender, PropertyChangedEventArgs e); + + // Overriding the InsertItem method gives us a chance to add a handler to the item's PropertyChanged event + protected override void InsertItem(int index, T item) + { + base.InsertItem(index, item); + + item.PropertyChanged -= Item_PropertyChanged; + item.PropertyChanged += Item_PropertyChanged; + } + + // Make sure you clean up your handlers + protected override void RemoveItem(int index) + { + this[index].PropertyChanged -= Item_PropertyChanged; + base.RemoveItem(index); + } + + // This will catch the item's property change event and bubble it up from the collection + protected void Item_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + if (ItemPropertyChanged != null) + { + ItemPropertyChanged((T)sender, e); + } + } + + + // picking up c# slack again - constructors + + /// + /// Initializes a new instance of the class. + /// + public TheRealObservableCollection() + { + } + + /// + /// Initializes a new instance of the class that contains elements copied from the specified list. + /// + /// The list from which the elements are copied.The parameter cannot be null. + public TheRealObservableCollection(List list) + : base(list) + { + foreach (var item in list) + { + item.PropertyChanged -= Item_PropertyChanged; + item.PropertyChanged += Item_PropertyChanged; + } + } + + /// + /// Initializes a new instance of the class that contains elements copied from the specified collection. + /// + /// The collection from which the elements are copied.The parameter cannot be null. + public TheRealObservableCollection(IEnumerable collection) + : base(collection) + { + foreach (var item in collection) + { + item.PropertyChanged -= Item_PropertyChanged; + item.PropertyChanged += Item_PropertyChanged; + } + } + + } + +} From 9653e37367fc8e4b868e7e69be3b00179327deef Mon Sep 17 00:00:00 2001 From: mrchief Date: Sat, 28 Apr 2012 16:44:19 -0400 Subject: [PATCH 53/88] Merging with Assembly Refs branch. --- .../Compilation/Hosts/RazorPadHost.cs | 23 +-- .../TemplateCompilationParameters.cs | 3 +- .../RazorPad.UI.Application.csproj | 34 ++-- RazorPad.UI.Application/ViewModels/Filter.cs | 42 +++++ .../ViewModels/ISearchable.cs | 7 + .../ViewModels/Reference.cs | 160 ++++++++++++++++++ .../ViewModels/ReferencesViewModel.cs | 145 ++++++++++++++++ .../SearchableReferencesViewModel.cs | 19 +++ .../StandardDotNetReferencesLocator.cs | 86 ++++++++++ .../ViewModels/ViewFilters.cs | 14 ++ .../Views/AssemblyReferences.xaml | 56 ++++++ .../Views/AssemblyReferences.xaml.cs | 71 ++++++++ .../Views/ListViewFilterText.xaml | 46 +++++ .../Views/ListViewFilterText.xaml.cs | 72 ++++++++ RazorPad.UI.Application/Views/MainDock.xaml | 75 -------- .../Views/MainDock.xaml.cs | 65 ------- RazorPad.UI.Application/Views/MainWindow.xaml | 6 +- .../Views/MainWindow.xaml.cs | 58 ++++++- .../Views/ReferencesDialogWindow.xaml | 45 +++++ .../Views/ReferencesDialogWindow.xaml.cs | 85 ++++++++++ RazorPad.UI.Application/packages.config | 1 - .../StandardDotNetReferencesLocatorTests.cs | 41 +++++ .../AssemblyReference/rss snippet.txt | 33 ++++ RazorPad.UI.Tests/RazorPad.UI.Tests.csproj | 4 + RazorPad.UI/RazorPad.UI.csproj | 1 + .../Wpf/TheRealObservableCollection.cs | 83 +++++++++ .../RazorPad.Extensions.CSharp.csproj | 2 +- .../RazorPad.Extensions.Xml.csproj | 2 +- assets/Add Ref Dialogs.png | Bin 0 -> 122558 bytes 29 files changed, 1111 insertions(+), 168 deletions(-) create mode 100644 RazorPad.UI.Application/ViewModels/Filter.cs create mode 100644 RazorPad.UI.Application/ViewModels/ISearchable.cs create mode 100644 RazorPad.UI.Application/ViewModels/Reference.cs create mode 100644 RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs create mode 100644 RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs create mode 100644 RazorPad.UI.Application/ViewModels/StandardDotNetReferencesLocator.cs create mode 100644 RazorPad.UI.Application/ViewModels/ViewFilters.cs create mode 100644 RazorPad.UI.Application/Views/AssemblyReferences.xaml create mode 100644 RazorPad.UI.Application/Views/AssemblyReferences.xaml.cs create mode 100644 RazorPad.UI.Application/Views/ListViewFilterText.xaml create mode 100644 RazorPad.UI.Application/Views/ListViewFilterText.xaml.cs delete mode 100644 RazorPad.UI.Application/Views/MainDock.xaml delete mode 100644 RazorPad.UI.Application/Views/MainDock.xaml.cs create mode 100644 RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml create mode 100644 RazorPad.UI.Application/Views/ReferencesDialogWindow.xaml.cs create mode 100644 RazorPad.UI.Tests/AssemblyReference/StandardDotNetReferencesLocatorTests.cs create mode 100644 RazorPad.UI.Tests/AssemblyReference/rss snippet.txt create mode 100644 RazorPad.UI/Wpf/TheRealObservableCollection.cs create mode 100644 assets/Add Ref Dialogs.png diff --git a/RazorPad.Core/Compilation/Hosts/RazorPadHost.cs b/RazorPad.Core/Compilation/Hosts/RazorPadHost.cs index 3e5b49f..90381d6 100644 --- a/RazorPad.Core/Compilation/Hosts/RazorPadHost.cs +++ b/RazorPad.Core/Compilation/Hosts/RazorPadHost.cs @@ -13,6 +13,18 @@ namespace RazorPad.Compilation.Hosts public class RazorPadHost : RazorEngineHost { private static readonly ISet GlobalImports = new HashSet(); + private static readonly Assembly[] _defaultIncludes = new[] { + typeof(TemplateBase).Assembly, + typeof(DynamicAttribute).Assembly, + typeof(INotifyPropertyChanged).Assembly, + typeof(Microsoft.CSharp.RuntimeBinder.Binder).Assembly, + }; + + public static IEnumerable DefaultIncludes + { + get { return _defaultIncludes; } + } + public RazorPadHost(RazorCodeLanguage language = null) { @@ -71,16 +83,7 @@ public override void PostProcessGeneratedCode(CodeCompileUnit codeCompileUnit, C protected virtual void AddAssemblyReferences(CodeCompileUnit codeCompileUnit) { - IEnumerable defaultIncludes = new[] { - typeof(TemplateBase).Assembly, - typeof(DynamicAttribute).Assembly, - typeof(INotifyPropertyChanged).Assembly, - typeof(Microsoft.CSharp.RuntimeBinder.Binder).Assembly, - }; - - IEnumerable referencedAssemblies = - defaultIncludes.Select(x => x.Location); - + var referencedAssemblies = DefaultIncludes.Select(x => x.Location); codeCompileUnit.ReferencedAssemblies.AddRange(referencedAssemblies.ToArray()); } diff --git a/RazorPad.Core/Compilation/TemplateCompilationParameters.cs b/RazorPad.Core/Compilation/TemplateCompilationParameters.cs index 890282c..9b52a86 100644 --- a/RazorPad.Core/Compilation/TemplateCompilationParameters.cs +++ b/RazorPad.Core/Compilation/TemplateCompilationParameters.cs @@ -77,5 +77,6 @@ public static TemplateCompilationParameters CreateFromLanguage(TemplateLanguage return CSharp; } } - } + + } } \ No newline at end of file diff --git a/RazorPad.UI.Application/RazorPad.UI.Application.csproj b/RazorPad.UI.Application/RazorPad.UI.Application.csproj index b39ca18..d05fc77 100644 --- a/RazorPad.UI.Application/RazorPad.UI.Application.csproj +++ b/RazorPad.UI.Application/RazorPad.UI.Application.csproj @@ -45,13 +45,6 @@ true - - ..\packages\AvalonDock.Unofficial.1.3.1\lib\net40\AvalonDock.dll - - - ..\packages\AvalonDock.Unofficial.1.3.1\lib\net40\AvalonDock.Themes.dll - True - @@ -72,8 +65,21 @@ Designer - - MainDock.xaml + + + + + + + ReferencesDialogWindow.xaml + + + + + AssemblyReferences.xaml + + + ListViewFilterText.xaml MainWindow.xaml @@ -83,7 +89,15 @@ - + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + Designer MSBuild:Compile diff --git a/RazorPad.UI.Application/ViewModels/Filter.cs b/RazorPad.UI.Application/ViewModels/Filter.cs new file mode 100644 index 0000000..ee45aae --- /dev/null +++ b/RazorPad.UI.Application/ViewModels/Filter.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace RazorPad.ViewModels +{ + internal class Filter + where T : ISearchable + { + // main filer text + private string _text; + + /// + /// Indicates if the filter is empty. + /// + public bool IsEmpty + { + get { return string.IsNullOrEmpty(_text); } + } + + /// + /// Parse the filter text. Can be used to performa advanced operations such as regex search + /// + public void Parse(string text) + { + // store main text + _text = text.Trim().ToLower(); + + // enhancement: add regex filtering support + } + + /// + /// Return true if the Reference matches the filter. + /// + public bool Matches(T item) + { + // check name + return item.Name.ToLower().Contains(_text); + } + } +} diff --git a/RazorPad.UI.Application/ViewModels/ISearchable.cs b/RazorPad.UI.Application/ViewModels/ISearchable.cs new file mode 100644 index 0000000..b1a18ac --- /dev/null +++ b/RazorPad.UI.Application/ViewModels/ISearchable.cs @@ -0,0 +1,7 @@ +namespace RazorPad.ViewModels +{ + internal interface ISearchable + { + string Name { get; set; } + } +} \ No newline at end of file diff --git a/RazorPad.UI.Application/ViewModels/Reference.cs b/RazorPad.UI.Application/ViewModels/Reference.cs new file mode 100644 index 0000000..f3deffb --- /dev/null +++ b/RazorPad.UI.Application/ViewModels/Reference.cs @@ -0,0 +1,160 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using RazorPad.UI; + +namespace RazorPad.ViewModels +{ + public class Reference : ViewModelBase, ISearchable, IEquatable + { + public string Name { get; set; } + public string FullName { get; set; } + public string Location { get; set; } + public string Version { get; set; } + public string RuntimeVersion { get; set; } + public string Culture { get; set; } + public string PublicKeyToken { get; set; } + public string ProcessorArchitecture { get; set; } + + //public ReferenceViewFilters Filters { get; set; } + + private bool _isInstalled; + public bool IsStandard; + public bool IsNotReadOnly { get; set; } + public bool IsInstalled + { + get { return _isInstalled; } + set { _isInstalled = value; OnPropertyChanged("IsInstalled"); } + } + public bool IsRecent { get; set; } + + + + public Reference(string name, string version, string culture, string publicKeyToken) + { + Name = name; + Version = version; + Culture = culture; + PublicKeyToken = publicKeyToken; + IsNotReadOnly = true; + } + + + public static bool TryLoadReference(string path, out Reference reference, out string message) + { + reference = null; + message = null; + + if (!File.Exists(path)) + { + message = "File doesn't exist. Make sure you pass a valid file path."; + return false; + } + + AssemblyName assemblyName; + try + { + assemblyName = AssemblyName.GetAssemblyName(path); + } + catch (FileLoadException fileLoadException) + { + if (fileLoadException.Message.Contains("has already been loaded")) + { + message = string.Format("{0} has already been loaded from a different path", path); + return false; + } + + message = string.Format("Unexpected error happened while loading {0}", path); + return false; + } + catch (BadImageFormatException) + { + message = string.Format("Not a .Net Assembly or is created with a later version of .Net: {0}", path); + return false; + } + catch (Exception) + { + message = string.Format("Unexpected error happened while loading {0}", path); + return false; + } + + reference = new Reference(path); + return true; + + } + + + public Reference(string path) + { + var assemblyName = AssemblyName.GetAssemblyName(path); + Name = assemblyName.Name; + Version = assemblyName.Version.ToString(); + PublicKeyToken = GetHumanReadablePublicKeyToken(assemblyName.GetPublicKeyToken()); + Culture = assemblyName.CultureInfo.Name == "" ? "neutral" : assemblyName.CultureInfo.Name; + ProcessorArchitecture = assemblyName.ProcessorArchitecture.ToString(); + FullName = assemblyName.FullName; + Location = path; + IsNotReadOnly = true; + + } + + protected string GetHumanReadablePublicKeyToken(byte[] tokenBytes) + { + const byte mask = 15; + const string hex = "0123456789abcdef"; + var pkt = new StringBuilder(); + foreach (var b in tokenBytes) + pkt.Append(hex[b / 16 & mask]) + .Append(hex[b & mask]); + + return pkt.ToString(); + } + + public Reference(Assembly assembly) + : this(assembly.Location) + { } + + #region Implementation of IEquatable + + /// + /// Indicates whether the current object is equal to another object of the same type. + /// + /// + /// true if the current object is equal to the parameter; otherwise, false. + /// + /// An object to compare with this object. + public bool Equals(Reference other) + { + //Check whether the compared object is null. + if (ReferenceEquals(other, null)) return false; + + //Check whether the compared object references the same data. + if (ReferenceEquals(this, other)) return true; + + //Check whether the products' properties are equal. + return Name.Equals(other.Name) && Version.Equals(other.Version); + + } + + public override int GetHashCode() + { + + //Get hash code for the Name field if it is not null. + int hashName = Name == null ? 0 : Name.GetHashCode(); + + //Get hash code for the Code field. + int hashVersion = Version == null ? 0 : Version.GetHashCode(); + + //Calculate the hash code for the product. + return hashName ^ hashVersion; + } + + + #endregion + } + +} diff --git a/RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs b/RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs new file mode 100644 index 0000000..4917be6 --- /dev/null +++ b/RazorPad.UI.Application/ViewModels/ReferencesViewModel.cs @@ -0,0 +1,145 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; + +namespace RazorPad.ViewModels +{ + public class ReferencesViewModel + { + + public SearchableReferencesViewModel StandardReferences { get; set; } + public SearchableReferencesViewModel RecentReferences { get; set; } + public SearchableReferencesViewModel InstalledReferences { get; set; } + + public ReferencesViewModel(IEnumerable loadedReferences) + { + var standardReferences = LoadStandardReferences().ToList(); + var recentReferences = GetRecentReferences().ToList(); + var allReferences = loadedReferences.Union(standardReferences).Union(recentReferences).ToList(); + + + StandardReferences = new SearchableReferencesViewModel(standardReferences); + StandardReferences.References.ItemPropertyChanged += StandardReferences_ListChanged; + + RecentReferences = new SearchableReferencesViewModel(recentReferences); + RecentReferences.References.ItemPropertyChanged += RecentReferences_ListChanged; + + InstalledReferences = new SearchableReferencesViewModel(allReferences.Where(r => r.IsInstalled)); + } + + + + void StandardReferences_ListChanged(object sender, PropertyChangedEventArgs e) + { + // prevent stack overflow + StandardReferences.References.ItemPropertyChanged -= StandardReferences_ListChanged; + RecentReferences.References.ItemPropertyChanged -= RecentReferences_ListChanged; + + var reference = sender as Reference; + if (reference == null) return; + + if (reference.IsInstalled) + { + if (!InstalledReferences.References.Contains(reference)) + { + InstalledReferences.References.Add(reference); + } + + // find the handle by equality operator + var recentReferenceIndex = RecentReferences.References.IndexOf(reference); + + // if not found, add it + if (recentReferenceIndex == -1) + { + RecentReferences.References.Add(reference); + } + // reassign the reference for auto syncing + else + { + RecentReferences.References.RemoveAt(recentReferenceIndex); + RecentReferences.References.Add(reference); + } + + } + else + { + var index = InstalledReferences.References.IndexOf(reference); + if (index >= 0) InstalledReferences.References.RemoveAt(index); + + } + + StandardReferences.References.ItemPropertyChanged += StandardReferences_ListChanged; + RecentReferences.References.ItemPropertyChanged += RecentReferences_ListChanged; + } + + void RecentReferences_ListChanged(object sender, PropertyChangedEventArgs e) + { + // prevent stack overflow + RecentReferences.References.ItemPropertyChanged -= RecentReferences_ListChanged; + + var reference = sender as Reference; + if (reference == null) return; + + if (reference.IsInstalled) + { + if (!InstalledReferences.References.Contains(reference)) + { + InstalledReferences.References.Add(reference); + } + } + else + { + var index = InstalledReferences.References.IndexOf(reference); + if (index >= 0) InstalledReferences.References.RemoveAt(index); + } + + RecentReferences.References.ItemPropertyChanged += RecentReferences_ListChanged; + } + + + + private static IEnumerable LoadStandardReferences() + { + var paths = StandardDotNetReferencesLocator.GetStandardDotNetReferencePaths() ?? Enumerable.Empty(); + + foreach (var path in paths) + { + Reference reference; + string message; + var assmeblyLoadable = Reference.TryLoadReference(path, out reference, out message); + if (!assmeblyLoadable) continue; + reference.IsStandard = true; + yield return reference; + } + } + + private static IEnumerable GetRecentReferences() + { + const string recentReferencesFilePath = "RecentReferences.txt"; + if (File.Exists(recentReferencesFilePath)) + { + try + { + return File + .ReadAllLines(recentReferencesFilePath) + .Select(r => + new Reference(r) + { + //Filters = + //{ + IsRecent = true + //} + }); + } + catch (Exception) + { + // TODO: Log the exception maybe? + } + } + + return Enumerable.Empty(); + } + } +} diff --git a/RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs b/RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs new file mode 100644 index 0000000..4598753 --- /dev/null +++ b/RazorPad.UI.Application/ViewModels/SearchableReferencesViewModel.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System.Linq; +using RazorPad.UI; +using RazorPad.UI.Wpf; + +namespace RazorPad.ViewModels +{ + public class SearchableReferencesViewModel : ViewModelBase + { + public SearchableReferencesViewModel(IEnumerable references) + { + References = new TheRealObservableCollection(references.Distinct().OrderBy(r => r.Name).ThenBy(r => r.Version).ToList()); + } + + public TheRealObservableCollection References { get; set; } + + + } +} diff --git a/RazorPad.UI.Application/ViewModels/StandardDotNetReferencesLocator.cs b/RazorPad.UI.Application/ViewModels/StandardDotNetReferencesLocator.cs new file mode 100644 index 0000000..e220507 --- /dev/null +++ b/RazorPad.UI.Application/ViewModels/StandardDotNetReferencesLocator.cs @@ -0,0 +1,86 @@ +using System.Collections.Generic; +using System.IO; +using System.Linq; +using Microsoft.Win32; + +namespace RazorPad.ViewModels +{ + public static class StandardDotNetReferencesLocator + { + private static readonly IEnumerable KnownRegistryLocations = new[] + { + @"SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.5.50131\AssemblyFoldersEx\Visual Studio v11.0 Reference Assemblies", + @"SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Visual Studio v11.0 Reference Assemblies", + @"SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Public Assemblies v11.0", + @"SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ASP.NET MVC 4", + @"SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ASP.NET MVC 3", + + }; + + private static readonly IEnumerable KnownFolderLocations = new[] + { + @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5", + @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5", + @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0", + @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v3.5", + @"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5", + @"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5", + @"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0", + @"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v3.5", + + + }; + + private static IEnumerable _discoveredLocations = new List(); + + private static IEnumerable _discoveredAssemblyPaths; + + private static void DiscoverKnownLocations() + { + //var d = new List(); + //foreach (var l in KnownRegistryLocations) + //{ + // d.AddRange(GetAssemblyFolders(l)); + //} + + _discoveredLocations = KnownRegistryLocations.SelectMany(GetAssemblyFolders) + .Union(KnownFolderLocations.Where(Directory.Exists)); + } + + private static IEnumerable GetAssemblyFolders(string knownLocation) + { + var locations = new List(); + + var key = Registry.LocalMachine.OpenSubKey(knownLocation); + + if (key != null) + { + locations.Add(key.GetValue("").ToString()); + if (key.SubKeyCount > 0) + { + locations.AddRange( + key.GetSubKeyNames().Select(key.OpenSubKey).Where(subKey => subKey != null) + .Select(subKey => subKey.GetValue("")).Where( + path => path != null && !string.IsNullOrEmpty(path.ToString())).Select( + path => path.ToString()) + ); + } + } + + return locations; + } + + public static IEnumerable GetStandardDotNetReferencePaths() + { + if (_discoveredAssemblyPaths != null && _discoveredAssemblyPaths.Any()) + return _discoveredAssemblyPaths; + + if (!_discoveredLocations.Any()) + DiscoverKnownLocations(); + + _discoveredAssemblyPaths = _discoveredLocations.SelectMany(l => Directory.GetFiles(l, "*.dll")); + + return _discoveredAssemblyPaths; + } + } +} diff --git a/RazorPad.UI.Application/ViewModels/ViewFilters.cs b/RazorPad.UI.Application/ViewModels/ViewFilters.cs new file mode 100644 index 0000000..eb8fdbf --- /dev/null +++ b/RazorPad.UI.Application/ViewModels/ViewFilters.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace RazorPad.ViewModels +{ + public class ReferenceViewFilters + { + public bool IsNotReadOnly { get; set; } + public bool IsInstalled { get; set; } + public bool IsRecent { get; set; } + } +} diff --git a/RazorPad.UI.Application/Views/AssemblyReferences.xaml b/RazorPad.UI.Application/Views/AssemblyReferences.xaml new file mode 100644 index 0000000..55df36a --- /dev/null +++ b/RazorPad.UI.Application/Views/AssemblyReferences.xaml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/RazorPad.UI.Application/Views/AssemblyReferences.xaml.cs b/RazorPad.UI.Application/Views/AssemblyReferences.xaml.cs new file mode 100644 index 0000000..c065037 --- /dev/null +++ b/RazorPad.UI.Application/Views/AssemblyReferences.xaml.cs @@ -0,0 +1,71 @@ +using System.Windows.Controls; +using System.Windows.Data; +using RazorPad.ViewModels; + +namespace RazorPad.Views +{ + /// + /// Interaction logic for AssemblyReferences.xaml + /// + public partial class AssemblyReferences + { + // parses the filter string + private static readonly Filter Filter = new Filter(); + + public AssemblyReferences() + { + InitializeComponent(); + UpdateResult(); + FilterText.Focus(); + } + + private void FilterTextTextChanged(object sender, TextChangedEventArgs e) + { + FilterList(); + UpdateResult(); + } + + /// + /// Filter the list synchronously. + /// + private void FilterList() + { + // parse the filter string once, the Filter object + // is used later in the FilterCallback method + Filter.Parse(FilterText.Text); + + // get the data the ListView is bound to + var view = CollectionViewSource.GetDefaultView(ReferencesListView.ItemsSource); + + // clear the list if the filter is empty, otherwise filter the list + view.Filter = (Filter.IsEmpty) + ? null + : view.Filter = FilterCallback; + } + + /// + /// Called for each item in the list. Return true if it + /// should be in the list, or false to not be in the list. + /// + private static bool FilterCallback(object item) + { + return (Filter.Matches(item as Reference)); + } + + /// + /// Update the number of items in the list. + /// + private void UpdateResult() + { + if (Filter.IsEmpty) + Result.Content = "No filter applied. To search for a reference by name, enter few letters in the textbox."; + else + { + Result.Content = string.Format("{0} item{1} containing \"{2}\".", + ReferencesListView.Items.Count, + ReferencesListView.Items.Count == 1 ? "" : "s", + FilterText.Text); + } + } + } +} diff --git a/RazorPad.UI.Application/Views/ListViewFilterText.xaml b/RazorPad.UI.Application/Views/ListViewFilterText.xaml new file mode 100644 index 0000000..80c6796 --- /dev/null +++ b/RazorPad.UI.Application/Views/ListViewFilterText.xaml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + +

Ze&*@+1(i5MhM>QNFQ}oI9atP5_QSrHnPZ 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