public Fee GetFeeData(Fee returnValue) { using (OleDbConnection connection = new OleDbConnection(ConnectionString)) { using (OleDbCommand sqlCommand = connection.CreateCommand()) { string fields = returnValue.GetFieldNames(); sqlCommand.CommandText = "SELECT " + fields + ", Adjustment, AdjustmentExplanation, IsPriority, IsEmergency, IsRapidResponse FROM tblFees WHERE ID = " + returnValue.ID; connection.Open(); OleDbDataReader reader = sqlCommand.ExecuteReader(); reader.Read(); int index = 0; foreach (ICharge charge in returnValue.Charges) { switch (charge.Type) { case "variable": VariableCharge vCharge = (VariableCharge)charge; vCharge.Count = reader.GetDecimalSafe(index++); break; case "categorical": CategoricalCharge cCharge = (CategoricalCharge)charge; cCharge.Count = reader.GetDecimalSafe(index++); break; case "boolean": BooleanCharge bCharge = (BooleanCharge)charge; bCharge.IsIncurred = reader.GetBooleanSafe(index++); break; } } returnValue.Adjustment = reader.GetDecimalSafe(index++); returnValue.AdjustmentExplanation = reader.GetStringSafe(index++); returnValue.IsPriority = reader.GetBooleanSafe(index++); returnValue.IsEmergency = reader.GetBooleanSafe(index++); returnValue.IsRapidResponse = reader.GetBooleanSafe(index++); returnValue.CalculateProjectCost(); return(returnValue); } } }
public RecordSearch GetRecordSearchByID(int id, bool loadAsCurrentSearch = true) { using (OleDbConnection connection = new OleDbConnection(ConnectionString)) { using (OleDbCommand sqlCommand = connection.CreateCommand()) { sqlCommand.CommandText = "SELECT ID, ICPrefix, ICYear, ICEnumeration, ICSuffix, " + "DateReceived, DateEntered, DateOfResponse, DateBilled, DatePaid, LastUpdated, " + "RequestorID, AdditionalRequestors, ClientID, MailingAddressID, IsMailingAddressSameAsBilling, BillingAddressID, " + "ProjectName, RecordSearchType, Status, SpecialCaseDetails, " + "MainCounty, AdditionalCounties, PLSS, Acres, LinearMiles, " + "AreResourcesInProject, Recommendation, IsReportReceived, Processor, EncryptionPassword, " + "FeeVersion, FeeID, TotalCost, " + "ProjectNumber, InvoiceNumber, CheckName, CheckNumber, IsPrePaid, IsSelected, Notes " + "FROM tblRecordSearches WHERE ID = " + id; connection.Open(); OleDbDataReader reader = sqlCommand.ExecuteReader(); reader.Read(); int index = 0; RecordSearch returnValue = new RecordSearch() { ID = reader.GetInt32Safe(index++), //0 ICTypePrefix = reader.GetStringSafe(index++), ICYear = reader.GetStringSafe(index++), ICEnumeration = reader.GetInt32Safe(index++), ICSuffix = reader.GetStringSafe(index++), DateReceived = reader.GetDateTimeSafe(index++), //5 DateEntered = reader.GetDateTimeSafe(index++), DateOfResponse = reader.GetDateTimeSafe(index++), DateBilled = reader.GetDateTimeSafe(index++), DatePaid = reader.GetDateTimeSafe(index++), LastUpdated = reader.GetDateTimeSafe(index++), //10 RequestorID = reader.GetInt32Safe(index), Requestor = _ps.GetPersonByID(reader.GetInt32Safe(index++)), AdditionalRequestors = reader.GetStringSafe(index++), ClientID = reader.GetInt32Safe(index), ClientModel = _cs.GetClientByID(reader.GetInt32Safe(index++)), //15 MailingAddress = _as.GetAddressByID(reader.GetInt32Safe(index++)), IsMailingSameAsBilling = reader.GetBooleanSafe(index++), BillingAddress = _as.GetAddressByID(reader.GetInt32Safe(index++)), ProjectName = reader.GetStringSafe(index++), RSType = reader.GetStringSafe(index++), //20 Status = reader.GetStringSafe(index++), SpecialDetails = reader.GetStringSafe(index++), MainCounty = reader.GetStringSafe(index++), AdditionalCounties = ParseAdditionalCounties(reader.GetStringSafe(index++)), PLSS = reader.GetStringSafe(index++), //25 Acres = reader.GetInt32Safe(index++), LinearMiles = reader.GetInt32Safe(index++), AreResourcesInProject = reader.GetBooleanSafe(index++), Recommendation = reader.GetStringSafe(index++), IsReportReceived = reader.GetBooleanSafe(index++), //30 Processor = reader.GetStringSafe(index++), EncryptionPassword = reader.GetStringSafe(index++), FeeVersion = reader.GetStringSafe(index++), FeeID = reader.GetInt32Safe(index++), TotalFee = reader.GetDecimalSafe(index++), ProjectNumber = reader.GetStringSafe(index++), InvoiceNumber = reader.GetStringSafe(index++), CheckName = reader.GetStringSafe(index++), CheckNumber = reader.GetStringSafe(index++), IsPrePaid = reader.GetBooleanSafe(index++), IsSelected = reader.GetBooleanSafe(index++), Notes = reader.GetStringSafe(index++), }; returnValue.Fee = GetFeeData(returnValue.FeeVersion, returnValue.FeeID); if (returnValue.IsMailingSameAsBilling) { returnValue.BillingAddress = returnValue.MailingAddress; } if (loadAsCurrentSearch) { CurrentRecordSearch = returnValue; } return(returnValue); } } }