public bool Equals(IncidentFilterItem other) { if (other == null) { return(false); } if (this.Id != other.Id) { return(false); } return(this.Id == other.Id); }
public static ReadOnlyCollection <IncidentFilterItem> Filter(int companyId, DateTime?from, DateTime?to, bool statusIdentified, bool statusAnalyzed, bool statusInProgress, bool statusClosed, int origin, int departmentId, long providerId, long customerId) { /* CREATE PROCEDURE Incident_Filter * @CompanyId int, * @DateFrom datetime, * @DateTo datetime, * @StatusIdentified bit, * @StatusAnalyzed bit, * @StatusInProcess bit, * @StatusClosed bit, * @Origin int, * @DepartmentId int, * @ProviderId bigint, * @CustomerId bigint */ var res = new List <IncidentFilterItem>(); using (var cmd = new SqlCommand("Incident_Filter")) { using (var cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["cns"].ConnectionString)) { cmd.Connection = cnn; try { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(DataParameter.Input("@CompanyId", companyId)); cmd.Parameters.Add(DataParameter.Input("@DateFrom", from)); cmd.Parameters.Add(DataParameter.Input("@DateTo", to)); cmd.Parameters.Add(DataParameter.Input("@StatusIdentified", statusIdentified)); cmd.Parameters.Add(DataParameter.Input("@StatusAnalyzed", statusAnalyzed)); cmd.Parameters.Add(DataParameter.Input("@StatusInProcess", statusInProgress)); cmd.Parameters.Add(DataParameter.Input("@StatusClosed", statusClosed)); cmd.Parameters.Add(DataParameter.Input("@Origin", origin)); cmd.Parameters.Add(DataParameter.Input("@DepartmentId", departmentId)); cmd.Parameters.Add(DataParameter.Input("@ProviderId", providerId)); cmd.Parameters.Add(DataParameter.Input("@CustomerId", customerId)); cmd.Connection.Open(); using (var rdr = cmd.ExecuteReader()) { while (rdr.Read()) { var incidentActionId = rdr.GetInt64(ColumnsIncidentFilterGet.IncidentActionId); var item = new IncidentFilterItem { Id = rdr.GetInt64(ColumnsIncidentFilterGet.IncidentId), Description = rdr.GetString(ColumnsIncidentFilterGet.IncidentDescription), Code = string.Format(CultureInfo.InvariantCulture, "{0}", rdr.GetInt64(ColumnsIncidentFilterGet.Code)), Action = new IncidentAction { Id = incidentActionId, Description = rdr.GetString(ColumnsIncidentFilterGet.IncidentDescription) }, Origin = rdr.GetInt32(ColumnsIncidentFilterGet.Origin), Department = new Department { Id = rdr.GetInt32(ColumnsIncidentFilterGet.DepartmentId), Description = rdr.GetString(ColumnsIncidentFilterGet.DepartmentName) }, Provider = new Provider { Id = rdr.GetInt64(ColumnsIncidentFilterGet.ProviderId), Description = rdr.GetString(ColumnsIncidentFilterGet.ProviderDescription) }, Customer = new Customer { Id = rdr.GetInt64(ColumnsIncidentFilterGet.CustomerId), Description = rdr.GetString(ColumnsIncidentFilterGet.CustomerDescription) }, Amount = rdr.GetDecimal(ColumnsIncidentFilterGet.Amount), Status = rdr.GetInt32(ColumnsIncidentFilterGet.Status) }; if (incidentActionId != 0) { item.Action = new IncidentAction { Id = incidentActionId, Description = rdr.GetString(ColumnsIncidentFilterGet.IncidentActionDescription) }; } else { item.Action = IncidentAction.Empty; } if (!rdr.IsDBNull(ColumnsIncidentFilterGet.OpenDate)) { item.Open = rdr.GetDateTime(ColumnsIncidentFilterGet.OpenDate); } if (!rdr.IsDBNull(ColumnsIncidentFilterGet.CloseDate)) { item.Close = rdr.GetDateTime(ColumnsIncidentFilterGet.CloseDate); } res.Add(item); } } } finally { if (cmd.Connection.State != ConnectionState.Closed) { cmd.Connection.Close(); } } } } HttpContext.Current.Session["IncidentFilterData"] = res; return(new ReadOnlyCollection <IncidentFilterItem>(res)); }