private void AccountsAdditionalColumnsComponent_Change(object sender, ListItemsEventArgs<AccountDataRecordAdditionalColumn> e) => localCollection.UpdateCollection(e);
private void AccountsImportQueueRecordsComponent_Change(object sender, ListItemsEventArgs<ImportQueueRecord> e) => localCollection.UpdateCollection(e);
private void OnWorkerEmployeeChanged(object s, ListItemsEventArgs<Employee> e) { if (e.Action == ChangeAction.Add || e.Action == ChangeAction.Change) { var items = e.Action == ChangeAction.Add ? e.Items.Select(i => { var empVM = GetViewModelForEmployee(i); employees.Add(empVM); empVM.OnEditCommandExecuted += EmployeeViewModelOnEditCommandExecuted; return empVM; }).ToList() : e.Items.Join(employees, i => i.Id, n => n.Employee.Id, (i, n) => new { New = i, Old = n }).Select(i => { i.Old.CopyObjectFrom(GetViewModelForEmployee(i.New)); return i.Old; }).ToList(); items.ToList().ForEach(empVM => { var fullItems = departments.AsEnumerable().Traverse(d => d.Childs).ToArray(); var departmentItemForItem = fullItems.FirstOrDefault(d => d.Data.Department.Id == empVM?.Department?.Id); var staffingItemWithThisItem = fullItems.SelectMany(i => i.Data.Staffing).Where(sd => sd.Staffing?.Id == empVM.Employee.Stuffing?.Id).ToList(); var employeeItemWithThisItem = fullItems.SelectMany(i => i.Data.Staffing).Where(sd => sd.Employee?.Employee?.Id == empVM.Employee.Id).ToList(); employeeItemWithThisItem.ForEach(i => i.Employee = null); if (staffingItemWithThisItem.Count == 1) { staffingItemWithThisItem.ForEach(i => i.Employee = empVM); } else if (departmentItemForItem != null) { staffingItemWithThisItem.ForEach(i => i.Employee = null); departmentItemForItem.Data.Staffing.Add(new EmployeeAndStaffingData(this) { Staffing = empVM.Employee.Stuffing, Employee = empVM }); } }); } else if (e.Action == ChangeAction.Remove) { e.Items.Join(employees, i => i.Id, n => n.Employee.Id, (i, n) => n).ToList().ForEach(i => { var fullItems = departments.AsEnumerable().Traverse(d => d.Childs).ToArray(); var treeItemWithThisItem = fullItems.FirstOrDefault(d => d.Data.Staffing.Any(sd => sd.Employee.Employee.Id == i.Employee.Id)); if (treeItemWithThisItem != null) { var existedStaffing = treeItemWithThisItem.Data.Staffing.FirstOrDefault(sd => sd.Employee.Employee.Id == i.Employee.Id); existedStaffing.Employee = null; } employees.Remove(i); i.OnEditCommandExecuted -= EmployeeViewModelOnEditCommandExecuted; }); } CheckForFakeEmployee(); OnEmployeesChanged?.Invoke(this, e); }
private void OnWorkerStaffingChanged(object s, ListItemsEventArgs<StaffingService.Staffing> e) { var fullItems = departments.AsEnumerable().Traverse(d => d.Childs).ToArray(); if (e.Action == ChangeAction.Add) { e.Items.ToList().ForEach(i => { staffing.Add(i); var departmentItemForItem = fullItems.FirstOrDefault(d => d.Data.Department.Id == i.DepartmentId); var staffingtemWithThisItem = fullItems.Where(d => d.Data.Staffing.Any(sd => sd.Staffing.Id == i.Id)).ToArray(); foreach (var itm in staffingtemWithThisItem) { var itemsToRemove = itm.Data.Staffing.Where(sd => sd.Staffing.Id == i.Id).ToArray(); foreach (var itm2 in itemsToRemove) itm.Data.Staffing.Remove(itm2); } if (departmentItemForItem != null) { departmentItemForItem.Data.Staffing.Add(new EmployeeAndStaffingData(this) { Staffing = i, Employee = employees.FirstOrDefault(e2 => e2.Employee.Stuffing?.Id == i.Id) }); } }); } else if (e.Action == ChangeAction.Change) { e.Items.Join(staffing, i => i.Id, n => n.Id, (i, n) => new { New = i, Old = n }).ToList().ForEach(i => { i.New.CopyObjectTo(i.Old); var departmentItemForItem = fullItems.FirstOrDefault(d => d.Data.Department.Id == i.Old.DepartmentId); var staffingtemWithThisItem = fullItems.Where(d => d.Data.Staffing.Any(sd => sd.Staffing.Id == i.Old.Id)).ToArray(); foreach(var itm in staffingtemWithThisItem) { var itemsToRemove = itm.Data.Staffing.Where(sd => sd.Staffing.Id == i.Old.Id).ToArray(); foreach(var itm2 in itemsToRemove) itm.Data.Staffing.Remove(itm2); } if (departmentItemForItem != null) { departmentItemForItem.Data.Staffing.Add(new EmployeeAndStaffingData(this) { Staffing = i.New, Employee = employees.FirstOrDefault(e2 => e2.Employee.Stuffing?.Id == i.Old.Id) }); } }); } else if (e.Action == ChangeAction.Remove) { e.Items.Join(staffing, i => i.Id, n => n.Id, (i, n) => n).ToList().ForEach(i => { var treeItemWithThisItem = fullItems.FirstOrDefault(d => d.Data.Staffing.Any(sd => sd.Staffing.Id == i.Id)); if (treeItemWithThisItem != null) { var existedStaffing = treeItemWithThisItem.Data.Staffing.FirstOrDefault(sd => sd.Staffing.Id == i.Id); if (existedStaffing != null) treeItemWithThisItem.Data.Staffing.Remove(existedStaffing); } staffing.Remove(i); }); } OnStaffingChanged?.Invoke(this, e); }
private void OnWorkerDepartmentsChanged(object sender, ListItemsEventArgs<Department> e) { if (new[] { ChangeAction.Add, ChangeAction.Change }.Contains(e.Action)) foreach (var d in e.Items) { if (d.Id != 0) { Department depForUpdate = null; var existed = departments.AsEnumerable().Traverse(i => i.Childs).FirstOrDefault(i => i.Data.Department.Id == d.Id); if (existed != null) { existed.Data.Department.CopyObjectFrom(d); depForUpdate = existed.Data.Department; } else { var existedParent = departments.AsEnumerable().Traverse(i => i.Childs).FirstOrDefault(i => i.Data.Department.Id == d.ParentId); if (existedParent != null) { var newDep = new DepartmentEditViewModel() { Data = GetStaffingDataForDepartment(d), Parent = existedParent, Owner = this }; var existedChildsInTop = departments.Where(i => i.Data.Department.ParentId == d.Id); foreach (var c in existedChildsInTop) { c.Parent = newDep; newDep.Childs.Add(c); } existedParent.Childs.Add(newDep); depForUpdate = newDep.Data.Department; } else { var depVM = new DepartmentEditViewModel() { Data = GetStaffingDataForDepartment(d), Parent = this, Owner = this }; departments.Add(depVM); depForUpdate = depVM.Data.Department; } } if (depForUpdate != null) employees .Where(e2 => e2.Employee.Stuffing?.DepartmentId == depForUpdate.Id) .ToList() .ForEach(emp => emp.Department = depForUpdate); } } else foreach (var d in e.Items) if (d.Id != 0) { var existed = departments.AsEnumerable().Traverse(i => i.Childs).FirstOrDefault(i => i.Data.Department.Id == d.Id); if (existed != null) existed.Parent?.Childs.Remove(existed); employees .Where(e2 => e2.Employee.Stuffing?.DepartmentId == d.Id) .ToList() .ForEach(emp => emp.Department = null); } OnDepartmentsChanged?.Invoke(this, e); }
private void OnWorkerRightsChanged(object s, ListItemsEventArgs<Right> e) { if (e.Action == ChangeAction.Add) e.Items.ToList().ForEach(i => rights.Add(i)); else if (e.Action == ChangeAction.Change) e.Items.Join(rights, i => i.Id, n => n.Id, (i, n) => new { New = i, Old = n }).ToList().ForEach(i => i.New.CopyObjectTo(i.Old)); else if (e.Action == ChangeAction.Remove) e.Items.Join(rights, i => i.Id, n => n.Id, (i, n) => n).ToList().ForEach(i => rights.Remove(i)); OnRightsChanged?.Invoke(this, e); }
private void AccountsPhoneMarksComponent_Change(object sender, ListItemsEventArgs<AccountPhoneMark> e) => localCollection.UpdateCollection(e);
private void AccountsSeriesOfNumbersComponent_Change(object sender, ListItemsEventArgs<AccountSeriesOfNumbersRecord> e) { localCollection.UpdateCollection(e); }
private void OnWorkerVacationFunctionalGroupChanged(object sender, ListItemsEventArgs<VacationService.VacationFunctionalGroup> e) { if (new[] { ChangeAction.Add, ChangeAction.Change }.Contains(e.Action)) { foreach (var d in e.Items) { if (d.Id != 0) { var existedVacationFunctionalGroup = vacationFunctionalGroups.FirstOrDefault(l => l.Group.Id == d.Id); if (existedVacationFunctionalGroup != null) { existedVacationFunctionalGroup.Group.CopyObjectFrom(d); } else { var vm = new VacationFunctionalGroupViewModel(d, this); vm.PropertyChanged += (_, e2) => { if (e2.PropertyName == nameof(vm.IsChecked)) { EmployeeVacationsCollectionView.Refresh(); } }; vacationFunctionalGroups.Add(vm); } } } } else { foreach (var d in e.Items) { if (d.Id != 0) { var existedVacationFunctionalGroup = vacationFunctionalGroups.FirstOrDefault(l => l.Group.Id == d.Id); if (existedVacationFunctionalGroup != null) vacationFunctionalGroups.Remove(existedVacationFunctionalGroup); } } } OnVacationFunctionalGroupChanged?.Invoke(this, e); }
private void OnWorkerVacationChanged(object sender, ListItemsEventArgs<VacationService.Vacation> e) { if (new[] { ChangeAction.Add, ChangeAction.Change }.Contains(e.Action)) { foreach (var d in e.Items) { if (d.Id != 0) { var existedVacation = vacations.FirstOrDefault(l => l.Id == d.Id); if (existedVacation != null) { existedVacation.CopyObjectFrom(d); } else { vacations.Add(d); } } } } else { foreach (var d in e.Items) { if (d.Id != 0) { var existedVacation = vacations.FirstOrDefault(l => l.Id == d.Id); if (existedVacation != null) vacations.Remove(existedVacation); } } } OnVacationChanged?.Invoke(this, e); }
private void OnRightsChanged(object semder, ListItemsEventArgs<StaffingService.Right> e) => RunUnderDispatcher(new Action(() => UpdateRights()));
private void OnRightsChanged(object semder, ListItemsEventArgs<StaffingService.Right> e) { CanManageVacations = GetCanManageVacationsProperty(); }
public ListItemCollection GetListItems(ListItemsEventArgs args) { if (args.KBEntry != null && args.KBEntry.Style == KBEntryStyle.ListSQL) { string sql = args.KBEntry.Value; //if (string.IsNullOrEmpty(sql) == false) //{ // //using (IDbConnection conn = DataHelper.CreateConnection()) // //{ // // conn.Open(); // // using (IDbCommand cmd = conn.CreateCommand()) // // { // // cmd.CommandText = sql; // // IDataReader reader = cmd.ExecuteReader(); // // ListItemCollection list = CreateList(reader); // // reader.Close(); // // return list; // // }//using // //}//using //}//if }//if if (_ListSourceSQLs == null) { _ListSourceSQLs = new Dictionary<string, string>(); try { _ListSourceSQLs["advancedoclist"] = "Select userid listname, id listcode from userinfo where userflag='" + Share_Class.User.userflag + "' "; _ListSourceSQLs["reportdoclist"] = "Select userid listname, id listcode from userinfo where userflag='" + Share_Class.User.userflag + "' "; _ListSourceSQLs["radio_doctorlist"] = "Select userid listname, id listcode from userinfo where userflag='" + Share_Class.User.userflag + "' "; } catch { } _ListSourceSQLs["sqdeplist"] = "Select sqdep listname, id listcode From sqdep order by ID"; _ListSourceSQLs["doctorlist"] = "Select userid listname, id listcode From EMR_SysCode Where SysType='0012' Order by SysDesc"; _ListSourceSQLs["wardnolist"] = "Select userid listname, id listcode From EMR_SysCode Where SysType='0013' Order by SysDesc"; _ListSourceSQLs["machinetype"] = "Select userid listname, id listcode From EMR_SysCode Where SysType='0014' Order by SysDesc"; _ListSourceSQLs["diseasetypelist"] = "Select userid listname, id listcode From EMR_SysCode Where SysType='0015' Order by SysDesc"; _ListSourceSQLs["reportdisease"] = "Select userid listname, id listcode From EMR_SysCode Where SysType='0016' Order by SysDesc"; _ListSourceSQLs["otherchecklist"] = "Select userid listname, id listcode From EMR_SysCode Where SysType='0017' Order by SysDesc"; _ListSourceSQLs["modalitylist"] = "Select userid listname, id listcode From EMR_SysCode Where SysType='0018' Order by SysDesc"; _ListSourceSQLs["checktypelist"] = "Select userid listname, id listcode From EMR_SysCode Where SysType='0019' Order by SysDesc"; _ListSourceSQLs["dengjipartlist"] = "Select userid listname, id listcode From EMR_SysCode Where SysType='0020' Order by SysDesc"; _ListSourceSQLs["checkposlist"] = "Select userid listname, id listcode From EMR_SysCode Where SysType='0021' Order by SysDesc"; } string sourceName = args.SourceName; if (sourceName == null) { sourceName = ""; } sourceName = sourceName.Trim().ToUpper(); if (_ListSourceSQLs.ContainsKey(sourceName)) { string sql = _ListSourceSQLs[sourceName]; //using (IDbConnection conn = DataHelper.CreateConnection()) //{ // conn.Open(); // using (IDbCommand cmd = conn.CreateCommand()) // { // cmd.CommandText = sql; // IDataReader reader = cmd.ExecuteReader(); // ListItemCollection list = CreateList(reader); // reader.Close(); // return list; // }//using //}//using }//if return null; }