public static UnitChargeResponse ToModel(this UnitChargeDTO unitCharge) { var model = new UnitChargeResponse { ChargeId = unitCharge.ChargeId, From = unitCharge.From, To = unitCharge.To, ChargeItems = unitCharge.ChargeItems.ToModel() }; return(model); }
public async Task <IEnumerable <UnitChargeDTO> > GetRentedUnitChargesAsync(int unitId, int personId) { var result = new List <UnitChargeDTO>(); var chargeItems = new List <UnitChargeItemDTO>(); using (var connection = new SqlConnection(_connectionString)) { using (var cmd = new SqlCommand()) { cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = "[dbo].[SpGetRentedUnitsChargeItems]"; cmd.Parameters.AddWithValue("@unitId", unitId); cmd.Parameters.AddWithValue("@personId", personId); cmd.Connection = connection; cmd.Connection.Open(); using (var dataReader = await cmd.ExecuteReaderAsync()) { while (await dataReader.ReadAsync()) { if (result.Count == 0 || result[result.Count - 1].ChargeId != Convert.ToInt32(dataReader["ChargeID"])) { if (result.Count > 0) { result[result.Count - 1].ChargeItems = chargeItems; } chargeItems = new List <UnitChargeItemDTO>(); var charge = new UnitChargeDTO { ChargeId = Convert.ToInt32(dataReader["ChargeID"]), From = Convert.ToDateTime(dataReader["ChargeFrom"]), To = Convert.ToDateTime(dataReader["ChargeTo"]) }; result.Add(charge); } var chargeItem = new UnitChargeItemDTO(); chargeItem.ChargeItemId = Convert.ToInt32(dataReader["ChargeItemID"]); chargeItem.ExpenseName = Convert.ToString(dataReader["Name"]); chargeItem.From = Convert.ToDateTime(dataReader["From"]); chargeItem.To = Convert.ToDateTime(dataReader["To"]); chargeItem.Amount = Convert.ToDecimal(dataReader["Amount"]); chargeItems.Add(chargeItem); } } if (result.Count > 0) { result[result.Count - 1].ChargeItems = chargeItems; } } } return(result); }