public override CompanyMessage ProcessEvent(Company company, IActionData eventData, IHub services)
        {
            var data = eventData as AdjustAllocationActionData;

            var employee = company.GetEmployee(data.PersonId);

            var project = company.GetProject(data.ProjectId);

            var companyService = services.Resolve<ICompanyService>();

            companyService.AdjustAllocation(company, employee, project, data.Percentage, data.Role);

            var gameClockService = services.Resolve<IGameClockService>();

            return new CompanyMessage
            {
                Id = Utilities.InvalidId,
                DateCreated = gameClockService.CurrentDate,
                Status = CompanyMessageStatus.UnRead,
                Source = "Project Management",
                Subject = "Employee has been reallocated.",
                Message = $"{employee.Person.FirstName} {employee.Person.LastName} has been directed to work on {project.Definition.Name} {data.Percentage:P} in a {data.Role} role."
            };
        }