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);
        }