So I did some more testing and looked at the data. The grid data is not showing the correct data unless there is a new record added or a recorded removed. I have debugged the grid load event and it is not getting the current data for records already bound to the grid. I am getting the data in the gridload event and have a timer that calls the grid0.reload() method every 10 seconds.
Here is the grid loaddata event:
protected async System.Threading.Tasks.Task Grid0LoadData(LoadDataArgs args)
{
myTicketsGridEvent = args;
myTicketsGridBaseFilter = "";
myTicketsGridBaseFilter = "StatusTypeId != 5 && (AssignedToName == \"" + Security.User.Name + "\" || SecondaryAssignedToName.Contains(\"" + Security.User.Name + "\"))";
if (string.IsNullOrEmpty(myTicketsGridEvent.Filter)) {
myTicketsGridFilter = myTicketsGridBaseFilter;
}
if (!string.IsNullOrEmpty(myTicketsGridEvent.Filter)) {
myTicketsGridFilter = myTicketsGridEvent.Filter + " && " + myTicketsGridBaseFilter;
}
myTicketsSortDefault = "LastActivityDateTime asc";
myTicketsSort = myTicketsSortDefault;
if (!string.IsNullOrEmpty(myTicketsGridEvent.OrderBy)) {
myTicketsSort = myTicketsGridEvent.OrderBy;
}
try
{
var crownCrmDbGetTicketsResult = await CrownCrmDb.GetTickets(new Query() { Filter = $@"{myTicketsGridFilter}", OrderBy = $"{myTicketsSort}", Expand = "Tasks,Projects" });
getMyTicketsResult = crownCrmDbGetTicketsResult;
getMyTicketsResultCount = crownCrmDbGetTicketsResult.Count();
}
catch (Exception crownCrmDbGetTicketsException)
{
NotificationService.Notify(NotificationSeverity.Error, $"Error", $"{crownCrmDbGetTicketsException}", 5000);
}
}
And here is the timer elapsed event:
private async void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
await InvokeAsync(() =>
{
try
{
Console.WriteLine("grid0.Reload() and grid1.Reload() starting");
try
{
grid0.Reload();
}
catch (Exception crownCrmDbGetTicketsException012)
{
NotificationService.Notify(NotificationSeverity.Error, $"Error", $"{crownCrmDbGetTicketsException012}", 5000);
}
timerRefreshResult = DateTime.Now.ToString();
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
this.StateHasChanged();
});
}