コード例 #1
0
        /// <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());
        }
コード例 #2
0
 public MapObjectService(IMapObjectRepository IMapObjectRepository)
 {
     iMapObjectRepository = IMapObjectRepository;
 }