public async Task HandleAsync(IMessageContext context, ReportAddedToIncident e) { string version = null; foreach (var contextCollection in e.Report.ContextCollections) { if (!contextCollection.Properties.TryGetValue(AppAssemblyVersion, out version)) { continue; } } if (version == null) { return; } var isNewIncident = e.Incident.ReportCount <= 1; var versionEntity = await _repository.FindVersionAsync(e.Incident.ApplicationId, version) ?? new ApplicationVersion(e.Incident.ApplicationId, e.Incident.ApplicationName, version); if (versionEntity.Version != version) { versionEntity = new ApplicationVersion(e.Incident.ApplicationId, e.Incident.ApplicationName, version); } versionEntity.UpdateReportDate(); if (versionEntity.Id == 0) { await _repository.CreateAsync(versionEntity); } else { await _repository.UpdateAsync(versionEntity); } _repository.SaveIncidentVersion(e.Incident.Id, versionEntity.Id); await IncreaseReportCounter(versionEntity.Id, isNewIncident); }