Ejemplo n.º 1
0
		public OperatorManagerVm(Dal.SoheilEdmContext uow)
		{
			_uow = uow;
			//OperatorsList.Add(OperatorEditorVm.CreateAnonymous());
			#region get all operators and convert them to VM
			OperatorDataService = new DataServices.OperatorDataService(_uow);
			var allOperators = OperatorDataService.GetActives();
			foreach (var oper in allOperators)
			{
				var operVm = new OperatorEditorVm(oper);

				//Notify
				// Add|Remove selected|deselected operator in vm
				operVm.SelectedOperatorChanged += Operator_SelectedOperatorChanged;

				//Updates role in uow
				operVm.OperatorRoleChanged += Operator_RoleChanged;

				OperatorsList.Add(operVm);
			} 
			#endregion

			#region init commands
			ClearSearchCommand = new Commands.Command(textBox =>
			{
				if (textBox is System.Windows.Controls.TextBox)
					(textBox as System.Windows.Controls.TextBox).Clear();
			});

			RefreshCommand = new Commands.Command(o => refresh()); 
			#endregion
		}
Ejemplo n.º 2
0
		/// <summary>
		/// Creates an instance of FilterBoxVmCollection to be used as a collection of guilty operators
		/// </summary>
		/// <param name="models">collection of ODR or OSR models which represent guilty operators</param>
		/// <returns></returns>
		public static FilterBoxVmCollection CreateForGuiltyOperators(dynamic models, Dal.SoheilEdmContext uow)
		{
			//find all active operators
			var operatorDs = new DataServices.OperatorDataService(uow);
			var operatorModels = operatorDs.GetActives();
			
			//create vm for all active operators
			var operatorVms = new FilterableItemVm[operatorModels.Count];
			for (int i = 0; i < operatorVms.Length; i++)
			{
				operatorVms[i] = FilterableItemVm.CreateForGuiltyOperator(operatorModels[i]);
			}

			//initiate this vm to auto-add operatorVms when a new FilterBoxVm is added to it
			var vm = new FilterBoxVmCollection();
			vm.AddCommand = new Commands.Command(o => vm.AddOperator(operatorVms));

			//add new FilterBoxVm for each of guilty operators and select the guilty operator in it
			if (models != null)
			{
				foreach (var model in models)
				{
					vm.AddOperator(operatorVms, model);
				}
			}

			return vm;
		}
Ejemplo n.º 3
0
		/// <summary>
		/// Initializes UOW, data services, rows and columns of this Vm
		/// <para>Fills the cells of the table according to type of the initializer node</para>
		/// </summary>
		void initializeData()
		{
			//Init DataServices

			var uow = new Soheil.Dal.SoheilEdmContext();
			_operatorDataService = new DataServices.OperatorDataService(uow);
			_aDataService = new DataServices.ActivityDataService(uow);
			_agDataService = new DataServices.ActivityGroupDataService(uow);
			if (_targetMode == TargetMode.General)
				_asDataService = new DataServices.ActivitySkillDataService(uow);
			else
				_pasDataService = new DataServices.ProductActivitySkillDataService(uow);

			//Init Data

			var a_g = _aDataService.GetActives().GroupBy(x => x.ActivityGroup);
			foreach (var activityGroup in a_g)
			{
				Groups.Add(new ActivityGroupColumnVm(activityGroup.Key));
				foreach (var activity in activityGroup)
				{
					Columns.Add(new ActivityColumnVm(activity));
				}
			}

			//add cells
			var rows = _operatorDataService.GetActives().Select(operatorModel => 
				new OperatorRowVm(operatorModel));

			switch (_targetMode)
			{
				case TargetMode.General:

					//General mode
					foreach (var row in rows)
					{
						foreach (var act in Columns)
						{
							var activitySkill = _asDataService.FindOrAdd(row.Id, act.Id);
							var skill = new ActivitySkillVm(activitySkill);
							skill.IluoChanged += saveSkillToDatabase;
							row.Cells.Add(skill);
						}
						Rows.Add(row);
					}
					break;
				case TargetMode.ProductRework:

					//ProductRework mode
					foreach (var row in rows)
					{
						foreach (var act in Columns)
						{
							var productActivitySkill = _pasDataService.FindOrAdd(SelectedItem.Id, row.Id, act.Id);
							var skill = new ProductReworkActivitySkillVm(productActivitySkill);
							skill.IluoChanged += saveSkillToDatabase;
							row.Cells.Add(skill);
						}
						Rows.Add(row);
					}
					break;
				case TargetMode.Product:

					//Product mode
					foreach (var row in rows)
					{
						foreach (var act in Columns)
						{
							//var productActivitySkill = _pasDataService.FindOrAdd(row.Id, act.Id);
							var skill = new ProductActivitySkillVm();
							skill.IluoChanged += saveSkillToDatabase;
							row.Cells.Add(skill);
						}
						Rows.Add(row);
					}
					break;
				case TargetMode.ProductGroup:

					//ProductGroup mode
					foreach (var row in rows)
					{
						foreach (var act in Columns)
						{
							//var activitySkill = _asDataService.FindOrAdd(row.Id, act.Id);
							var skill = new ProductGroupActivitySkillVm();
							skill.IluoChanged += saveSkillToDatabase;
							row.Cells.Add(skill);
						}
						Rows.Add(row);
					}
					break;
				default:
					break;
			}
		}