Exemple #1
0
        public EmployeeBehalfViewModel()
        {
            if (!DesignerProperties.IsInDesignTool)
            {
                GetItemPermissions(PermissionItemName.EmployeeBehalfForm.ToString());
                //   GetCustomePermissions(PermissionItemName.EmployeeBehalf.ToString());
                MainRowList      = new SortableCollectionView <TblEmployeeBehalfViewModel>();
                SelectedMainRows = new ObservableCollection <TblEmployeeBehalfViewModel>();
                DetailList       = new SortableCollectionView <EmployeesView>();

                _empClient.GetEmpTableCompleted += (x, y) =>
                {
                    foreach (var item in y.Result)
                    {
                        MainRowList.Add(new TblEmployeeBehalfViewModel
                        {
                            Emplid    = item.Emplid,
                            EmpPerRow = item
                        }
                                        );
                        EmpViewList.Add(item);
                    }
                    Client.GetTblEmployeeBehalfAsync(new ObservableCollection <string>(EmpViewList.Select(e => e.Emplid)));
                    FullCount = y.fullCount;
                    Loading   = false;
                };

                Client.GetEmpTableCompleted += (s, sv) =>
                {
                    foreach (var row in sv.Result)
                    {
                        DetailList.Add(row);
                    }
                    DetailFullCount = sv.fullCount;
                    Loading         = false;
                };

                Client.UpdateOrInsertTblEmployeeBehalfCompleted += (x, y) =>
                {
                    var savedRow = (TblEmployeeBehalfViewModel)MainRowList.GetItemAt(y.outindex);
                    Loading = false;
                    if (savedRow != null)
                    {
                        savedRow.InjectFrom(y.Result);
                    }
                };

                Client.GetTblEmployeeBehalfCompleted += (x, y) =>
                {
                    foreach (var row in y.Result)
                    {
                        var tempRow = MainRowList.SingleOrDefault(w => w.Emplid == row.Emplid);
                        if (tempRow != null)
                        {
                            tempRow.ManagerId      = row.ManagerId;
                            tempRow.AttOperatorId  = row.AttOperatorId;
                            tempRow.Iserial        = row.Iserial;
                            tempRow.ManagerPerRow  = EmpViewList.FirstOrDefault(w => w.Emplid == row.ManagerId);
                            tempRow.EmpPerRow      = EmpViewList.FirstOrDefault(w => w.Emplid == row.Emplid);
                            tempRow.OperatorPerRow = EmpViewList.FirstOrDefault(w => w.Emplid == row.AttOperatorId);
                        }
                    }
                    Loading = false;
                };
                Client.DeleteTblEmployeeBehalfCompleted += (s, ev) =>
                {
                    if (ev.Error != null)
                    {
                        throw ev.Error;
                    }
                    Loading = false;
                    var oldrow = MainRowList.FirstOrDefault(x => x.Iserial == ev.Result);
                    if (oldrow != null)
                    {
                        MainRowList.Remove(oldrow);
                    }
                };
                GetMaindata();
            }
        }