public static Props GetProps( IEmployeeVacationsRegistryPropsFactory employeeVacationsRegistryPropsFactory, IEmployeeSickLeavesRegistryPropsFactory employeeSickLeavesRegistryPropsFactory) { return(Props.Create(() => new EmployeesActor( employeeVacationsRegistryPropsFactory, employeeSickLeavesRegistryPropsFactory))); }
public EmployeeActor( EmployeeStoredInformation storedInformation, IActorRef imageResizer, IActorRef vacationsCreditRegistry, IEmployeeVacationsRegistryPropsFactory employeeVacationsRegistryPropsFactory, IEmployeeSickLeavesRegistryPropsFactory employeeSickLeavesRegistryPropsFactory) { this.employeeMetadata = storedInformation.Metadata; this.PersistenceId = $"employee-info-{Uri.EscapeDataString(this.employeeMetadata.EmployeeId)}"; this.photo = Context.ActorOf(Props.Create(() => new PhotoActor(imageResizer)), "photo"); this.photo.Tell(new PhotoActor.SetSource(storedInformation.Photo)); this.employeeFeed = Context.ActorOf(FeedActor.GetProps(), "feed"); var persistenceSupervisorFactory = new PersistenceSupervisorFactory(); var vacationActorProps = EmployeeVacationsActor.CreateProps( this.employeeMetadata.EmployeeId, this.employeeFeed, vacationsCreditRegistry, employeeVacationsRegistryPropsFactory); var sickLeaveActorProps = EmployeeSickLeaveActor.CreateProps( this.employeeMetadata.EmployeeId, employeeSickLeavesRegistryPropsFactory); var workHoursActorProps = EmployeeWorkHoursActor.CreateProps(this.employeeMetadata.EmployeeId); var vacationsActor = Context.ActorOf(vacationActorProps, "vacations"); var sickLeavesActor = Context.ActorOf(sickLeaveActorProps, "sick-leaves"); var workHoursActor = Context.ActorOf( persistenceSupervisorFactory.Get(workHoursActorProps), "work-hours"); var calendarActor = Context.ActorOf( EmployeeCalendarActor.CreateProps( this.employeeMetadata.EmployeeId, vacationsActor, workHoursActor, sickLeavesActor), "all-calendar-events" ); var pendingActionsActor = Context.ActorOf( EmployeePendingActionsActor.CreateProps(this.employeeMetadata.EmployeeId), "pending-actions" ); this.calendar = new EmployeeCalendarContainer( vacationsActor, workHoursActor, sickLeavesActor, calendarActor, pendingActionsActor); }
public static Props GetProps( EmployeeStoredInformation employeeStoredInformation, IActorRef imageResizer, IActorRef vacationsCreditRegistry, IEmployeeVacationsRegistryPropsFactory employeeVacationsRegistryPropsFactory, IEmployeeSickLeavesRegistryPropsFactory employeeSickLeavesRegistryPropsFactory ) => Props.Create(() => new EmployeeActor( employeeStoredInformation, imageResizer, vacationsCreditRegistry, employeeVacationsRegistryPropsFactory, employeeSickLeavesRegistryPropsFactory));
public static Props CreateProps( string employeeId, IActorRef employeeFeed, IActorRef vacationsCreditRegistry, IEmployeeVacationsRegistryPropsFactory vacationsRegistryPropsFactory) { return(Props.Create(() => new EmployeeVacationsActor( employeeId, employeeFeed, vacationsCreditRegistry, vacationsRegistryPropsFactory) )); }
public EmployeesActor( IEmployeeVacationsRegistryPropsFactory employeeVacationsRegistryPropsFactory, IEmployeeSickLeavesRegistryPropsFactory employeeSickLeavesRegistryPropsFactory) { this.employeesInfoStorage = Context.ActorOf(EmployeesInfoStorage.GetProps, "employees-storage"); this.logger.Info($"Image resizers pool size: {ResizersCount}"); this.imageResizer = Context.ActorOf( Props.Create(() => new ImageResizer()).WithRouter(new RoundRobinPool(ResizersCount)), "image-resizer"); this.vacationsCreditRegistry = Context.ActorOf(VacationsCreditRegistry.GetProps, "vacations-credit-registry"); this.employeeVacationsRegistryPropsFactory = employeeVacationsRegistryPropsFactory; this.employeeSickLeavesRegistryPropsFactory = employeeSickLeavesRegistryPropsFactory; }
public OrganizationActor( IRefreshInformation refreshInformation, IEmployeeVacationsRegistryPropsFactory employeeVacationsRegistryPropsFactory, IEmployeeSickLeavesRegistryPropsFactory employeeSickLeavesRegistryPropsFactory, AppSettings appSettings) { this.employeesActor = Context.ActorOf( EmployeesActor.GetProps(employeeVacationsRegistryPropsFactory, employeeSickLeavesRegistryPropsFactory), "employees"); this.departmentsActor = Context.ActorOf( DepartmentsActor.GetProps(this.employeesActor, appSettings.DepartmentFeatures), "departments"); Context.System.Scheduler.ScheduleTellRepeatedly( TimeSpan.Zero, TimeSpan.FromMinutes(refreshInformation.IntervalInMinutes), this.Self, RefreshOrganizationInformation.Instance, this.Self); }
public EmployeeVacationsActor( string employeeId, IActorRef employeeFeed, IActorRef vacationsCreditRegistry, IEmployeeVacationsRegistryPropsFactory vacationsRegistryPropsFactory ) { this.employeeId = employeeId; this.employeeFeed = employeeFeed; this.vacationsCreditRegistry = vacationsCreditRegistry; this.calendarEventsApprovalsChecker = Context.ActorSelection(CalendarEventsApprovalsCheckerActorPath); var persistenceSupervisorFactory = new PersistenceSupervisorFactory(); var vacationsRegistryProps = vacationsRegistryPropsFactory.CreateProps(employeeId); this.vacationsRegistry = Context.ActorOf( persistenceSupervisorFactory.Get(vacationsRegistryProps), "vacations-registry"); Context.System.EventStream.Subscribe <CalendarEventChanged>(this.Self); Context.System.EventStream.Subscribe <CalendarEventRecoverComplete>(this.Self); }