diff Agendas/trunk/src/Agendas.Web/Services/AccountMembershipService.cs @ 93:65f0b3d70c18

Reordenando clases e interfaces
author Nelo@Kenia.neluz.int
date Sat, 04 Jun 2011 00:07:20 -0300
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Web/Services/AccountMembershipService.cs	Sat Jun 04 00:07:20 2011 -0300
@@ -0,0 +1,70 @@
+using System;
+using System.Web.Security;
+
+namespace AltNetHispano.Agendas.Web.Services
+{
+	public class AccountMembershipService : IMembershipService
+	{
+		private readonly MembershipProvider _provider;
+
+		public AccountMembershipService()
+			: this(null)
+		{
+		}
+
+		public AccountMembershipService(MembershipProvider provider)
+		{
+			_provider = provider ?? Membership.Provider;
+		}
+
+		public int MinPasswordLength
+		{
+			get
+			{
+				return _provider.MinRequiredPasswordLength;
+			}
+		}
+
+		public bool ValidateUser(string userName, string password)
+		{
+			if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");
+			if (String.IsNullOrEmpty(password)) throw new ArgumentException("Value cannot be null or empty.", "password");
+
+			return _provider.ValidateUser(userName, password);
+		}
+
+		public MembershipCreateStatus CreateUser(string userName, string password, string email)
+		{
+			if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");
+			if (String.IsNullOrEmpty(password)) throw new ArgumentException("Value cannot be null or empty.", "password");
+			if (String.IsNullOrEmpty(email)) throw new ArgumentException("Value cannot be null or empty.", "email");
+
+			MembershipCreateStatus status;
+			_provider.CreateUser(userName, password, email, null, null, true, null, out status);
+			return status;
+		}
+
+		public bool ChangePassword(string userName, string oldPassword, string newPassword)
+		{
+			if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");
+			if (String.IsNullOrEmpty(oldPassword)) throw new ArgumentException("Value cannot be null or empty.", "oldPassword");
+			if (String.IsNullOrEmpty(newPassword)) throw new ArgumentException("Value cannot be null or empty.", "newPassword");
+
+			// The underlying ChangePassword() will throw an exception rather
+			// than return false in certain failure scenarios.
+			try
+			{
+				MembershipUser currentUser = _provider.GetUser(userName, true /* userIsOnline */);
+				return currentUser.ChangePassword(oldPassword, newPassword);
+			}
+			catch (ArgumentException)
+			{
+				return false;
+			}
+			catch (MembershipPasswordException)
+			{
+				return false;
+			}
+		}
+	}
+}
\ No newline at end of file