public List<RecCalendarWorkday> LoadWorkDays(RecCalendar record) { ImpactQuery query = new ImpactQuery() { Select = { ImpCalendarWorkday.Factory, ImpCalendarWorkday.Project , ImpCalendarWorkday.Calendar, ImpCalendarWorkday.Weekday , ImpCalendarWorkday.DayType , ImpCalendarWorkday.ChangedBy , ImpCalendarWorkday.ChangedDate }, From = { ImpCalendarWorkday.As("T1") }, Where = { ImpCalendarWorkday.Factory.Equal(record.Factory), ImpCalendarWorkday.Project.Equal(record.Project), ImpCalendarWorkday.Calendar.Equal(record.Name) } }; string statement = query.ToString(); List<RecCalendarWorkday> result; using (ImpactDatabase database = new ImpactDatabase()) { result = database.GetAll(statement, WorkDayParse); } return result; }
/// <summary> /// Load all records of the same factory and project as the supplied record. /// </summary> /// <param name="record">A record with factory and project set.</param> /// <returns>A list of all mathcing records.</returns> public List<RecCalendar> LoadCalendar(RecCalendar record) { ImpactQuery query = new ImpactQuery() { Select = { ImpCalendar.Factory, ImpCalendar.Project, ImpCalendar.Name, ImpCalendar.Description, ImpCalendar.CreatedBy, ImpCalendar.CreatedDate, ImpCalendar.ChangedBy, ImpCalendar.ChangedDate, }, From = { ImpCalendar.As("T1") }, Where = { ImpCalendar.Factory.Equal(record.Factory), ImpCalendar.Project.Equal(record.Factory) } }; string statement = query.ToString(); List<RecCalendar> result; using (ImpactDatabase database = new ImpactDatabase()) { result = database.GetAll( statement, ParseCalendar ); } if (null != result) { foreach (RecCalendar recCalendar in result) { recCalendar.WorkDays = LoadWorkDays(recCalendar ); recCalendar.InvalidDays = LoadInvalidDays(recCalendar); } } return result; }
/// <summary> /// Update the specified record in the database. /// </summary> /// <param name="record">The record to update.</param> /// <returns></returns> public int UpdateCalendar(RecCalendar record) { var update = new ImpactUpdate(ImpCalendar.Instance) { Columns = { { ImpCalendar.Description, record.Description }, { ImpCalendar.ChangedBy, record.ChangedBy }, { ImpCalendar.ChangedDate, record.ChangedDate }, }, Where = { { ImpCalendar.Factory.Equal( record.Factory ) }, { ImpCalendar.Project.Equal( record.Factory ) },// Factory level! { ImpCalendar.Name.Equal( record.Name ) }, }, }; string statement = update.ToString(); int result; using (ImpactDatabase database = new ImpactDatabase()) { result = database.ExecuteNonQuery(statement); } return result; }
/// <summary> /// Delete the specified record from the database. /// </summary> /// <param name="record">The record to delete from the database.</param> /// <returns>The number of affected records.</returns> public int DeleteCalendar(RecCalendar record) { var delete = new ImpactDelete(ImpCalendar.Instance) { Where = { { ImpCalendar.Factory.Equal( record.Factory )}, { ImpCalendar.Project.Equal( record.Project )}, { ImpCalendar.Name.Equal( record.Name )}, } }; string statement = delete.ToString(); int result; using (ImpactDatabase database = new ImpactDatabase()) { result = database.ExecuteNonQuery(statement); } return result; }
/// <summary> /// Parses one row in <see cref="System.Data.Common.DbDataReader"/> into /// a new instance of <see cref="StruSoft.Impact.V120.Common.Records.RecCalendar"/>. /// </summary> /// <param name="dataReader">The data reader.</param> /// <returns>A new instance of <see cref="StruSoft.Impact.V120.Common.Records.RecCalendar"/>.</returns> public static RecCalendar ParseCalendar(DbDataReader dataReader) { var record = new RecCalendar(); record.Factory = DataConverter.Cast<string>(dataReader[0]); record.Project = DataConverter.Cast<string>(dataReader[1]); record.Name = DataConverter.Cast<string>(dataReader[2]); record.Description = DataConverter.Cast<string>(dataReader[3]); record.CreatedBy = DataConverter.Cast<string>(dataReader[4]); record.CreatedDate = DataConverter.Cast<System.DateTime?>(dataReader[5]); record.ChangedBy = DataConverter.Cast<string>(dataReader[6]); record.ChangedDate = DataConverter.Cast<System.DateTime?>(dataReader[7]); return record; }
/// <summary> /// Insert the specified record into the database. /// </summary> /// <param name="record">The record to insert into the database.</param> /// <returns>The number of affected records.</returns> public int InsertCalendar(RecCalendar record) { var insert = new ImpactInsert(ImpCalendar.Instance) { Columns = { { ImpCalendar.Factory, record.Factory }, { ImpCalendar.Project, record.Factory }, // Factory level! { ImpCalendar.Name, record.Name }, { ImpCalendar.Description, record.Description }, { ImpCalendar.CreatedBy, record.CreatedBy }, { ImpCalendar.CreatedDate, record.CreatedDate }, } }; string statement = insert.ToString(); int result; using (ImpactDatabase database = new ImpactDatabase()) { result = database.ExecuteNonQuery(statement); } return result; }