Você está na página 1de 3

public static class BOAcesso

{
public static Conection conectionUsers = new Conection(Constants.strUser
sConnection);
public static Conection conectionWSS = new Conection(Constants.strSQLCon
nection);
#region Mtodos
#region Find
/// <summary>
/// Retorna a lista dos usurios sem acesso
/// </summary>
/// <returns></returns>
public static List<VOAcesso> GetAcessos(DateTime hoje)
{
List<VOAcesso> acessos = new List<VOAcesso>();
#region Query
StringBuilder query = new StringBuilder();
query.Append("SELECT ");
query.Append("aspnet_Users.UserId, ");
query.Append("aspnet_Users.UserName AS Login, ");
query.Append("WSS_Content_Hyundai.dbo.vUsuario.Status, ");
query.Append("WSS_Content_Hyundai.dbo.vUsuario.Email, ");
query.Append("aspnet_Users.LastActivityDate, ");
query.Append("DATEDIFF(day, aspnet_Users.LastActivityDate, GETDATE()
) AS Dias ");
query.Append("FROM aspnet_Users ");
query.Append("INNER JOIN aspnet_Membership ON aspnet_Users.UserId =
aspnet_Membership.UserId ");
query.Append("INNER JOIN WSS_Content_Hyundai.dbo.vUsuario ON aspnet_
Users.UserName COLLATE DATABASE_DEFAULT = WSS_Content_Hyundai.dbo.vUsuario.Login
");
query.Append("WHERE ");
query.Append(" DATEDIFF(day, aspnet_Users.LastActivityDate, GETDA
TE()) >= 90 AND ");
query.Append(" vUsuario.Status IN ('Ativo','Pendente') ");
query.Append("ORDER BY ");
query.Append(" aspnet_Users.LastActivityDate DESC ");
#endregion
#region Populando Controles
DataTable dt = conectionUsers.GetItems(query.ToString());
foreach (DataRow row in dt.Rows)
{
VOAcesso a = new VOAcesso();
a.Dias = row["Dias"] != null ? Convert.ToInt32(row["Dias"].ToStr
ing()) : 0;
a.Email = row["Email"] != null ? row["Email"].ToString() : strin
g.Empty;
a.Login = row["Login"] != null ? row["Login"].ToString() : strin
g.Empty;
a.Status = row["Status"] != null ? row["Status"].ToString() : st
ring.Empty;
a.UltimoAcesso = row["LastActivityDate"] != null ? row["LastActi
vityDate"].ToString() : string.Empty;
a.UserId = row["UserId"] != null ? row["UserId"].ToString() : st
ring.Empty;
acessos.Add(a);
}
#endregion
return acessos;
}
#endregion
#region Update
/// <summary>
/// Mtodo que atualiza o Status do Usurio sem acesso a mais de 90 dias
/// </summary>
/// <param name="?"></param>
/// <returns></returns>
public static bool Update(VOAcesso a, DateTime hoje)
{
bool retorno = false;
try
{
#region Atualizando o Membership
StringBuilder query = new StringBuilder();
query.Append("UPDATE aspnet_Membership ");
query.Append("SET ");
query.Append(" IsApproved = 0, ");
query.Append(" IsLockedOut = 1, ");
query.Append(" LastLockoutDate = '").Append(hoje.ToString("yyyy
-MM-dd HH:MM:ss")).Append("' ");
query.Append("WHERE ");
query.Append(" UserId = '").Append(a.UserId).Append("' ");
conectionUsers.ExecuteQuery(query.ToString());
#endregion
#region Atualizando o WSS
query = new StringBuilder();
query.Append("UPDATE vUsuario ");
query.Append("SET ");
query.Append(" Status = 'Expirado' ");
query.Append("WHERE ");
query.Append(" Login = '").Append(a.Login).Append("' ");
conectionWSS.ExecuteQuery(query.ToString());
#endregion
retorno = true;
}
catch
{
retorno = false;
}
return retorno;
}
#endregion
#endregion
}

Você também pode gostar