Skip to content

Commit aea998c

Browse files
committed
Add the ability to have multiple configurations
1 parent 47cad94 commit aea998c

File tree

8 files changed

+31
-7
lines changed

8 files changed

+31
-7
lines changed

src/Appysights/Models/IMenuItem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ public interface IMenuItem
66

77
public string Title { get; }
88

9-
public IconPack Icon { get; }
9+
public object Icon { get; }
1010
}
1111
}

src/Appysights/Models/MenuItem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ public MenuItem(string title)
2121

2222
public string Title => _title;
2323

24-
public IconPack Icon => null;
24+
public object Icon => null;
2525
}
2626
}

src/Appysights/Services/ConfigurationManager.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@ namespace Appysights.Services
77
public class ConfigurationManager : AppdataServiceBase<object>
88
{
99
public static string ConfigurationFolderName = "Configurations";
10+
public static string OldConfigurationName = "Services.json";
1011

1112
private List<ConfigurationService> _configurations;
1213

1314
public ConfigurationManager()
1415
{
1516
_configurations = new List<ConfigurationService>();
1617
}
18+
1719
public event EventHandler<ConfigurationService> NewConfiguration;
1820

1921

@@ -33,6 +35,12 @@ public override void Initialize()
3335
Directory.CreateDirectory(configFolderPath);
3436
}
3537

38+
var oldFilePath = Path.Combine(FolderPath, OldConfigurationName);
39+
if (File.Exists(oldFilePath))
40+
{
41+
File.Move(oldFilePath, Path.Combine(configFolderPath, OldConfigurationName));
42+
}
43+
3644
var files = Directory.GetFiles(Path.Combine(FolderPath, ConfigurationFolderName));
3745
foreach (var file in files)
3846
{

src/Appysights/ViewModels/DashboardViewModel.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Appysights.Models;
77
using Appysights.Services;
88
using Caliburn.Micro;
9+
using MahApps.Metro.IconPacks;
910

1011
namespace Appysights.ViewModels
1112
{
@@ -70,7 +71,7 @@ public bool HasConfiguration
7071

7172
public string Title => _configuration.Name;
7273

73-
public IconPack Icon => null;
74+
public object Icon => null;/*new PackIconFontAwesome() { Kind = PackIconFontAwesomeKind.BugSolid };*/
7475

7576
#endregion
7677

src/Appysights/ViewModels/HamburgerSelectorViewModel.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class HamburgerSelectorViewModel : PropertyChangedBase
1717

1818
public HamburgerSelectorViewModel(IEnumerable<IMenuItem> items, Action<IMenuItem> onClick, ConfigurationManager manager)
1919
{
20+
_manager = manager;
2021
_onClick = onClick;
2122
Items = new ObservableCollection<IMenuItem>(items);
2223
//OptionItems = new ObservableCollection<IMenuItem>(new List<IMenuItem>() { new MenuItem("Option") });
@@ -28,6 +29,7 @@ private void Manager_NewConfiguration(object sender, ConfigurationService e)
2829
{
2930
Items.Add(new DashboardViewModel(e.Entity));
3031
NotifyOfPropertyChange(() => Items);
32+
NotifyOfPropertyChange(() => IsVisible);
3133
}
3234

3335
public bool IsOpen
@@ -44,6 +46,8 @@ public bool IsOpen
4446
}
4547
}
4648

49+
public bool IsVisible => true; /*_manager.Configurations.Count() >= 2;*/
50+
4751
public ObservableCollection<IMenuItem> Items { get; set; }
4852

4953
public ObservableCollection<IMenuItem> OptionItems { get; set; }

src/Appysights/ViewModels/ShellViewModel.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public ShellViewModel(
5050

5151
var viewModels = manager.Configurations.Select(c => new DashboardViewModel(c.Entity));
5252
Menu = new HamburgerSelectorViewModel(viewModels, OnMenuClick, manager);
53-
53+
Menu.PropertyChanged +=Menu_PropertyChanged;
5454
if (viewModels.Any())
5555
{
5656
CurrentView = viewModels.FirstOrDefault();
@@ -64,11 +64,19 @@ public ShellViewModel(
6464
DisplayName = string.Empty;
6565
}
6666

67+
private void Menu_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
68+
{
69+
if (e.PropertyName == "IsVisible")
70+
{
71+
NotifyOfPropertyChange(() => MenuVisible);
72+
}
73+
}
74+
6775
#endregion
6876

6977
#region Properties
7078

71-
public PropertyChangedBase Menu { get; set; }
79+
public HamburgerSelectorViewModel Menu { get; set; }
7280

7381
public object CurrentView { get; set; }
7482

@@ -152,6 +160,8 @@ private set
152160

153161
public bool UpToDate => !NeedUpdate;
154162

163+
public bool MenuVisible => Menu.IsVisible;
164+
155165
#endregion
156166

157167
#region Methods

src/Appysights/Views/HamburgerSelectorView.xaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
<Grid>
5858
<Controls:HamburgerMenu
5959
IsPaneOpen="{Binding IsOpen}"
60-
Visibility="{Binding Multiple, Converter={StaticResource BooleanToVisibilityConverter}}"
60+
Visibility="{Binding IsVisible, Converter={StaticResource BooleanToVisibilityConverter}}"
6161
x:Name="Menu"
6262
DisplayMode="CompactOverlay"
6363
SelectedItem="{Binding SelectedItem, Converter={StaticResource SelectedItemConverter}}"
@@ -91,5 +91,6 @@
9191
</Controls:HamburgerMenu.OptionsItemsSource>-->
9292

9393
</Controls:HamburgerMenu>
94+
<Grid Width="50"></Grid>
9495
</Grid>
9596
</UserControl>

src/Appysights/Views/ShellView.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
<ColumnDefinition Width="48*"></ColumnDefinition>
6969
</Grid.ColumnDefinitions>
7070
<Button BorderThickness="0" x:Name="CloseFlyout" IsCancel="true" Width="0" Height="0"/>
71-
71+
7272
<!--This Grid is to set the Flyout Width-->
7373
<Grid x:Name="FlyoutWidth"/>
7474
<ContentControl x:Name="CurrentView" Margin="50,0,0,0" Grid.ColumnSpan="2"/>

0 commit comments

Comments
 (0)