Example #1
0
        public EmployeePack GetAllEmployees(byte[] recentVersion)
        {
            var             a = OperationContext.Current.Host.Extensions.Count;
            string          currentUsername = ServiceSecurityContext.Current.PrimaryIdentity.Name;
            List <Employee> allEmployees    = EmployeeGateway.SelectAll(currentUsername);
            EmployeePack    pack            = new EmployeePack();

            pack.Employees = GetRecentVersionEmployees(allEmployees, recentVersion);
            pack.CountInDB = allEmployees.Count;
            return(pack);
        }
Example #2
0
        public void RefreshEmployees()
        {
            List <Entity> entities = new List <Entity>();

            entities.AddRange(employees);
            byte[]          recentVersion = AdditionalTools.GetMaxTimestamp(entities);
            EmployeePack    pack          = App.proxy.GetAllEmployees(recentVersion);
            List <Employee> employeesBuf  = new List <Employee>();

            employeesBuf.AddRange(employees);
            if (!UpdateEmployeesBufByPack(pack, employeesBuf))
            {
                TrimEmployees(employeesBuf);
            }
            UploadFromEmployeesBuf(employeesBuf);
        }
Example #3
0
 bool UpdateEmployeesBufByPack(EmployeePack pack, List <Employee> employeesBuf)
 {
     if (pack.Employees.Count > 0)
     {
         foreach (Employee item in pack.Employees)
         {
             Employee employee = employeesBuf.FirstOrDefault(row => string.Compare(row.Username, item.Username) == 0);
             if (employee == null)
             {
                 employeesBuf.Add(item);
             }
             else
             {
                 employeesBuf.Remove(employee);
                 employeesBuf.Add(item);
             }
         }
         /// Восстанавливаем нормальный порядок
         employeesBuf = employeesBuf.OrderBy(row => row.SecondName).ToList();
     }
     return(employeesBuf.Count == pack.CountInDB);
 }