///
/// Retorna la asignación (técnico y mail) asociado a cierto tipo de elemento (equipamiento), o, en su defecto, de la categoría a la que pertenece.
///
/// Categoría del elemento
/// Tipo del elemento
/// Tupla Técnico/MailTo
public Tuple<User, string> GetAssignmentForEquipmentType(string equipmentCategoryID, string equipmentTypeID)
{
using (AIMModelConnection dc = new AIMModelConnection())
{
var query =
from p in dc.EquipmentAssignments
where (p.EquipmentCategoryID == equipmentCategoryID && p.EquipmentTypeID == equipmentTypeID) || (p.EquipmentCategoryID == equipmentCategoryID && p.EquipmentTypeID == null)
orderby p.EquipmentCategoryID, p.EquipmentTypeID descending
select p;
EquipmentAssignment assignment = query.FirstOrDefault<EquipmentAssignment>();
if (assignment != null)
return Tuple.Create<User, string>(assignment.User, assignment.CopyMailTo);
else
return null;
}
}
/// Retorna la asignación (técnico y mail) asociado a cierto tipo de elemento (equipamiento), o, en su defecto, de la categoría a la que pertenece.
///
/// Categoría del elemento
/// Tipo del elemento
///
public Tuple<User, string> GetAssignmentForEquipmentType(string equipmentCategoryID, string equipmentTypeID)
{
using (AIMModelConnection dc = new AIMModelConnection())
{
var query =
from p in dc.EquipmentAssignments
where (p.EquipmentCategoryID == equipmentCategoryID && p.EquipmentTypeID == equipmentTypeID) || (p.EquipmentCategoryID == equipmentCategoryID && p.EquipmentTypeID == null)
orderby p.EquipmentCategoryID, p.EquipmentTypeID descending
select p;
EquipmentAssignment assignment = query.FirstOrDefault<EquipmentAssignment>();
if (assignment != null)
return Tuple.Create<User, string>(assignment.User, assignment.CopyMailTo);
else
return null;
}
}
... Y uso
// Obtener asignación en función de categoría y tipo del elemento afectado. Tuple<User, string> assignment = GetAssignmentForEquipmentType(equipmentCategory, equipmentType); if (assignment != null) { if (assignment.Item1 != null) this.txtAssignedTo.Text = assignment.Item1.UserName; if (assignment.Item2 != null) this.txtMailTo.Text = assignment.Item2; }