public List <Equipment> Filter(EquipmentFilter equipment) { List <Equipment> equipments = new List <Equipment>(); ApiConn.DAO.AddParameter("@Name", equipment.Name); ApiConn.DAO.AddParameter("@SerialNumber", equipment.SerialNumber); ApiConn.DAO.AddParameter("@Id_Type", equipment.Id_Type); ApiConn.DAO.AddParameter("@StartDate", equipment.StartDate); ApiConn.DAO.AddParameter("@EndDate", equipment.EndDate); string cmd = @"SELECT Id,[Name],SerialNumber,Id_Type,RegisterDate,Description FROM Equipments WHERE ( (@Name IS NULL) OR ([Name] LIKE @Name) AND (@SerialNumber IS NULL) OR (SerialNumber = @SerialNumber) AND (@Id_Type IS NULL) OR (Id_Type = @Id_Type) AND (@StartDate IS NULL OR @EndDate IS NULL) OR (RegisterDate Between @StartDate AND @EndDate) )"; DataTable DT = ApiConn.DAO.ExecuteReader(cmd); foreach (DataRow row in DT.Rows) { equipments.Add(new Equipment { Id = int.Parse(row["Id"].ToString()), Name = row["Name"].ToString(), Description = row["Description"].ToString(), SerialNumber = int.Parse(row["SerialNumber"].ToString()), Id_Type = int.Parse(row["Id_Type"].ToString()), RegisterDate = (DateTime)row["RegisterDate"] }); } return(equipments); }
public List <Equipment> Filter(EquipmentFilter equipmentFilter) { IntegrityLayer.ValidateFilter(equipmentFilter); if (IntegrityLayer.Notifications.Count > 0) { this.Notifiable.Notifications = IntegrityLayer.Notifications; this.Notifiable.StatusCode = (int)HttpStatusCode.BadRequest; return(null); } List <Equipment> equipments = this.DAL.Filter(equipmentFilter); this.Notifiable.StatusCode = (int)HttpStatusCode.OK; return(equipments); }
public bool ValidateFilter(EquipmentFilter equipmentFilter) { if (equipmentFilter.Id != 0) { this._Notifications.Add(new Notification { field = "Id", value = equipmentFilter.Id, message = "Id can't be different than 0." }); } if (equipmentFilter.StartDate > equipmentFilter.EndDate) { this._Notifications.Add(new Notification { field = "StartDate", value = equipmentFilter.StartDate, message = "StartDate can't be higher than EndDate." }); } return(_Notifications.Count > 0 ? false : true); }