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."
            };
        }
Esempio n. 2
0
        public override CompanyMessage ProcessEvent(Company company, IActionData eventData, IHub services)
        {
            var data = eventData as AdjustSalaryActionData;

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

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

            var previousSalary = employee.Salary;

            companyService.AdjustSalary(company, employee, data.Salary);

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

            return new CompanyMessage
            {
                Id = Utilities.InvalidId,
                DateCreated = gameClockService.CurrentDate,
                Status = CompanyMessageStatus.UnRead,
                Source = "Human Resources",
                Subject = "Employee Salary Adjustment",
                Message = $"{employee.Person.FirstName} {employee.Person.LastName}'s salary has been adjust from {previousSalary:C} to {employee.Salary:C}."
            };
        }