/// <summary> /// Initializes a new instance of the MainViewModel class. /// </summary> /// <param name="unitOfWork">UnitOfWork for co-ordinating changes</param> /// <param name="departmentRepository">Repository for querying department data</param> /// <param name="employeeRepository">Repository for querying employee data</param> public MainViewModel(IUnitOfWork unitOfWork, IDepartmentRepository departmentRepository, IEmployeeRepository employeeRepository, IMapObjectRepository mapRepository) { if (unitOfWork == null) { throw new ArgumentNullException("unitOfWork"); } if (departmentRepository == null) { throw new ArgumentNullException("departmentRepository"); } if (employeeRepository == null) { throw new ArgumentNullException("employeeRepository"); } if (mapRepository == null) { throw new ArgumentNullException("mapRepository"); } this.unitOfWork = unitOfWork; // Build data structures to populate areas of the application surface ObservableCollection <EmployeeViewModel> allEmployees = new ObservableCollection <EmployeeViewModel>(); ObservableCollection <DepartmentViewModel> allDepartments = new ObservableCollection <DepartmentViewModel>(); MapObject map;//= new MapObject(); foreach (var dep in departmentRepository.GetAllDepartments()) { allDepartments.Add(new DepartmentViewModel(dep)); } foreach (var emp in employeeRepository.GetAllEmployees()) { allEmployees.Add(new EmployeeViewModel(emp, allEmployees, allDepartments, this.unitOfWork)); } map = mapRepository.GetMap(); //map.AxMap = new ESRI.ArcGIS.MapControl.AxMapControl(); // mapViewModel = new MapViewModel(); this.DepartmentWorkspace = new DepartmentWorkspaceViewModel(allDepartments, unitOfWork); this.EmployeeWorkspace = new EmployeeWorkspaceViewModel(allEmployees, allDepartments, unitOfWork); this.MapWorkspace = new MapWorkSpaceViewModel(map, unitOfWork); // this.MapLayers = map.ActiveView.FocusMap.get_Layers(); // Build non-interactive list of long serving employees List <BasicEmployeeViewModel> longServingEmployees = new List <BasicEmployeeViewModel>(); foreach (var emp in employeeRepository.GetLongestServingEmployees(5)) { longServingEmployees.Add(new BasicEmployeeViewModel(emp)); } this.LongServingEmployees = longServingEmployees; // this. MapLayers= map.LayersCollection ; this.SaveCommand = new DelegateCommand((o) => this.Save()); this.openMapCommand = new DelegateCommand((o) => this.openMap()); this.addFeatureCommand = new DelegateCommand((o) => this.addFeature()); }
public MapObjectService(IMapObjectRepository IMapObjectRepository) { iMapObjectRepository = IMapObjectRepository; }