I am trying to learn the best way to code my classes, and was wondering if I could get a bit of a critique on the following? I have a class that provides a basic structure, and a separate class that provides a data repository that does the database interface. Have I done it well, or are there better ways to do this.
As a additional note, I am using an Access Database with a dataset for the interface.
Thanks,
Ed.
My Code:
public class DailyLog
{
public int Id { get; set; }
public DateTime LogDate { get; set; }
public double PurchasedPowerMeter { get; set; }
public double NetGenMeter { get; set; }
public double NetGasMeter { get; set; }
public double LimestoneBeltTotalizer { get; set; }
public double C1BeltTotalizer { get; set; }
public double C5ABeltTotalizer { get; set; }
public double C5BBeltTotalizer { get; set; }
public double FeedTotalizer11_100 { get; set; }
public double FeedTotalizer11_200 { get; set; }
public double FeedTotalizer11_300 { get; set; }
public double FeedTotalizer11_400 { get; set; }
public double FeedTotalizer12_100 { get; set; }
public double FeedTotalizer12_200 { get; set; }
public double FeedTotalizer12_300 { get; set; }
public double FeedTotalizer12_400 { get; set; }
public string LigniteSampleNo { get; set; }
public double LigniteSampleWeight { get; set; }
public double C5ABeltZeroError { get; set; }
public double C5BBeltZeroError { get; set; }
public double WaterLoss { get; set; }
public double H2LeakRate { get; set; }
public double HoursOn { get; set; }
public double Boiler1HoursOn { get; set; }
public double Boiler2HoursOn { get; set; }
public string Comments { get; set; }
public DailyLog()
{
this.Id = 0;
this.LogDate = DateTime.MinValue;
this.PurchasedPowerMeter = 0.0;
this.NetGenMeter = 0.0;
this.NetGasMeter = 0.0;
this.LimestoneBeltTotalizer = 0.0;
this.C1BeltTotalizer = 0.0;
this.C5ABeltTotalizer = 0.0;
this.C5BBeltTotalizer = 0.0;
this.FeedTotalizer11_100 = 0.0;
this.FeedTotalizer11_200 = 0.0;
this.FeedTotalizer11_300 = 0.0;
this.FeedTotalizer11_400 = 0.0;
this.FeedTotalizer12_100 = 0.0;
this.FeedTotalizer12_200 = 0.0;
this.FeedTotalizer12_300 = 0.0;
this.FeedTotalizer12_400 = 0.0;
this.LigniteSampleNo = string.Empty;
this.LigniteSampleWeight = 0.0;
this.C5ABeltZeroError = 0.0;
this.C5BBeltZeroError = 0.0;
this.WaterLoss = 0.0;
this.H2LeakRate = 0.0;
this.HoursOn = 0.0;
this.Boiler1HoursOn = 0.0;
this.Boiler2HoursOn = 0.0;
this.Comments = string.Empty;
}
public DailyLog(DailyLogData.DailyLogRow dailyLogRow)
{
this.Id = dailyLogRow.Id;
this.LogDate = dailyLogRow.LogDate;
this.PurchasedPowerMeter = dailyLogRow.PurchasedPowerMeter;
this.NetGenMeter = dailyLogRow.NetGenMeter;
this.NetGasMeter = dailyLogRow.NetGenMeter;
this.LimestoneBeltTotalizer = dailyLogRow.LimestoneBeltTotalizer;
this.C1BeltTotalizer = dailyLogRow.C1BeltTotalizer;
this.C5ABeltTotalizer = dailyLogRow.C5ABeltTotalizer;
this.C5BBeltTotalizer = dailyLogRow.C5BBeltTotalizer;
this.FeedTotalizer11_100 = dailyLogRow.FeedTotalizer_11_100;
this.FeedTotalizer11_200 = dailyLogRow.FeedTotalizer_11_200;
this.FeedTotalizer11_300 = dailyLogRow.FeedTotalizer_11_300;
this.FeedTotalizer11_400 = dailyLogRow.FeedTotalizer_11_400;
this.FeedTotalizer12_100 = dailyLogRow.FeedTotalizer_12_100;
this.FeedTotalizer12_200 = dailyLogRow.FeedTotalizer_12_200;
this.FeedTotalizer12_300 = dailyLogRow.FeedTotalizer_12_300;
this.FeedTotalizer12_400 = dailyLogRow.FeedTotalizer_12_400;
this.LigniteSampleNo = dailyLogRow.LigniteSampleNo;
this.LigniteSampleWeight = dailyLogRow.LigniteSampleWeight;
this.C5ABeltZeroError = dailyLogRow.C5ABeltZeroError;
this.C5BBeltZeroError = dailyLogRow.C5BBeltZeroError;
this.WaterLoss = dailyLogRow.WaterLoss;
this.H2LeakRate = dailyLogRow.H2LeakRate;
this.HoursOn = dailyLogRow.HoursOn;
this.Boiler1HoursOn = dailyLogRow.Boiler1HoursOn;
this.Boiler2HoursOn = dailyLogRow.Boiler2HoursOn;
this.Comments = dailyLogRow.Comments;
}
}
public class DailyLogrepository
{
private DailyLogTableAdapter _adapter = null;
protected DailyLogTableAdapter Adapter
{
get
{
if (_adapter == null)
_adapter = new DailyLogTableAdapter();
return _adapter;
}
}
public IList<DailyLog> getAllDailyLogs()
{
IList<DailyLog> dailyLogList = new List<DailyLog>();
DailyLogData.DailyLogDataTable allLogs = Adapter.GetDailyLogs();
foreach (DailyLogData.DailyLogRow logrow in allLogs)
{
dailyLogList.Add(new DailyLog(logrow));
}
return dailyLogList;
}
public IList<DailyLog> GetDailyLogsByDateRange(DateTime startDate, DateTime endDate)
{
IList<DailyLog> dailyLogList = new List<DailyLog>();
DailyLogData.DailyLogDataTable allLogs = Adapter.GetDailyLogsByDateRange(startDate, endDate);
foreach (DailyLogData.DailyLogRow logrow in allLogs)
{
dailyLogList.Add(new DailyLog(logrow));
}
return dailyLogList;
}
public IList<DailyLog> GetDailyLogsByIdRange(int startId, int endId)
{
IList<DailyLog> dailyLogList = new List<DailyLog>();
DailyLogData.DailyLogDataTable allLogs = Adapter.GetDailyLogsByIdRange(startId, endId);
foreach (DailyLogData.DailyLogRow logrow in allLogs)
{
dailyLogList.Add(new DailyLog(logrow));
}
return dailyLogList;
}
public IList<DailyLog> GetLast100DailyLogs()
{
IList<DailyLog> dailyLogList = new List<DailyLog>();
DailyLogData.DailyLogDataTable allLogs = Adapter.GetDailyLogs();
if (allLogs.Count == 0)
return dailyLogList;
int firstId = allLogs[0].Id; // Since the logs are given in descending date range, the first log should be the last one given and have the highest Id.
DailyLogData.DailyLogDataTable allLast100Logs = Adapter.GetDailyLogsByIdRange(firstId, firstId-100);
foreach (DailyLogData.DailyLogRow logrow in allLogs)
{
dailyLogList.Add(new DailyLog(logrow));
}
return dailyLogList;
}
public DailyLog GetDailyLogById(int id)
{
DailyLogData.DailyLogDataTable logs = Adapter.GetDailyLogsById(id);
if (logs.Count == 0)
return new DailyLog();
return new DailyLog(logs[0]);
}
public bool AddDailyLog(DailyLog newLog)
{
DailyLogData.DailyLogDataTable logTable = new DailyLogData.DailyLogDataTable();
DailyLogData.DailyLogRow logRow = logTable.NewDailyLogRow();
logRow.LogDate = newLog.LogDate;
logRow.PurchasedPowerMeter = newLog.PurchasedPowerMeter;
logRow.NetGenMeter = newLog.NetGenMeter;
logRow.NetGenMeter = newLog.NetGasMeter;
logRow.LimestoneBeltTotalizer = newLog.LimestoneBeltTotalizer;
logRow.C1BeltTotalizer = newLog.C1BeltTotalizer;
logRow.C5ABeltTotalizer = newLog.C5ABeltTotalizer;
logRow.C5BBeltTotalizer = newLog.C5BBeltTotalizer;
logRow.FeedTotalizer_11_100 = newLog.FeedTotalizer11_100;
logRow.FeedTotalizer_11_200 = newLog.FeedTotalizer11_200;
logRow.FeedTotalizer_11_300 = newLog.FeedTotalizer11_300;
logRow.FeedTotalizer_11_400 = newLog.FeedTotalizer11_400;
logRow.FeedTotalizer_12_100 = newLog.FeedTotalizer12_100;
logRow.FeedTotalizer_12_200 = newLog.FeedTotalizer12_200;
logRow.FeedTotalizer_12_300 = newLog.FeedTotalizer12_300;
logRow.FeedTotalizer_12_400 = newLog.FeedTotalizer12_400;
logRow.LigniteSampleNo = newLog.LigniteSampleNo;
logRow.LigniteSampleWeight = newLog.LigniteSampleWeight;
logRow.C5ABeltZeroError = newLog.C5ABeltZeroError;
logRow.C5BBeltZeroError = newLog.C5BBeltZeroError;
logRow.WaterLoss = newLog.WaterLoss;
logRow.H2LeakRate = newLog.H2LeakRate;
logRow.HoursOn = newLog.HoursOn;
logRow.Boiler1HoursOn = newLog.Boiler1HoursOn;
logRow.Boiler2HoursOn = newLog.Boiler2HoursOn;
logRow.Comments = newLog.Comments;
logTable.AddDailyLogRow(logRow);
int rowsAffected = Adapter.Update(logTable);
return rowsAffected == 1;
}
public bool UpateDailyLog(DailyLog dailyLog)
{
DailyLogData.DailyLogDataTable logTable = Adapter.GetDailyLogsById(dailyLog.Id);
if (logTable.Count == 0)
return false;
DailyLogData.DailyLogRow logRow = logTable[0];
logRow.Id = dailyLog.Id;
logRow.LogDate = dailyLog.LogDate;
logRow.PurchasedPowerMeter = dailyLog.PurchasedPowerMeter;
logRow.NetGenMeter = dailyLog.NetGenMeter;
logRow.NetGenMeter = dailyLog.NetGasMeter;
logRow.LimestoneBeltTotalizer = dailyLog.LimestoneBeltTotalizer;
logRow.C1BeltTotalizer = dailyLog.C1BeltTotalizer;
logRow.C5ABeltTotalizer = dailyLog.C5ABeltTotalizer;
logRow.C5BBeltTotalizer = dailyLog.C5BBeltTotalizer;
logRow.FeedTotalizer_11_100 = dailyLog.FeedTotalizer11_100;
logRow.FeedTotalizer_11_200 = dailyLog.FeedTotalizer11_200;
logRow.FeedTotalizer_11_300 = dailyLog.FeedTotalizer11_300;
logRow.FeedTotalizer_11_400 = dailyLog.FeedTotalizer11_400;
logRow.FeedTotalizer_12_100 = dailyLog.FeedTotalizer12_100;
logRow.FeedTotalizer_12_200 = dailyLog.FeedTotalizer12_200;
logRow.FeedTotalizer_12_300 = dailyLog.FeedTotalizer12_300;
logRow.FeedTotalizer_12_400 = dailyLog.FeedTotalizer12_400;
logRow.LigniteSampleNo = dailyLog.LigniteSampleNo;
logRow.LigniteSampleWeight = dailyLog.LigniteSampleWeight;
logRow.C5ABeltZeroError = dailyLog.C5ABeltZeroError;
logRow.C5BBeltZeroError = dailyLog.C5BBeltZeroError;
logRow.WaterLoss = dailyLog.WaterLoss;
logRow.H2LeakRate = dailyLog.H2LeakRate;
logRow.HoursOn = dailyLog.HoursOn;
logRow.Boiler1HoursOn = dailyLog.Boiler1HoursOn;
logRow.Boiler2HoursOn = dailyLog.Boiler2HoursOn;
logRow.Comments = dailyLog.Comments;
int rowsAffected = Adapter.Update(logTable);
return rowsAffected == 1;
}
public bool DeleteDailyLog(int id)
{
DailyLogData.DailyLogDataTable logTable = Adapter.GetDailyLogsById(id);
if (logTable.Count == 0)
return false;
DailyLogData.DailyLogRow logRow = logTable[0];
int rowsAffected = Adapter.DeleteDailyLogById(id);
return rowsAffected == 1;
}
}

New Topic/Question
Reply




MultiQuote






|