Exemplo n.º 1
0
        public int AddAccount(IAccount account)
        {
            int id     = Interlocked.Increment(ref count);
            var newOne = new Account(id, account);

            if (string.IsNullOrEmpty(newOne.DomainName))
            {
                throw new AccountsException(AccountsErrors.DomainRequred);
            }

            if (accounts2.TryAdd(newOne.DomainName, newOne) == false)
            {
                throw new AccountsException(AccountsErrors.DomainUsed);
            }
            if (accounts1.TryAdd(id, newOne) == false)
            {
                throw new AccountsException(AccountsErrors.IdUsed);
            }

            try
            {
                files.IgnoryFileChanges(id);
                newOne.Serialize(files.GetFileName(id));
            }
            catch
            {
                accounts2.Remove(newOne.DomainName);
                accounts1.Remove(id);
                throw;
            }

            return(id);
        }
Exemplo n.º 2
0
        public void UpdateAccount(IAccount account)
        {
            if (account.Id == Account.InvalidId)
            {
                throw new AccountsException(AccountsErrors.InvalidId);
            }

            var newOne = new Account(account);
            var oldOne = accounts1.GetValue(account.Id);

            if (oldOne == null)
            {
                throw new AccountsException(AccountsErrors.OldNotFound);
            }
            if (string.IsNullOrEmpty(newOne.DomainName))
            {
                throw new AccountsException(AccountsErrors.DomainRequred);
            }

            if (newOne.DomainName != oldOne.DomainName)
            {
                if (accounts2.TryAdd(newOne.DomainName, newOne) == false)
                {
                    throw new AccountsException(AccountsErrors.DomainUsed);
                }
                accounts2.Remove(oldOne.DomainName);
            }

            files.IgnoryFileChanges(account.Id);
            newOne.Serialize(files.GetFileName(account.Id));
        }
Exemplo n.º 3
0
		public int AddAccount(IAccount account)
		{
			int id = Interlocked.Increment(ref count);
			var newOne = new Account(id, account);

			if (string.IsNullOrEmpty(newOne.DomainName))
				throw new AccountsException(AccountsErrors.DomainRequred);

			if (accounts2.TryAdd(newOne.DomainName, newOne) == false)
				throw new AccountsException(AccountsErrors.DomainUsed);
			if (accounts1.TryAdd(id, newOne) == false)
				throw new AccountsException(AccountsErrors.IdUsed);

			try
			{
				files.IgnoryFileChanges(id);
				newOne.Serialize(files.GetFileName(id));
			}
			catch
			{
				accounts2.Remove(newOne.DomainName);
				accounts1.Remove(id);
				throw;
			}

			return id;
		}
Exemplo n.º 4
0
		public void UpdateAccount(IAccount account)
		{
			if (account.Id == Account.InvalidId)
				throw new AccountsException(AccountsErrors.InvalidId);

			var newOne = new Account(account);
			var oldOne = accounts1.GetValue(account.Id);

			if (oldOne == null)
				throw new AccountsException(AccountsErrors.OldNotFound);
			if (string.IsNullOrEmpty(newOne.DomainName))
				throw new AccountsException(AccountsErrors.DomainRequred);

			if (newOne.DomainName != oldOne.DomainName)
			{
				if (accounts2.TryAdd(newOne.DomainName, newOne) == false)
					throw new AccountsException(AccountsErrors.DomainUsed);
				accounts2.Remove(oldOne.DomainName);
			}

			files.IgnoryFileChanges(account.Id);
			newOne.Serialize(files.GetFileName(account.Id));
		}