コード例 #1
0
        public void ContributeRecentInfoVehicle(IRecentInfoMessage message)
        {
            ContributionDetails contributionDetails;

            switch (message.OperationType)
            {
            case EventOperation.Create:
            case EventOperation.Update:

                // Find the entity
                PublicSafetyEntity entity;
                switch (message.ModuleType)
                {
                case ModuleType.CallForService:
                    entity = GetPublicSafetyEntity <CallForServiceVehicle>(message.EntityId);
                    break;

                default:
                    entity = GetPublicSafetyEntity <PublicSafetyVehicle>(message.EntityId);
                    break;
                }

                if (entity == null)
                {
                    return;
                }

                // Build the Contribution
                contributionDetails = CreateContributionDetails(message.IdentityId, entity);
                var contributionData = entity.As <RecentVehicleDetails>();
                var recentInfoType   = TranslateModuleType(message.ModuleType);

                // Contribute Data
                ContributeVehicle(contributionDetails, recentInfoType, contributionData);

                break;

            case EventOperation.Delete:

                contributionDetails = CreateContributionDetails(message.EntityId, message.EntityType);
                RemoveVehicle(contributionDetails);

                break;

            default:
                LogInvalidOperation();
                break;
            }
        }
コード例 #2
0
        public void ContributeRecentInfoPerson(IRecentInfoMessage message)
        {
            ContributionDetails contributionDetails;

            switch (message.OperationType)
            {
            case EventOperation.Create:
            case EventOperation.Update:

                // Find the entity
                var entity = GetPublicSafetyEntity <PublicSafetyPerson>(message.EntityId);
                if (entity == null)
                {
                    return;
                }

                // Build the Contribution
                contributionDetails = CreateContributionDetails(message.IdentityId, entity);

                // map the entity data into a dto
                var contributionData = entity.As <RecentPersonDetails>();
                var recentInfoType   = TranslateModuleType(message.ModuleType);

                // Contribute Data
                ContributePerson(contributionDetails, recentInfoType, contributionData);

                break;

            case EventOperation.Delete:

                contributionDetails = CreateContributionDetails(message.EntityId, message.EntityType);
                RemovePerson(contributionDetails);

                break;

            default:
                LogInvalidOperation();
                break;
            }
        }
コード例 #3
0
        public void ContributeRecentInfoEvent(IRecentInfoMessage message)
        {
            ContributionDetails contributionDetails;

            switch (message.OperationType)
            {
            case EventOperation.Create:
            case EventOperation.Update:

                // Find the entity
                var entity = GetPublicSafetyEntity <PublicSafetyEvent>(message.EntityId);
                if (entity == null)
                {
                    return;
                }

                // Build the Contribution
                contributionDetails = CreateContributionDetails(message.IdentityId, entity);

                // map the entity data into a recent info dto
                var contributionData = entity.As <RecentEventDetails>();
                var recentInfoType   = TranslateModuleType(message.ModuleType);

                // Find the Number data from the Event's Report
                // Get the number data from the event's Report
                var reportData = ReportsUnitOfWork.GetEntityQuery <Report>()
                                 .Where(x => x.Event.Id == message.EntityId)
                                 .Select(item => new { item.Number, item.CaseNumber, item.Event })
                                 .FirstOrDefault();

                if (reportData == null)
                {
                    Log.Error("Could not find Report for event '{0}'", message.EntityId);
                }

                else
                {
                    contributionData.Number     = reportData.Number;
                    contributionData.CaseNumber = reportData.CaseNumber;

                    //map extended data fields to recentinfo columns
                    if (message.ModuleType == ModuleType.Incident && reportData.Event != null &&
                        reportData.Event.ExtendedData != null)
                    {
                        contributionData.EnrouteTimeStamp =
                            reportData.Event.ExtendedData.Get <DateTime?>(TIME_ENROUTE);
                        contributionData.DispatchedTimeStamp =
                            reportData.Event.ExtendedData.Get <DateTime?>(TIME_ASSIGNED);
                        contributionData.OnsceneTimeStamp =
                            reportData.Event.ExtendedData.Get <DateTime?>(TIME_ARRIVED);
                        contributionData.CompleteTimeStamp =
                            reportData.Event.ExtendedData.Get <DateTime?>(DATE_CLEARED);
                        contributionData.CallNumber =
                            reportData.Event.ExtendedData.Get <string>(CALL_NUMBER);
                    }
                }

                // Contribute Data
                ContributeEvent(contributionDetails, recentInfoType, contributionData);

                break;

            case EventOperation.Delete:

                // Build the Contribution Details
                contributionDetails = CreateContributionDetails(message.EntityId, message.EntityType);

                // Remove the Data
                RemoveEvent(contributionDetails);
                break;

            default:
                LogInvalidOperation();
                break;
            }
        }