private static void RefreshSerials(Dictionary <string, Credentials> credentials)
        {
            Dictionary <string, List <SerialInfo> > serials    = new Dictionary <string, List <SerialInfo> >();
            Dictionary <string, List <SerialInfo> > newSerials = new Dictionary <string, List <SerialInfo> >();
            IOTService service = GetOTService();

            foreach (var c in credentials)
            {
                serials.Add(c.Key, new List <SerialInfo>());
                var serialsResponse = service.GetSerials(new GetSerialsRequest {
                    Equipment = c.Value.Equipment, User = c.Value.UserName, Password = c.Value.Password
                });
                if (serialsResponse.Succeeded)
                {
                    foreach (var o in serialsResponse.Orders)
                    {
                        serials[c.Key].AddRange(o.Serials.Select(s => new SerialInfo
                        {
                            Operation    = o.Operation,
                            Order        = o.Order,
                            ProductCode  = o.ProductCode,
                            Status       = s.Status,
                            SerialNumber = s.SerialNumber,
                            OperationId  = o.OperationId
                        }).ToList());
                    }
                }
                if (!serials[c.Key].Any())
                {
                    serials.Remove(c.Key);
                }
            }

            lock (_clientMessagesLock)
            {
                foreach (var equipClient in serials)
                {
                    List <SerialInfo> clientSerials = new List <SerialInfo>();
                    foreach (var s in equipClient.Value)
                    {
                        if (!clients[equipClient.Key].Messages.Select(m => m.Value as MessageInfo <SerialInfo>).Any(m => m != null && m.Data.SerialNumber == s.SerialNumber && m.Data.Operation == s.Operation && m.Data.Order == s.Order && m.Data.ProductCode == s.ProductCode))
                        {
                            clientSerials.Add(new SerialInfo
                            {
                                Operation    = s.Operation,
                                Order        = s.Order,
                                ProductCode  = s.ProductCode,
                                SerialNumber = s.SerialNumber,
                                Status       = s.Status,
                                OperationId  = s.OperationId
                            });
                        }
                    }
                    if (clientSerials.Any())
                    {
                        newSerials.Add(equipClient.Key, clientSerials);
                    }
                }
            }
            foreach (var clientId in newSerials)
            {
                foreach (var serialInfo in clientId.Value)
                {
                    SendMessage(clientId.Key, OTMessageType.Serial, serialInfo.SerialNumber, string.Empty, serialInfo);
                }
            }
        }