Skip to content

Commit 0b0a603

Browse files
committed
Remove viewmodel when limit reached
1 parent f8d8d3a commit 0b0a603

File tree

4 files changed

+38
-11
lines changed

4 files changed

+38
-11
lines changed

src/Appysights/Services/AppInsightsService.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ public AppInsightsService(AppInsightsConfiguration configuration)
6666

6767
public event EventHandler<AppInsightEvent> NewEvent;
6868

69+
public event EventHandler<AppInsightEvent> DeleteEvent;
70+
6971
public event EventHandler Cleared;
7072

7173
public event EventHandler<bool> BusyChanged;
@@ -176,10 +178,11 @@ private void NewEventAction(AppInsightEvent appInsightEvent)
176178
return;
177179
}
178180

179-
var eventCount = _events.Count;
180-
if (eventCount >= Top)
181+
if (_events.Count >= Top)
181182
{
182-
_events.RemoveAt(eventCount -1);
183+
var firstEvent = _events.First();
184+
_events.Remove(firstEvent);
185+
DeleteEvent?.Invoke(this, firstEvent);
183186
}
184187

185188
_events.Add(appInsightEvent);

src/Appysights/ViewModels/AppInsightsViewModel.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public AppInsightsViewModel(AppInsightsService service, Position position)
4343
else
4444
{
4545
_service.NewEvent += Service_NewEvent;
46+
_service.DeleteEvent += Service_DeleteEvent;
4647
_currentEvents = _service.Events;
4748
DisplayNextPage();
4849
}
@@ -54,6 +55,7 @@ private void Service_BusyChanged(object sender, bool e)
5455
{
5556
IsBusy = false;
5657
_service.NewEvent += Service_NewEvent;
58+
_service.DeleteEvent += Service_DeleteEvent;
5759
_currentEvents = _service.Events;
5860
Execute.OnUIThread(() => DisplayNextPage());
5961
}
@@ -198,6 +200,7 @@ public void Previous()
198200
public void Dispose()
199201
{
200202
_service.NewEvent -= Service_NewEvent;
203+
_service.DeleteEvent -= Service_DeleteEvent;
201204
_service.BusyChanged -= Service_BusyChanged;
202205
}
203206

@@ -219,6 +222,20 @@ private void Service_NewEvent(object sender, AppInsightEvent e)
219222
Events.Insert(0, new EventTileViewModel(e, _position, RemoveEvent));
220223
}
221224

225+
private void Service_DeleteEvent(object sender, AppInsightEvent e)
226+
{
227+
if (RequestMode)
228+
{
229+
return;
230+
}
231+
232+
var viewModel = Events.FirstOrDefault(e => e.Id == e.Id);
233+
if (viewModel != null)
234+
{
235+
Events.Remove(viewModel);
236+
}
237+
}
238+
222239
private void DisplayNextPage()
223240
{
224241
if (Events.Count >= _currentEvents.Count())

src/Appysights/ViewModels/EventViewModelBase.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,16 @@ public EventViewModelBase(AppInsightEvent appEvent)
6060

6161
public string ActionName { get; set; }
6262

63+
public bool IsLessThen3Hours
64+
{
65+
get
66+
{
67+
var maximumDate = System.DateTime.Now.AddHours(-3);
68+
var result = System.DateTime.Compare(maximumDate, AppEvent.LocalDate);
69+
return result > 0 ? false : true;
70+
}
71+
}
72+
6373
protected AppInsightEvent AppEvent { get; private set; }
6474

6575
private string FormatActionName(CustomDimensions customDimensions)

src/Appysights/Views/EventTileView.xaml

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,12 @@
7272
<Border HorizontalAlignment="Right" VerticalAlignment="Top" CornerRadius="4" Margin="0,-4,-2,0" cal:Message.Attach="[Event MouseDown] = [Action Remove()]">
7373
<Border.Style>
7474
<Style TargetType="Border">
75-
<Setter Property="Background" >
76-
<Setter.Value>
77-
<LinearGradientBrush SpreadMethod="Repeat" EndPoint="0,0">
78-
<GradientStop Color="{DynamicResource Colors.HighLight}" Offset="{Binding LocalDate, Converter={StaticResource DateToColorConverter}}" />
79-
<GradientStop Color="{DynamicResource MahApps.Colors.Accent}" Offset="2" />
80-
</LinearGradientBrush>
81-
</Setter.Value>
82-
</Setter>
75+
<Setter Property="Background" Value="{DynamicResource MahApps.Brushes.Accent}"/>
76+
8377
<Style.Triggers>
78+
<DataTrigger Binding="{Binding IsLessThen3Hours}" Value="true">
79+
<Setter Property="Background" Value="{DynamicResource Brushes.HighLight}"/>
80+
</DataTrigger>
8481
<Trigger Property="IsMouseOver" Value="True">
8582
<Setter Property="Background" Value="{StaticResource Brushes.Error}"/>
8683
</Trigger>

0 commit comments

Comments
 (0)