private static int SaveMailboxServer(IMailboxServerDao daoMailboxServer, MailboxServer server,
                                      int providerId)
 {
     server.IsUserData = true;
     server.ProviderId = providerId;
     return(daoMailboxServer.SaveServer(server));
 }
        private static int GetMailboxServerId(IMailboxServerDao daoMailboxServer, MailboxServer dbServer,
                                              MailboxServer newServer, List <MailboxServer> trustedServers)
        {
            int serverId;

            if (!dbServer.Equals(newServer))
            {
                // Server settings have been changed
                if (dbServer.IsUserData)
                {
                    if (trustedServers != null)
                    {
                        var foundInServer = trustedServers.FirstOrDefault(ts => ts.Equals(newServer));
                        if (foundInServer != null)
                        {
                            daoMailboxServer.DelteServer(dbServer.Id);
                            newServer.Id         = foundInServer.Id;
                            newServer.IsUserData = false;
                        }
                        else
                        {
                            newServer.Id = dbServer.Id;
                            newServer.Id = SaveMailboxServer(daoMailboxServer, newServer, dbServer.ProviderId);
                        }
                    }
                    else
                    {
                        newServer.Id = dbServer.Id;
                        newServer.Id = SaveMailboxServer(daoMailboxServer, newServer, dbServer.ProviderId);
                    }
                }
                else
                {
                    if (trustedServers != null)
                    {
                        var foundInServer = trustedServers.FirstOrDefault(ts => ts.Equals(newServer));
                        if (foundInServer != null)
                        {
                            newServer.Id         = foundInServer.Id;
                            newServer.IsUserData = false;
                        }
                        else
                        {
                            newServer.Id = SaveMailboxServer(daoMailboxServer, newServer, dbServer.ProviderId);
                        }
                    }
                    else
                    {
                        newServer.Id = SaveMailboxServer(daoMailboxServer, newServer, dbServer.ProviderId);
                    }
                }

                serverId = newServer.Id;
            }
            else
            {
                serverId = dbServer.Id;
            }

            return(serverId);
        }