public static ClientsGroupingModel UpdateClientsToDelete(ClientsGroupingModel clients)
        {
            var clientsGroupingModel = new ClientsGroupingModel
            {
                UpdatedClients = new List<Client>(),//new list
                ClientsWithIncrementedDreams = clients.ClientsWithIncrementedDreams,
                FirstDreamClients = clients.FirstDreamClients,
            };

            using (var context = new BaseDbContext())
            {
                foreach (var client in clients.NewClients)
                {
                    var originalClient = new Client();

                    context.Configuration.ProxyCreationEnabled = false;

                    originalClient =
                        clients.DeletedClients.SingleOrDefault(cl => cl.Phone == client.Phone);

                    if (originalClient != null)
                    {
                        client.Id = originalClient.Id;

                        clientsGroupingModel.UpdatedClients.Add(client);

                        var clientsWithIncrementedDreams = UpdatedClientDreamsModel.ClientViewModelConverter(client,
                            originalClient.Dreams);

                        //check dream
                        if (client.Dreams > originalClient.Dreams &&
                            !clientsGroupingModel.ClientsWithIncrementedDreams.Contains(clientsWithIncrementedDreams))
                        {
                            clientsGroupingModel.ClientsWithIncrementedDreams.Add(clientsWithIncrementedDreams);
                        }
                        //check if dream changed from 0 to 1
                        if (client.Dreams == 1 && originalClient.Dreams == 0 &&
                            !clientsGroupingModel.FirstDreamClients.Contains(client))
                        {
                            clientsGroupingModel.FirstDreamClients.Add(client);
                        }
                    }
                    else
                    {
                        // add new client
                        var newClient = new Client()
                        {
                            Id = client.Id,
                            UserName = client.UserName,
                            FirstName = client.FirstName,
                            LastName = client.LastName,
                            Country = client.Country,
                            RegistrationDate = client.RegistrationDate,
                            Phone = client.Phone,
                            Dreams = client.Dreams,
                            Email = client.Email,
                            UpdatedDate = DateTime.UtcNow,
                            LoadedDate = DateTime.UtcNow,
                            IsSentReminderSms = false
                        };
                        clientsGroupingModel.NewClients.Add(newClient);
                    }
                }
                // add deleted clients
                foreach (var originalClient in clients.DeletedClients.ToList()
                    .Where(originalClient => clients.NewClients.All(c => c.Phone != originalClient.Phone)))
                {
                    if (originalClient.IsDeleted == false)
                    {
                        clientsGroupingModel.DeletedClients.Add(originalClient);
                    }
                }
                context.SaveChanges();
            }
            return clientsGroupingModel;
        }
        public static ClientsGroupingModel UpdateClients(List<Client> clients, Guid importLogId)
        {
            var clientsGroupingModel = new ClientsGroupingModel();

            using (var context = new BaseDbContext())
            {
                foreach (var client in clients)
                {
                    var originalClient = new Client();

                    context.Configuration.ProxyCreationEnabled = false;

                    originalClient =
                        context.Clients.SingleOrDefault(cl => cl.UserName == client.UserName && cl.Phone == client.Phone && cl.IsDeleted==false);

                    if (originalClient != null)
                    {
                        if (originalClient.IsDeleted == true)
                        {
                            continue;
                        }
                        else
                        {
                            client.Id = originalClient.Id;

                            var clientsWithIncrementedDreams = UpdatedClientDreamsModel.ClientViewModelConverter(client,
                                originalClient.Dreams);

                            //check dream
                            if (client.Dreams > originalClient.Dreams &&
                                !clientsGroupingModel.ClientsWithIncrementedDreams.Contains(clientsWithIncrementedDreams))
                            {
                                clientsGroupingModel.ClientsWithIncrementedDreams.Add(clientsWithIncrementedDreams);
                            }
                            //check if dream changed from 0 to 1
                            if (client.Dreams == 1 && originalClient.Dreams == 0 &&
                                !clientsGroupingModel.FirstDreamClients.Contains(client))
                            {
                                clientsGroupingModel.FirstDreamClients.Add(client);
                            }

                            //change updateDate if Dreams changed
                            if (client.Dreams != originalClient.Dreams)
                            {
                                client.UpdatedDate = DateTime.UtcNow;
                            }
                            else
                            {
                                client.UpdatedDate = originalClient.UpdatedDate;
                            }
                            client.IsSentReminderSms = originalClient.IsSentReminderSms;

                            // update scalar properties(save in DB)
                            var parentEntry = context.Entry(originalClient);
                            parentEntry.CurrentValues.SetValues(client);

                            clientsGroupingModel.UpdatedClients.Add(client);// not need
                        }
                    }
                    else
                    {
                        //add new client
                        var newClient = new Client()
                        {
                            Id = client.Id,
                            UserName = client.UserName,
                            FirstName = client.FirstName,
                            LastName = client.LastName,
                            Country = client.Country,
                            RegistrationDate = client.RegistrationDate,
                            Phone = client.Phone,
                            Dreams = client.Dreams,
                            Email = client.Email,
                            UpdatedDate = DateTime.UtcNow,
                            LoadedDate = DateTime.UtcNow,
                            IsSentReminderSms = false,
                            IsDeleted = false
                        };
                        clientsGroupingModel.NewClients.Add(newClient);
                    }
                }

                // add deleted clients
                foreach (var originalClient in context.Clients.ToList()
                    .Where(originalClient => clients.All(c => c.UserName != originalClient.UserName)))
                {
                    if (originalClient.IsDeleted == false)
                    {
                        clientsGroupingModel.DeletedClients.Add(originalClient);
                    }
                }
                AddImportLogClientUpdate(clientsGroupingModel.UpdatedClients);
                context.SaveChanges();
                _unitOfWork.ImportLogClientRepository.Save();//можливо винести з метода для швидкодії
            }
            return UpdateClientsToDelete(clientsGroupingModel);
        }