diff --git a/Models/Project.cs b/Models/Project.cs
index 8034bd6..6c0d2bc 100644
--- a/Models/Project.cs
+++ b/Models/Project.cs
@@ -1,4 +1,5 @@
-using Newtonsoft.Json;
+using GalaSoft.MvvmLight;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using WebResourceManager.Data;
@@ -6,14 +7,19 @@
namespace WebResourceManager.Models
{
- public class Project
+ public class Project : ObservableObject
{
private const string OVERRIDE_FILE_NAME = ".webresourceoverrides";
private const string CONNECTION_KEY = "WebResourceManager";
public Guid Id { get; set; }
- public string Name { get; set; }
+ private string _name;
+ public string Name
+ {
+ get { return _name; }
+ set { Set(ref _name, value); }
+ }
public string Path { get; set; }
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d27ec26
--- /dev/null
+++ b/README.md
@@ -0,0 +1,29 @@
+# Web Resource Manager
+A utility to improve your Dynamics 365 Web Resource workflow.
+
+
+
+# Key Features
+- Upload and publish multiple files at a time
+- Monitor the local file system for changes and automatically select the files for upload
+- Monitor the remote system for changes to prevent conflicts with multiple devs and warn before upload
+- View a Web Resource in Dynamics
+- Quickly open a file in VS Code
+- Quickly open a folder in VS Code (particularly useful for custom UI projects)
+- Open a folder in Windows Explorer
+- Integration with Imposter for Fiddler
+- Diff local files vs. their remote counterparts
+- Automatic "namespacing" for files (ex. c:\source\project\webresources\form\account.js becomes new_/form/account.js)
+- View a list of all web resources in the target solution and their current status, mixed with all local files to see what's where at a glance
+- Filtered the previously mentioned views further to just see remote, local, modified, etc.
+
+# Optional "Requirements"
+1. [Visual Studio Code](https://code.visualstudio.com/): Recommended editor/diff tool
+2. [Fiddler](http://www.telerik.com/fiddler) 4.5+: For debugging without uploading over, and over, and over again
+3. [Imposter for Fiddler](https://github.com/gotdibbs/Imposter.Fiddler): Similar to Fiddler's AutoResponder, but with more power
+
+# Installation
+Please see the [RELEASES](../../releases)
+
+# Problems? Suggestions?
+Pull requests speak louder than issues, but I'll take both.
\ No newline at end of file
diff --git a/ViewModels/MainWindowViewModel.cs b/ViewModels/MainWindowViewModel.cs
index 565c11f..5f966b2 100644
--- a/ViewModels/MainWindowViewModel.cs
+++ b/ViewModels/MainWindowViewModel.cs
@@ -420,7 +420,12 @@ private void LoadSettings()
_settings = Settings.Load();
Profiles = new ObservableCollection(ImposterSettings.Load().Profiles);
- Projects = new ObservableCollection(_settings.Projects.OrderBy(p => p.Name));
+ Projects = new ObservableCollection();
+ Projects.CollectionChanged += Projects_CollectionChanged;
+ foreach (var project in _settings.Projects.OrderBy(p => p.Name))
+ {
+ Projects.Add(project);
+ }
if (Projects.Count > 0)
{
@@ -438,6 +443,28 @@ private void LoadSettings()
}
}
+ private void Projects_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
+ {
+ if (e.OldItems != null)
+ {
+ foreach (INotifyPropertyChanged item in e.OldItems)
+ item.PropertyChanged -= Project_PropertyChanged;
+ }
+ if (e.NewItems != null)
+ {
+ foreach (INotifyPropertyChanged item in e.NewItems)
+ item.PropertyChanged += Project_PropertyChanged;
+ }
+ }
+
+ private void Project_PropertyChanged(object sender, PropertyChangedEventArgs e)
+ {
+ if (e.PropertyName == "Name")
+ {
+ RaisePropertyChanged(() => SelectedProjectName);
+ }
+ }
+
private async void LoadProject()
{
if (SelectedProject == null || string.IsNullOrEmpty(SelectedProject.ConnectionString))
@@ -908,7 +935,7 @@ private void StartTimer()
private async void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
- if (!IsConnected)
+ if (!IsConnected || IsSettingsVisible)
{
return;
}
diff --git a/screenshot.JPG b/screenshot.JPG
new file mode 100644
index 0000000..ca8d1c5
Binary files /dev/null and b/screenshot.JPG differ