Vorrei sapere se comprendo correttamente il principio di responsabilità singola.
La funzione seguente suppone di restituire l'archivio ID utente nel database utilizzando il nome dell'account SAM per passarvi.
Guarda i seguenti codici commentati, è vero riguardo alla singola responsabilità di una funzione / metodo?
Questa funzione viola il principio di responsabilità singola se quei codici non sono commentati?
public static int GetUserId(string domainName)
{
string message = "";
//Do not get badge number from this function,
//function should stay as single responsibility
//string badgeNumber = AsmUser.AsmUserHandler.GetBadgeNumber(domainName);
//if (badgeNumber == null)
//{
// message = "Badge number is null.";
// LogHandler.LogDebug(logger, message);
// return 0;
//}
//else
{
using (var db = new SurfaceTreatment.SurfaceTreatmentEntities())
{
string domain = domainName.Split('\')[0].Trim();
string samAccountName = domainName.Split('\')[1].Trim();
var user = db.t_ST_User
//.Where(_user => string.Compare(
// badgeNumber,
// _user.badgeNumber,
// StringComparison.OrdinalIgnoreCase) == 0)
.Where(_user => string.Compare(
domain,
_user.domainName.Trim(),
StringComparison.OrdinalIgnoreCase) == 0)
.Where(_user => string.Compare(
samAccountName,
_user.samAccountName.Trim(),
StringComparison.OrdinalIgnoreCase) == 0)
.Where(_user => _user.deleted == false)
.FirstOrDefault();
if (user == null)
{
message = "Failed to get user by badge number: " + domainName;
LogHandler.LogDebug(logger, message);
return 0;
}
else
{
return user.userId;
}
}
}
}