Consoles, database generated.

This commit is contained in:
2019-04-11 11:59:22 +01:00
parent ef02a3a6ad
commit 724eb1c599
52 changed files with 16373 additions and 63 deletions
+9 -3
View File
@@ -1,5 +1,8 @@
using Sarand.Core.CodeTypes;
using Sarand.Core.Dbas.Base;
using Sarand.Core.ItemOptions;
using Sarand.Core.Security;
using Sarand.Core.UpdateLog;
using System;
using System.Collections.Generic;
using System.Text;
@@ -21,11 +24,14 @@ namespace Sarand.PatientMgr.Core.App
//-------------------------------------------------------------------
// Database.
public abstract ISacsDatabase GetDatabase (SpmSessionContext sessionContext);
//public abstract bool ColumnExists (SbmSessionContext sessionContext, SbmDbDfn.ColumnIdx columnIdx);
public abstract bool ColumnExists (SpmSessionContext sessionContext, SpmDbDfn.ColumnIdx columnIdx);
//-------------------------------------------------------------------
// Code Type console.
public abstract SaCodeTypeConsole GetCodeTypeConsole (SpmUserContext userContext);
// Retrieve Global Consoles by session context.
public abstract SaSecurityConsole GetSecurityConsole (SpmSessionContext sessionContext);
public abstract SaCodeTypeConsole GetCodeTypeConsole (SpmSessionContext sessionContext);
public abstract SaItemOptionConsole GetItemOptionConsole (SpmSessionContext sessionContext);
public abstract SaUpdateLogConsole GetUpdateLogConsole (SpmSessionContext sessionContext);
//-------------------------------------------------------------------
}
File diff suppressed because it is too large Load Diff
+633 -2
View File
@@ -1,4 +1,5 @@
using System;
using Sarand.Core.Base;
using System;
using System.Collections.Generic;
using System.Text;
@@ -16,13 +17,17 @@ namespace Sarand.PatientMgr.Core.App
//-------------------------------------------------------------------
// Constants.
public static readonly String ApplicationCaption = "Sarand PatientMgr";
// System defaults.
public static int Default_UpdateLimitDaysInPast { get; } = 7;
public static int Default_UpdateLimitDaysInPast_Min { get; } = 1;
public static int Default_UpdateLimitDaysInPast_Max { get; } = 60;
//-------------------------------------------------------------------
// Site. NB Only code should be used on database.
public enum Site
{
Unknown = 0,
Addenbrookes = 10, /* 'ANT' */
ANT = 10, /* Addenbrookes */
}
//-------------------------------------------------------------------
@@ -32,8 +37,634 @@ namespace Sarand.PatientMgr.Core.App
Unknown = 0,
// General.
Site = 1,
DataItemType,
// Item options.
ItemOption,
ItemOptionContext_Flag,
ItemOptionContext_Value,
ItemOptionContext_CodeList,
ItemOptionContext_ScheduleColour,
ItemOptionContext_FieldLabel,
ItemOptionContext_ShowField,
ItemOptionContext_ExportField,
ItemOptionContext_AdmissionTiming,
ItemOptionContext_AdmValueList,
ItemOptionContext_CombineAdmNotes,
ItemOptionContext_CombinePatDetails,
ItemOptionContext_SessionUtilMeasure,
ItemOptionContext_SessionUtilisation,
ItemOptionContext_SessionUtilThreshold,
ItemOptionContext_ScheduleHighlight,
// Employees
EmployeeRole,
// Patient.
Gender,
PatientDataSource,
// Facilities.
FacilityType,
ScheduleType,
TemplateMapType,
SessionModel,
ScheduleFreezeType,
ResourceCategory,
//TemplateType, Not used directly.
TheatreSessionType, // Subset of TemplateType values.
ClinicSessionType, // Subset of TemplateType values.
WardResourceType, // Subset of TemplateType values.
ResourceCapacityType,
ResourceLoadingType,
TemplateDataType,
ProcedureComplexity,
// Admissions.
AdmissionOccupancy,
AdmissionActionType,
AdmissionCancelType,
AttendanceType,
AttendanceStatus,
WardPeriodLength,
WardResourceDisplay,
WardHighlighting,
// Reports.
ReportSpacing,
}
//-----------------------------------------------------------------------
// Code types - defined by the user.
public enum SystemCodeType
{
Unknown = 0,
Ward,
// Anaesthetic,
// OperationPosition,
ComfortScore,
};
public enum CodeType
{
Unknown = 0,
Anaesthetic,
OperationPosition,
OperatingSpeciality,
Allergy,
RiskFactor,
};
//-----------------------------------------------------------------------
// Data Item Types - identifiers the types of data items.
// NB Do not change the value associated with each item - these are tied to the database.
public enum DataItemType
{
Unknown = -1,
// Values are tied to the database - do not change.
Institution = 10,
Department = 11,
Facility = 20,
Employee = 21,
Patient = 22,
Operation = 23,
FacilityTemplate = 30,
TemplateSlot = 31,
FacilitySession = 32,
EmployeeRole = 33,
Procedure = 34,
Admission = 40,
AdmissionRole = 41,
// 'Virtual' item types - subsets of main item type.
/* Employee Roles of type 'Consultant'. */
RoleConsultant = 100,
/* Codes of type 'Speciality'. */
CodeSpeciality = 101,
// System data types.
SecItem = SaDataItemType.SecItem,
CodeType = SaDataItemType.CodeType,
Code = SaDataItemType.Code,
Interface = SaDataItemType.Interface,
ItemOption = SaDataItemType.ItemOption,
};
//-----------------------------------------------------------------------
// Item Configuration Options.
public enum ItemOptionType
{
Flag, // Discrete Yes/No values (tailored context list by item type).
Value, // Discrete values (tailored context list by item type).
CodeList, // Comma separated list of codes - tailored context list by item type.
SessionModel, // See defined list, eg. Maternity
ScheduleColour, // Schedule colour options.
FieldLabel, // Used to change default field label (eg. admission system ref)
Admission_DefaultProcedure, // Free text eg. 'Caesarian Section'
Admission_DefaultSpeciality, // Speciality code
Admission_DefaultComplexity, // Complexity code
Admission_DefaultWard, // Ward code
Admission_ValueList, // Comma separated list, eg. Procedure indications.
Admission_ShowField, // Used to identify optional fields to be shown in dialogs, views and reports.
Admission_ExportField, // Used to identify additional fields to export with schedule details.
Admission_AdmissionTiming, // Flag timing events that are to be recorded.
FilterAttrTypes, // To store user's filter sequence (system maintained).
Schedule_MinWeeks,
Schedule_CombineAdmNotes,
Schedule_CombinePatDetails,
Schedule_ReportAdmissionSpacing,
UpdateLimitDaysInPast,
SpecialityBackgroundColour,
SessionUtilMeasure,
SessionUtilisation,
SessionUtilThreshold,
ScheduleHighlight,
TheatreListTypeDisplay, // Associated types from SystemCodeTheatreSessionType codes.
ClinicListTypeDisplay, // Associated types from SystemCodeClinicSessionType codes.
AttendanceBorderColour,
};
// Discrete Flags - NB Default should always be 'No'.
public enum ItemOptionContext_Flag
{
// Configuration flag options.
Admission_AllowOverlappingTemplates, // Otherwise, Templates in each facility must have different times.
Admission_AllowMultiplePatientSessionBookings, // Otherwise, patient can only be booked once in a session.
Admission_GenerateChangeSessionMovement, // Auto store 'Moved' type cancellation for session change.
Admission_RecordTimings, // Show timimgs page on admission on and after day of admission.
Admission_AllowAdmissionDuplication, // Allow unassigned admissions to be duplicated against future sessions.
Template_AllowUnits, // Allow Units to be defined against Templates and entered against admissions.
};
// Discrete values.
public enum ItemOptionContext_Value
{
// Configuration value options.
ScheduleDisplayWeeks_Theatre,
ScheduleDisplayWeeks_Clinic,
ScheduleDisplayWeeks_Ward,
FacilityCapacity,
FacilityCapacity_Male,
FacilityCapacity_Female,
};
// Comma separated lists of codes.
public enum ItemOptionContext_CodeList
{
// Department configuration code lists.
WaitingListSpeciality_Include,
WaitingListSpeciality_Exclude,
};
// Fields whose labels can be specified
public enum ItemOptionContext_FieldLabel
{
Admission_SystemRef,
Admission_AttendingSurgeon,
};
// Admission fields that are optionally shown.
public enum ItemOptionContext_ShowField
{
Tci,
Gender,
PatientHistory,
BreechOn,
DecisionToAdmitOn,
SystemRef,
ReferringConsultant,
AttendingSurgeon,
ProcedureIndication,
Operation,
Position,
SpecialEquipment,
ComfortScore,
AttendanceType,
AttendanceStatus,
CancelTimeLimit,
CancelReason,
CancelNotes,
};
// Admission fields that are optionally Exported.
public enum ItemOptionContext_ExportField
{
OperatingConsultantCode,
OperatingSurgeonCode,
PatientNo,
PatientName,
PatientForename,
PatientSurname,
ProcedureIndication,
BreechOn,
DecisionToAdmitOn,
};
// Admission timings.
public enum ItemOptionContext_AdmissionTiming
{
Called,
Arrived,
AnaesStart,
ProcStart,
ProcEnd,
InRecovery,
InformDest,
Leave,
};
// Admission fields with default lists.
public enum ItemOptionContext_AdmValueList
{
ProcedureDesc,
ProcedureIndication,
Ward,
ComfortScore,
CancelReason,
ProcedureKit,
};
// Admission fields to combine with notes.
public enum ItemOptionContext_CombineAdmNotes
{
PatientHistory,
GestationPeriod,
BreechOn,
DecisionToAdmitOn,
ProcedureIndication,
};
// Admission fields to combine with patient details.
public enum ItemOptionContext_CombinePatDetails
{
SystemRef,
};
// Session utilisation options.
public enum ItemOptionContext_SessionUtilMeasure
{
Duration = 10,
Units = 20,
Default = Duration,
};
public enum ItemOptionContext_SessionUtilisation
{
BlankPatientNoIsReservedAdmission,
ExcludeReservedAdmissions,
IncludeSessionBreakDuration,
};
public enum ItemOptionContext_SessionUtilThreshold
{
SessionUtilThreshold_Low,
SessionUtilThreshold_High,
};
public enum ItemOptionContext_ScheduleHighlight
{
FacilityName,
SessionName,
};
public enum ItemOptionContext_ScheduleColour
{
SessionBackground,
};
//-----------------------------------------------------------------------
// Employee roles.
public enum EmployeeRole
{
Unknown = 0,
// Values are tied to the database - do not change.
Consultant = 10,
Surgeon = 11,
Anaesthetist = 12,
};
// Employee role categories.
public enum EmployeeRoleCategory
{
Unknown = 0,
// Values are tied to the database - do not change.
Operating = 10, // Surgeon/Consultant designated for operation.
Referring = 11, // Surgeon/Consultant referring the patient for procedure.
Attending = 12, // Surgeon/Consultant actually carrying out the procedure.
};
//-----------------------------------------------------------------------
// Patient definitions.
public enum Gender
{
Unknown = 0,
// Values are tied to the database - do not change.
Female = 1,
Male = 2,
Unspecified = 9,
};
public enum PatientDataSource
{
Unknown = 0,
// Values are tied to the database - do not change.
Patient = 10, // Internal tables.
Admission,
Demographics, // Interfaces.
WaitingList,
};
//-----------------------------------------------------------------------
// Facility type.
public enum FacilityType
{
Unknown = 0,
// Values are tied to the database - do not change.
Theatre = 10,
Clinic = 20,
Ward = 30,
Apparatus = 40,
};
// Schedule type.
public enum ScheduleType
{
Unknown = 0,
// Values are tied to the database - do not change.
Theatre = 10,
Clinic = 20,
Ward = 30,
};
//-----------------------------------------------------------------------
// Ward admission mode.
public enum WardAdmissionMode
{
Unknown = 0,
ByResource, // Booking against bed, chair etc.
ByWard, // Booking direct to ward (not specific resource).
};
// Ward Period length.
public enum WardPeriodLength
{
Unknown,
Week,
Weeks_2,
Weeks_4,
Weeks_6,
Weeks_8,
};
// Ward Resource display.
public enum WardResourceDisplay
{
Unknown,
Summary,
Narrow,
Standard,
Wide,
};
// Ward Highlighting.
public enum WardHighlighting
{
Unknown,
None,
Duration,
Gender,
ReferringCons,
Speciality,
};
//-----------------------------------------------------------------------
// Facility template map type.
public enum FacilityTemplateMapType
{
Unknown = 0,
// Values are tied to the database - do not change.
None = 1,
RollingWeek = 10,
WeekdayInstanceInMonth = 11,
WorkingWeekInMonth = 12,
};
//-----------------------------------------------------------------------
// Template Session format.
public enum SessionModel
{
Unknown = 0,
// Values are tied to the database - do not change.
Default = 1,
Standard = 10,
Maternity = 20,
};
//-----------------------------------------------------------------------
// Schedule Freeze type.
public enum ScheduleFreezeType
{
Unknown = 0,
// Values are tied to the database - do not change.
None = 1,
FixedTimePreviousDay = 10,
};
//-----------------------------------------------------------------------
public enum ResourceCategory
{
Unknown = 0,
// Values are tied to the database - do not change.
TheatreList = 10,
ClinicList = 20,
WardResource = 30,
WardAdmissionList = 31,
WardDischargeList = 32,
};
public enum TemplateType
{
Unknown = -1,
// Values are tied to the database - do not change.
None = 0,
// Theatre template types.
TheatreSession_Service = 10,
TheatreSession_Training = 20,
// Clinic template types.
ClinicSession_Service = 10,
ClinicSession_Training = 20,
// Ward resource types.
WardResource_Bed = 10,
WardResource_Chair = 11,
WardResource_Bay = 20,
WardResource_Room = 21,
};
// Ward resource capacity types.
public enum ResourceCapacityTypeContext
{
WardResource,
ClinicSession,
};
public enum ResourceCapacityType
{
Unknown = -1,
// Values are tied to the database - do not change.
None = 0,
Single = 10,
Double = 20,
DoubleExclusive = 21, // Exclusive booking takes all slots.
Triple = 30,
TripleExclusive = 31,
Quadruple = 40,
QuadrupleExclusive = 41,
};
public enum ResourceLoadingType
{
Unknown = -1,
// Values are tied to the database - do not change.
None = 0,
Units = 10,
};
// Template associated Data Type.
public enum TemplateDataType
{
Unknown = 0,
// Values are tied to the database - do not change.
ComplexityCapacity = 10,
};
//-----------------------------------------------------------------------
// Procedure complexity.
public enum ProcedureComplexity
{
Unknown = 0,
// Values are tied to the database - do not change.
Minor = 10,
Intermediate = 20,
Major = 30,
};
//-----------------------------------------------------------------------
// Admission type.
public enum AdmissionType
{
Unknown = 0,
// Values are tied to the database - do not change.
TheatreDayCase = 10,
TheatreInPatientElective = 12,
TheatreEmergency = 13,
ClinicBooking = 20,
WardAdmission = 30,
WardReservation = 39,
};
//-----------------------------------------------------------------------
// Admission Occupancy.
public enum AdmissionOccupancy
{
Unknown = 0,
// Values are tied to the database - do not change.
Single = 10,
Exclusive = 11,
};
//-----------------------------------------------------------------------
// Admission Data type.
public enum AdmissionDataType
{
Unknown = 0,
// Values are tied to the database - do not change.
Allergy = 10,
RiskFactor = 11,
ProcedureKit = 20, // Added Apr2014. Add code & Caption to AdmissionData table.
};
//-----------------------------------------------------------------------
// Admission Action type.
public enum AdmissionActionType
{
Unknown = 0,
// Values are tied to the database - do not change.
SendLetter = 10,
RepeatAdmission = 20,
ArrangeTransport = 30,
Filing = 40,
Prescription = 50,
General = 990,
};
//-----------------------------------------------------------------------
// Attendance Type.
public enum AttendanceType
{
Unknown = 0,
// Values are tied to the database - do not change.
OutPatient = 10,
InPatient = 20,
};
//-----------------------------------------------------------------------
// Attendance status.
public enum AttendanceStatus
{
Unknown = 0,
// Values are tied to the database - do not change.
Arrived = 10,
Discharged = 15,
Cancelled = 20,
Dna = 30,
};
//-----------------------------------------------------------------------
// Admission cancellation type.
public enum AdmissionCancelType
{
// Anything other than 'None' ('0').
Cancelled = -2,
Unknown = -1,
// Values are tied to the database - do not change.
None = 0,
CancelTimeLimit = 10,
CancelOther = 11,
Deletion = 12,
ChangeSession = 20,
};
//-----------------------------------------------------------------------
// Security Rights.
public enum SecurityRight
{
ManageSecurity,
ManageConfig,
ManageDb,
// Security rights associated with specific department.
DepartmentView,
DepartmentReserve,
DepartmentUpdate,
DepartmentConfig,
// Security rights associated with specific consultant.
ConsultantView,
ConsultantUpdate,
// Security rights associated with specific speciality.
SpecialityView,
SpecialityUpdate,
};
//-----------------------------------------------------------------------
// List controls.
public enum ListCtrl
{
Cancellations = 140,
};
//-----------------------------------------------------------------------
// Spacing for reports.
public enum ReportSpacing
{
Narrow,
Standard,
Wide,
};
//-----------------------------------------------------------------------
// Schedule display.
// Text justification.
public enum Justification
{
Left,
Center,
Right
};
// Display columns.
public enum DisplayColumn
{
Ref,
Period,
Facility,
Patient, // Summary - number and name.
PatientNo,
PatientName,
PatientDob,
PatientAge,
PatientHistory,
GestationPeriod,
Ward,
Consultant,
Surgeon,
Procedure,
SpecialEquipment,
Time,
Anaesthetic,
Position,
Kit,
HasRisk,
Notes,
LastUpdate
};
// Display font sizes.
public enum DisplayFont
{
Standard,
Medium,
Large
};
// Display boundaries.
public enum DisplayBoundary
{
Period,
Session,
Admission
};
//-----------------------------------------------------------------------
//-------------------------------------------------------------------
}
//=======================================================================
+16 -1
View File
@@ -1,4 +1,7 @@
using Sarand.Core.CodeTypes;
using Sarand.Core.ItemOptions;
using Sarand.Core.Security;
using Sarand.Core.UpdateLog;
using System;
using System.Collections.Generic;
using System.Text;
@@ -18,9 +21,21 @@ namespace Sarand.PatientMgr.Core.App
//-------------------------------------------------------------------
// Consoles.
public static SaSecurityConsole GetSecurityConsole (SpmUserContext userContext)
{
return Application.GetSecurityConsole(userContext.SessionContext);
}
public static SaCodeTypeConsole GetCodeTypeConsole (SpmUserContext userContext)
{
return Application.GetCodeTypeConsole(userContext);
return Application.GetCodeTypeConsole(userContext.SessionContext);
}
public static SaItemOptionConsole GetItemOptionConsole (SpmUserContext userContext)
{
return Application.GetItemOptionConsole(userContext.SessionContext);
}
public static SaUpdateLogConsole GetUpdateLogConsole (SpmUserContext userContext)
{
return Application.GetUpdateLogConsole(userContext.SessionContext);
}
//-------------------------------------------------------------------
@@ -1,15 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.PatientMgr.Core.App
{
//=======================================================================
public class SpmSecurityContext
{
//-------------------------------------------------------------------
//-------------------------------------------------------------------
}
//=======================================================================
}
+230
View File
@@ -0,0 +1,230 @@
using Sarand.Core.Base;
using Sarand.Core.Bus;
using Sarand.Core.Security;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.PatientMgr.Core.App
{
//=======================================================================
public class SpmSecurityProfile : SaErrorStateItem
{
//-------------------------------------------------------------------
// Security .
internal class ProfileParams
{
public SaSecurityProfile UserSecurityProfile { get; set; }
public SaSecurityProfile HostSecurityProfile { get; set; }
public readonly List<TypeCodeDesc> SecurityRights = new List<TypeCodeDesc>();
private bool UserHasSecurityRight (Spm.SecurityRight securityRight, SysId dataItemId = null)
{
String rightCode = SecurityRights.GetCodeForType((int)securityRight);
if (StringUtil.IsEmpty(rightCode)) return false;
// Check if right is denied by either user or host profiles.
if (UserSecurityProfile != null && UserSecurityProfile.IsSecurityRightDenied(rightCode)) return false;
if (HostSecurityProfile != null && HostSecurityProfile.IsSecurityRightDenied(rightCode)) return false;
// Check if right is granted by either user or host profiles.
if (UserSecurityProfile != null && UserSecurityProfile.IsSecurityRightGranted(rightCode)) return true;
if (HostSecurityProfile != null && HostSecurityProfile.IsSecurityRightGranted(rightCode)) return true;
return false;
}
public bool IsUserMemberOfSecurityGroup (SysId secGroupId)
{
if (UserSecurityProfile != null)
return UserSecurityProfile.IsMemberOfSecurityGroup(secGroupId);
return false;
}
public bool IsSecurityRightGranted (Spm.SecurityRight securityRight, SysId id = null)
{
return UserSecurityProfile.IsSecurityRightGranted(SecurityRights.GetCodeForType((int)securityRight), id);
}
public bool IsSecurityRightDenied (Spm.SecurityRight securityRight, SysId id = null)
{
return UserSecurityProfile.IsSecurityRightDenied(SecurityRights.GetCodeForType((int)securityRight), id);
}
}
//-------------------------------------------------------------------
// Data members.
private static readonly String userNameUnknown = "Unknown";
private bool includeHostSecurityProfile = false;
private readonly SpmSessionContext sessionContext;
private ProfileParams Params { get; } = new ProfileParams();
//-------------------------------------------------------------------
// Construction.
public SpmSecurityProfile (bool includeHostSecurityProfile)
{
this.includeHostSecurityProfile = includeHostSecurityProfile;
Admin = new AdminProfile(Params);
Departments = new DepartmentsProfile(Params);
Consultants = new ConsultantsProfile(Params);
}
//-------------------------------------------------------------------
// User.
public SysId UserId { get; private set; } = new SysId();
public String UserDisplayName { get { return (Params.UserSecurityProfile != null ? Params.UserSecurityProfile.Description : userNameUnknown); } }
public String UserLocation { get { return (Params.UserSecurityProfile != null ? Params.UserSecurityProfile.Location : ""); } }
public DateTime UserLastLogin { get { return (Params.UserSecurityProfile != null ? Params.UserSecurityProfile.LastLogin : DateTime.MinValue); } }
//-------------------------------------------------------------------
// Refresh profile.
public void RefreshProfile (SaSecurityConsole securityConsole, SysId userId, List<TypeCodeDesc> securityRights)
{
String fn = GetType().Name + ".RefreshProfile";
ClearErrorState();
// Make a note of the security right.
Params.SecurityRights.Clear();
Params.SecurityRights.AddRange(securityRights);
SysId previousUserId = UserId;
// Clear existing profile.
UserId = SysId.InvalidOnNull(userId);
// Load new profile.
if (securityConsole != null)
{
Params.UserSecurityProfile = securityConsole.GetUserSecurityProfile(UserId);
if (Params.HostSecurityProfile == null && includeHostSecurityProfile)
Params.HostSecurityProfile = securityConsole.GetHostSecurityProfile();
}
Logger.Debug(fn + " User: '" + UserDisplayName + "' [Id: " + UserId + "]" + (SysId.IsValid(previousUserId) ? ". Previous UserId: " + SysId.ToString(previousUserId) : ""));
// ToDo SpmSecurityProfile.RefreshProfile
}
private void ClearProfile ()
{
// Reset security profiles.
Admin.Clear();
Departments.Clear();
Consultants.Clear();
}
//-------------------------------------------------------------------
// Utilities.
public bool IsUserMemberOfSecurityGroup (SysId secGroupId)
{
if (Params.UserSecurityProfile != null)
return Params.UserSecurityProfile.IsMemberOfSecurityGroup(secGroupId);
return false;
}
public bool IsSecurityRightGranted (Spm.SecurityRight securityRight, SysId id = null)
{
return Params.IsSecurityRightGranted(securityRight, id);
}
public bool IsSecurityRightDenied (Spm.SecurityRight securityRight, SysId id = null)
{
return Params.IsSecurityRightDenied(securityRight, id);
}
//-------------------------------------------------------------------
// Security rights - Admin.
public class AdminProfile
{
internal AdminProfile (ProfileParams paramsData) { Params = paramsData; }
private ProfileParams Params { get; set; }
public bool CanManageSecurity { get; internal set; } = false;
public bool CanManageDatabase { get; internal set; } = false;
public bool CanManageConfig { get; internal set; } = false;
internal void Clear ()
{
CanManageSecurity = false;
CanManageDatabase = false;
CanManageConfig = false;
}
}
public AdminProfile Admin { get; }
//-------------------------------------------------------------------
// Security rights - Departments.
public class DepartmentsProfile
{
internal DepartmentsProfile (ProfileParams paramsData) { Params = paramsData; }
private ProfileParams Params { get; set; }
public bool CanConfigure (SysId departmentId)
{
if (!SysId.IsValid(departmentId)) return false;
if (Params.IsSecurityRightDenied(Spm.SecurityRight.DepartmentConfig, departmentId)) return false;
return Params.IsSecurityRightGranted(Spm.SecurityRight.DepartmentConfig, departmentId);
}
public bool CanUpdate (SysId departmentId)
{
if (!SysId.IsValid(departmentId)) return false;
if (Params.IsSecurityRightDenied(Spm.SecurityRight.DepartmentUpdate, departmentId)) return false;
return CanConfigure(departmentId) || Params.IsSecurityRightGranted(Spm.SecurityRight.DepartmentUpdate, departmentId);
}
public bool CanReserve (SysId departmentId)
{
if (!SysId.IsValid(departmentId)) return false;
if (Params.IsSecurityRightDenied(Spm.SecurityRight.DepartmentReserve, departmentId)) return false;
return CanConfigure(departmentId) || CanUpdate(departmentId) || Params.IsSecurityRightGranted(Spm.SecurityRight.DepartmentReserve, departmentId);
}
public bool CanView (SysId departmentId)
{
if (!SysId.IsValid(departmentId)) return false;
if (Params.IsSecurityRightDenied(Spm.SecurityRight.DepartmentView, departmentId)) return false;
return CanConfigure(departmentId) || CanUpdate(departmentId) || CanReserve(departmentId) || Params.IsSecurityRightGranted(Spm.SecurityRight.DepartmentView, departmentId);
}
internal void Clear ()
{
}
}
public DepartmentsProfile Departments { get; }
public bool UserCanConfigureDepartment (SysId departmentId)
{
return Departments.CanConfigure(departmentId);
}
public bool UserCanUpdateDepartment (SysId departmentId)
{
return Departments.CanUpdate(departmentId);
}
public bool UserCanReserveDepartment (SysId departmentId)
{
return Departments.CanReserve(departmentId);
}
public bool UserCanViewDepartment (SysId departmentId)
{
return Departments.CanView(departmentId);
}
//-------------------------------------------------------------------
// Security rights - Consultants.
public class ConsultantsProfile
{
internal ConsultantsProfile (ProfileParams paramsData) { Params = paramsData; }
private ProfileParams Params { get; set; }
public bool CanUpdate (SysId consultantId)
{
if (!SysId.IsValid(consultantId)) return false;
if (Params.IsSecurityRightDenied(Spm.SecurityRight.ConsultantUpdate, consultantId)) return false;
return Params.IsSecurityRightGranted(Spm.SecurityRight.ConsultantUpdate, consultantId);
}
public bool CanView (SysId consultantId)
{
if (!SysId.IsValid(consultantId)) return false;
if (Params.IsSecurityRightDenied(Spm.SecurityRight.ConsultantView, consultantId)) return false;
return CanUpdate(consultantId) || Params.IsSecurityRightGranted(Spm.SecurityRight.ConsultantView, consultantId);
}
internal void Clear ()
{
}
}
public ConsultantsProfile Consultants { get; }
public bool UserCanUpdateConsultant (SysId consultantId)
{
return Consultants.CanUpdate(consultantId);
}
public bool UserCanViewConsultant (SysId consultantId)
{
return Consultants.CanView(consultantId);
}
//-------------------------------------------------------------------
}
//=======================================================================
}
+104 -2
View File
@@ -1,4 +1,6 @@
using System;
using Sarand.Core.Base;
using Sarand.Core.CodeTypes;
using System;
using System.Collections.Generic;
using System.Text;
@@ -10,8 +12,108 @@ namespace Sarand.PatientMgr.Core.App
public partial class SpmSystem
{
//-------------------------------------------------------------------
// S y s t e m - C o d e T y p e s
// C o d e T y p e s
//-------------------------------------------------------------------
public static String GetCodeTypeCode (Spm.CodeType codeType) { return codeTypes.GetCodeForType((int)codeType); }
//-------------------------------------------------------------------
// R e g i s t e r C o d e T y p e s
//-------------------------------------------------------------------
public static void RegisterCodeTypes (SaCodeTypeConsole codeTypeConsole, Spm.Site site)
{
if (codeTypeConsole == null) return;
//---------------------------------------------------------------------
// Anaesthetic code type:
String codeTypeCode_Anaesthetic = GetCodeTypeCode(Spm.CodeType.Anaesthetic);
List<CodeDesc> codeTypes_Anaesthetic = new List<CodeDesc>();
if (site == Spm.Site.ANT)
{
codeTypes_Anaesthetic.Add("LA", "Local infiltration");
codeTypes_Anaesthetic.Add("GA", "General anaesthetic");
codeTypes_Anaesthetic.Add("SED", "Sedation");
codeTypes_Anaesthetic.Add("SPI", "Spinal");
codeTypes_Anaesthetic.Add("ORB", "Other Regional Block");
}
codeTypeConsole.RegisterCodeType(new SaCodeTypeDfn(codeTypeCode_Anaesthetic, "Anaesthetic", 3));
codeTypeConsole.RegisterCodesOfType(codeTypeCode_Anaesthetic, codeTypes_Anaesthetic);
//---------------------------------------------------------------------
// Operation Position code type:
String codeTypeCode_OperationPosition = GetCodeTypeCode(Spm.CodeType.OperationPosition);
List<CodeDesc> codeTypes_OperationPosition = new List<CodeDesc>();
if (site == Spm.Site.ANT)
{
codeTypes_OperationPosition.Add("PRO", "Prone");
codeTypes_OperationPosition.Add("SUP", "Supine");
}
codeTypeConsole.RegisterCodeType(new SaCodeTypeDfn(codeTypeCode_OperationPosition, "Operating Position", 6));
codeTypeConsole.RegisterCodesOfType(codeTypeCode_OperationPosition, codeTypes_OperationPosition);
//---------------------------------------------------------------------
// Operating Speciality code type:
String codeTypeCode_OperatingSpeciality = GetCodeTypeCode(Spm.CodeType.OperatingSpeciality);
List<CodeDesc> codeTypes_OperatingSpeciality = new List<CodeDesc>();
if (site == Spm.Site.ANT)
{
codeTypes_OperatingSpeciality.Add("ASSE", "Medical Assessment");
codeTypes_OperatingSpeciality.Add("CARD", "Cardiology");
codeTypes_OperatingSpeciality.Add("ENT", "ENT"); // Otorhinolaryngology
codeTypes_OperatingSpeciality.Add("ECT", "Electroconvulsive Therapy");
codeTypes_OperatingSpeciality.Add("GENS", "General Surgery");
codeTypes_OperatingSpeciality.Add("GMED", "General Medicine");
codeTypes_OperatingSpeciality.Add("GYNA", "Gynaecology");
codeTypes_OperatingSpeciality.Add("HAEM", "General Haematology");
codeTypes_OperatingSpeciality.Add("HEPB", "Hepatology Biopsy");
codeTypes_OperatingSpeciality.Add("NEPH", "Nephrology");
codeTypes_OperatingSpeciality.Add("NLGY", "Neurology");
codeTypes_OperatingSpeciality.Add("OBS", "Obstetrics");
codeTypes_OperatingSpeciality.Add("OPTH", "Ophthalmology");
codeTypes_OperatingSpeciality.Add("ORAL", "Oral Surgery");
codeTypes_OperatingSpeciality.Add("ORTH", "Orthopaedic");
codeTypes_OperatingSpeciality.Add("PLAS", "Plastic Surgery");
codeTypes_OperatingSpeciality.Add("PSUR", "Paediatric Surgery");
codeTypes_OperatingSpeciality.Add("RENF", "Renal Transplant Follow Up");
codeTypes_OperatingSpeciality.Add("RENV", "Vascular Access");
codeTypes_OperatingSpeciality.Add("RHEU", "Rheumatology");
codeTypes_OperatingSpeciality.Add("UROL", "Urology");
//lOpnSpec.Insert(CodeDesc ("MaxFac", "Maxillofacial Surgery");
}
codeTypeConsole.RegisterCodeType(new SaCodeTypeDfn(codeTypeCode_OperatingSpeciality, "Operating Speciality", 12));
codeTypeConsole.RegisterCodesOfType(codeTypeCode_OperatingSpeciality, codeTypes_OperatingSpeciality);
//---------------------------------------------------------------------
// Allergies:
String codeTypeCode_Allergy = GetCodeTypeCode(Spm.CodeType.Allergy);
List<CodeDesc> codeTypes_Allergy = new List<CodeDesc>();
if (site == Spm.Site.ANT)
{
}
#if DEBUG
codeTypes_Allergy.Add("ChAsth", "Childhood asthma");
codeTypes_Allergy.Add("Eczema", "Eczema");
codeTypes_Allergy.Add("Rhinit", "Rhinitis");
codeTypes_Allergy.Add("Food", "Food allergies");
codeTypes_Allergy.Add("HayFev", "Hay fever");
#endif
codeTypeConsole.RegisterCodeType(new SaCodeTypeDfn(codeTypeCode_Allergy, "Allergy", 6));
codeTypeConsole.RegisterCodesOfType(codeTypeCode_Allergy, codeTypes_Allergy);
//---------------------------------------------------------------------
// Risk factors:
String codeTypeCode_RiskFactor = GetCodeTypeCode(Spm.CodeType.RiskFactor);
List<CodeDesc> codeTypes_RiskFactor = new List<CodeDesc>();
if (site == Spm.Site.ANT)
{
}
#if DEBUG
codeTypes_RiskFactor.Add("MRSA", "MRSA");
codeTypes_RiskFactor.Add("CDIFF", "C.Diff");
codeTypes_RiskFactor.Add("HIV", "HIV+");
#endif
codeTypeConsole.RegisterCodeType(new SaCodeTypeDfn(codeTypeCode_RiskFactor, "Risk Factor", 6));
codeTypeConsole.RegisterCodesOfType(codeTypeCode_RiskFactor, codeTypes_RiskFactor);
}
//-------------------------------------------------------------------
}
+152 -1
View File
@@ -14,9 +14,160 @@ namespace Sarand.PatientMgr.Core.App
// SLM System - Static initialisation.
static SpmSystem ()
{
// Code types.
codeTypes.Add(Spm.CodeType.Anaesthetic, "Anaes", "Anaesthetic");
codeTypes.Add(Spm.CodeType.OperationPosition, "OpnPos", "Operation position");
codeTypes.Add(Spm.CodeType.OperatingSpeciality, "OptgSpec", "Operating speciality");
codeTypes.Add(Spm.CodeType.Allergy, "Allergy", "Allergy");
codeTypes.Add(Spm.CodeType.RiskFactor, "RiskFactor", "Risk factor");
//---------------------------------------------------------------
// Sites.
sites.Add((int)Spm.Site.Addenbrookes, "ANT", "Addenbrookes");
sites.Add((int)Spm.Site.ANT, "ANT", "Addenbrookes");
//---------------------------------------------------------------
// Facility type.
facilityTypes.Add((int)Spm.FacilityType.Theatre, "THTR", "Theatre");
facilityTypes.Add((int)Spm.FacilityType.Clinic, "CLNC", "Clinic");
facilityTypes.Add((int)Spm.FacilityType.Ward, "WARD", "Ward");
facilityTypes.Add((int)Spm.FacilityType.Apparatus, "APTS", "Apparatus");
// Schedule type.
scheduleTypes.Add((int)Spm.ScheduleType.Theatre, "Theatre", "Theatre");
scheduleTypes.Add((int)Spm.ScheduleType.Clinic, "Clinic", "Clinic");
scheduleTypes.Add((int)Spm.ScheduleType.Ward, "Ward", "Ward");
// Employee role.
employeeRoles.Add((int)Spm.EmployeeRole.Consultant, "CONS", "Consultant");
employeeRoles.Add((int)Spm.EmployeeRole.Surgeon, "SURG", "Surgeon");
employeeRoles.Add((int)Spm.EmployeeRole.Anaesthetist, "ANAE", "Anaesthetist");
//---------------------------------------------------------------
// Gender.
genders.Add((int)Spm.Gender.Female, "FEM", "Female");
genders.Add((int)Spm.Gender.Male, "MAL", "Male");
// Patient data source.
patientDataSources.Add((int)Spm.PatientDataSource.Patient, "PAT", "Patient");
patientDataSources.Add((int)Spm.PatientDataSource.Admission, "ADM", "Admission");
patientDataSources.Add((int)Spm.PatientDataSource.Demographics, "DEM", "Demographics");
patientDataSources.Add((int)Spm.PatientDataSource.WaitingList, "WTL", "Waiting list");
//---------------------------------------------------------------
// Template map type.
templateMapTypes.Add((int)Spm.FacilityTemplateMapType.RollingWeek, "RWK", "Rolling week");
templateMapTypes.Add((int)Spm.FacilityTemplateMapType.WeekdayInstanceInMonth, "WIM", "Weekday instance within month");
templateMapTypes.Add((int)Spm.FacilityTemplateMapType.WorkingWeekInMonth, "WWM", "Working week within month");
// Session model.
sessionModels.Add((int)Spm.SessionModel.Default, "SesMdlDefault", "Default model");
sessionModels.Add((int)Spm.SessionModel.Maternity, "SesMdlMaternity", "Maternity");
// Resource category.
resourceCategories.Add((int)Spm.ResourceCategory.TheatreList, "THELST", "Theatre list");
resourceCategories.Add((int)Spm.ResourceCategory.ClinicList, "CLILST", "Clinic list");
resourceCategories.Add((int)Spm.ResourceCategory.WardResource, "WRDRES", "Ward resource");
resourceCategories.Add((int)Spm.ResourceCategory.WardAdmissionList, "WRDADM", "Admission list");
resourceCategories.Add((int)Spm.ResourceCategory.WardDischargeList, "WRDDIS", "Discharge list");
//---------------------------------------------------------------
// Theatre session type.
theatreSessionTypes.Add((int)Spm.TemplateType.TheatreSession_Service, "SRV", "Service");
theatreSessionTypes.Add((int)Spm.TemplateType.TheatreSession_Training, "TRN", "Training");
// Clinic session type.
clinicSessionTypes.Add((int)Spm.TemplateType.ClinicSession_Service, "SRV", "Service");
clinicSessionTypes.Add((int)Spm.TemplateType.ClinicSession_Training, "TRN", "Training");
// Ward resource type.
wardResourceTypes.Add((int)Spm.TemplateType.WardResource_Bed, "BED", "Bed");
wardResourceTypes.Add((int)Spm.TemplateType.WardResource_Chair, "CHAIR", "Chair");
wardResourceTypes.Add((int)Spm.TemplateType.WardResource_Bay, "Bay", "Bay");
wardResourceTypes.Add((int)Spm.TemplateType.WardResource_Room, "Room", "Room");
//---------------------------------------------------------------
// Resource capacity type.
resourceCapacityTypes.Add((int)Spm.ResourceCapacityType.None, "None", "None");
resourceCapacityTypes.Add((int)Spm.ResourceCapacityType.Single, "Single", "Single");
resourceCapacityTypes.Add((int)Spm.ResourceCapacityType.Double, "Dbl", "Double");
resourceCapacityTypes.Add((int)Spm.ResourceCapacityType.DoubleExclusive, "DblExc", "Double - exclusive option");
resourceCapacityTypes.Add((int)Spm.ResourceCapacityType.Triple, "Tri", "Triple");
resourceCapacityTypes.Add((int)Spm.ResourceCapacityType.TripleExclusive, "TriExc", "Triple - exclusive option");
resourceCapacityTypes.Add((int)Spm.ResourceCapacityType.Quadruple, "Quad", "Quadruple");
resourceCapacityTypes.Add((int)Spm.ResourceCapacityType.QuadrupleExclusive, "QuadExc", "Quadruple - exclusive option");
// Resource loading type.
resourceLoadingTypes.Add((int)Spm.ResourceLoadingType.None, "None", "None");
resourceLoadingTypes.Add((int)Spm.ResourceLoadingType.Units, "Units", "Units");
// Schedule freeze type.
scheduleFreezeTypes.Add((int)Spm.ScheduleFreezeType.None, "NONE", "None - schedule always open");
scheduleFreezeTypes.Add((int)Spm.ScheduleFreezeType.FixedTimePreviousDay, "FTPD", "From set time on the previous day (for 24 hours)");
// Template data type.
templateDataTypes.Add((int)Spm.TemplateDataType.ComplexityCapacity, "CompCap", "Complexity Capacity");
//---------------------------------------------------------------
// Procedure complexity.
procedureComplexities.Add((int)Spm.ProcedureComplexity.Minor, "MIN", "Minor");
procedureComplexities.Add((int)Spm.ProcedureComplexity.Intermediate, "INT", "Intermediate");
procedureComplexities.Add((int)Spm.ProcedureComplexity.Major, "MAJ", "Major");
//---------------------------------------------------------------
// Admission occupancy.
admissionOccupancies.Add((int)Spm.AdmissionOccupancy.Single, "SINGLE", "Single");
admissionOccupancies.Add((int)Spm.AdmissionOccupancy.Exclusive, "EXCLUS", "Exclusive");
// Admission action type.
admissionActionTypes.Add((int)Spm.AdmissionActionType.SendLetter, "Let", "Send letter");
admissionActionTypes.Add((int)Spm.AdmissionActionType.RepeatAdmission, "REP", "Repeat admission");
admissionActionTypes.Add((int)Spm.AdmissionActionType.ArrangeTransport, "TRA", "Arrange Transport");
admissionActionTypes.Add((int)Spm.AdmissionActionType.Filing, "FIL", "Filing");
admissionActionTypes.Add((int)Spm.AdmissionActionType.Prescription, "PRE", "Prescription");
admissionActionTypes.Add((int)Spm.AdmissionActionType.General, "GEN", "General");
// Admission cancel type.
admissionCancelTypes.Add((int)Spm.AdmissionCancelType.CancelTimeLimit, "CANTIM", "Cancel - Time limit");
admissionCancelTypes.Add((int)Spm.AdmissionCancelType.CancelOther, "CANOTH", "Cancel - Other");
admissionCancelTypes.Add((int)Spm.AdmissionCancelType.Deletion, "DELETE", "Deletion");
admissionCancelTypes.Add((int)Spm.AdmissionCancelType.ChangeSession, "CHGSES", "Change Session");
// Attendance type.
attendanceTypes.Add((int)Spm.AttendanceType.OutPatient, "OTP", "Out-Patient");
attendanceTypes.Add((int)Spm.AttendanceType.InPatient, "INP", "In-Patient");
// Attendance status.
attendanceStatuses.Add((int)Spm.AttendanceStatus.Arrived, "ARR", "Arrived");
attendanceStatuses.Add((int)Spm.AttendanceStatus.Discharged, "DIS", "Discharged");
attendanceStatuses.Add((int)Spm.AttendanceStatus.Cancelled, "CAN", "Cancelled");
attendanceStatuses.Add((int)Spm.AttendanceStatus.Dna, "DNA", "DNA");
//---------------------------------------------------------------
// Ward period length.
wardPeriodLengths.Add((int)Spm.WardPeriodLength.Week, "1Week", "1 week");
wardPeriodLengths.Add((int)Spm.WardPeriodLength.Weeks_2, "2Weeks", "2 weeks");
wardPeriodLengths.Add((int)Spm.WardPeriodLength.Weeks_4, "4Weeks", "4 weeks");
wardPeriodLengths.Add((int)Spm.WardPeriodLength.Weeks_6, "6Weeks", "6 weeks");
wardPeriodLengths.Add((int)Spm.WardPeriodLength.Weeks_8, "8Weeks", "8 weeks");
// Ward resource display.
wardResourceDisplays.Add((int)Spm.WardResourceDisplay.Summary, "Summary", "Summary");
wardResourceDisplays.Add((int)Spm.WardResourceDisplay.Narrow, "Narrow", "Narrow");
wardResourceDisplays.Add((int)Spm.WardResourceDisplay.Standard, "Standard", "Standard");
wardResourceDisplays.Add((int)Spm.WardResourceDisplay.Wide, "Wide", "Wide");
// Ward highlighting.
wardHighlightings.Add((int)Spm.WardHighlighting.None, "None", "None");
wardHighlightings.Add((int)Spm.WardHighlighting.Duration, "Duration", "Duration");
wardHighlightings.Add((int)Spm.WardHighlighting.Gender, "Gender", "Gender");
wardHighlightings.Add((int)Spm.WardHighlighting.ReferringCons, "RefCons", "Referring consultant");
wardHighlightings.Add((int)Spm.WardHighlighting.Speciality, "Speciality", "Speciality");
//---------------------------------------------------------------
// Report spacing.
reportSpacings.Add((int)Spm.ReportSpacing.Narrow, "NARROW", "Narrow");
reportSpacings.Add((int)Spm.ReportSpacing.Standard, "STANDARD", "Standard");
reportSpacings.Add((int)Spm.ReportSpacing.Wide, "WIDE", "Wide");
//---------------------------------------------------------------
}
+82 -3
View File
@@ -11,8 +11,35 @@ namespace Sarand.PatientMgr.Core.App
public abstract partial class SpmSystem : SacsSystem
{
//-------------------------------------------------------------------
// Data members.
private static List<TypeCodeDesc> codeTypes = new List<TypeCodeDesc>();
// System Code types.
private static List<TypeCodeDesc> sites = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> facilityTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> scheduleTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> employeeRoles = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> genders = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> patientDataSources = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> templateMapTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> sessionModels = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> resourceCategories = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> theatreSessionTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> clinicSessionTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> wardResourceTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> resourceCapacityTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> resourceLoadingTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> scheduleFreezeTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> templateDataTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> procedureComplexities = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> admissionOccupancies = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> admissionActionTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> admissionCancelTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> attendanceTypes = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> attendanceStatuses = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> wardPeriodLengths = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> wardResourceDisplays = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> wardHighlightings = new List<TypeCodeDesc>();
private static List<TypeCodeDesc> reportSpacings = new List<TypeCodeDesc>();
//-------------------------------------------------------------------
// Construction - use derived objects.
@@ -53,13 +80,65 @@ namespace Sarand.PatientMgr.Core.App
//-----------------------------------------------------------
case Spm.SystemCode.Site:
return new List<TypeCodeDesc>(sites);
//-----------------------------------------------------------
case Spm.SystemCode.FacilityType:
return new List<TypeCodeDesc>(facilityTypes);
case Spm.SystemCode.ScheduleType:
return new List<TypeCodeDesc>(scheduleTypes);
case Spm.SystemCode.EmployeeRole:
return new List<TypeCodeDesc>(employeeRoles);
case Spm.SystemCode.Gender:
return new List<TypeCodeDesc>(genders);
case Spm.SystemCode.PatientDataSource:
return new List<TypeCodeDesc>(patientDataSources);
case Spm.SystemCode.TemplateMapType:
return new List<TypeCodeDesc>(templateMapTypes);
case Spm.SystemCode.SessionModel:
return new List<TypeCodeDesc>(sessionModels);
case Spm.SystemCode.ResourceCategory:
return new List<TypeCodeDesc>(resourceCategories);
case Spm.SystemCode.TheatreSessionType:
return new List<TypeCodeDesc>(theatreSessionTypes);
case Spm.SystemCode.ClinicSessionType:
return new List<TypeCodeDesc>(clinicSessionTypes);
case Spm.SystemCode.WardResourceType:
return new List<TypeCodeDesc>(wardResourceTypes);
case Spm.SystemCode.ResourceCapacityType:
return new List<TypeCodeDesc>(resourceCapacityTypes);
case Spm.SystemCode.ResourceLoadingType:
return new List<TypeCodeDesc>(resourceLoadingTypes);
case Spm.SystemCode.ScheduleFreezeType:
return new List<TypeCodeDesc>(scheduleFreezeTypes);
case Spm.SystemCode.TemplateDataType:
return new List<TypeCodeDesc>(templateDataTypes);
case Spm.SystemCode.ProcedureComplexity:
return new List<TypeCodeDesc>(procedureComplexities);
case Spm.SystemCode.AdmissionOccupancy:
return new List<TypeCodeDesc>(admissionOccupancies);
case Spm.SystemCode.AdmissionActionType:
return new List<TypeCodeDesc>(admissionActionTypes);
case Spm.SystemCode.AdmissionCancelType:
return new List<TypeCodeDesc>(admissionCancelTypes);
case Spm.SystemCode.AttendanceType:
return new List<TypeCodeDesc>(attendanceTypes);
case Spm.SystemCode.AttendanceStatus:
return new List<TypeCodeDesc>(attendanceStatuses);
case Spm.SystemCode.WardPeriodLength:
return new List<TypeCodeDesc>(wardPeriodLengths);
case Spm.SystemCode.WardResourceDisplay:
return new List<TypeCodeDesc>(wardResourceDisplays);
case Spm.SystemCode.WardHighlighting:
return new List<TypeCodeDesc>(wardHighlightings);
case Spm.SystemCode.ReportSpacing:
return new List<TypeCodeDesc>(reportSpacings);
default:
Logger.Warn("SpmSystem.GetCodesOfType Invalid code type: " + systemCode.ToString());
break;
}
//---------------------------------------------------------------
return null;
}
//---------------------------------------------------------------------------
//-------------------------------------------------------------------
// System code utilities.
public static Spm.Site GetSiteForCode (String siteCode)
{
+16 -2
View File
@@ -1,4 +1,5 @@
using System;
using Sarand.Core.Bus;
using System;
using System.Collections.Generic;
using System.Text;
@@ -7,15 +8,28 @@ namespace Sarand.PatientMgr.Core.App
//=======================================================================
public class SpmUserContext
{
//-------------------------------------------------------------------
public class UserData
{
public SysId SecurityItemId { get; internal set; } = new SysId();
public String Name { get; internal set; } = "";
}
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
protected SpmUserContext (SpmSessionContext sessionContext)
{
SessionContext = sessionContext;
}
//-------------------------------------------------------------------
// Properties.
public SpmSessionContext SessionContext { get; protected set; }
public SpmSessionContext SessionContext { get; }
public UserData User { get; } = new UserData();
public SpmSecurityProfile SecurityProfile { get; } = new SpmSecurityProfile(false);
//-------------------------------------------------------------------
}
+6
View File
@@ -5,6 +5,12 @@ using System.Text;
namespace Sarand.PatientMgr.Core.Mgr
{
//=======================================================================
// AdmissionMgr manages:
// Admission
// Admission Role
// Admission Data
// Admission Action
//=======================================================================
public abstract partial class SpmAdmissionMgr : SpmItemMgr
{
+36
View File
@@ -0,0 +1,36 @@
using Sarand.PatientMgr.Core.App;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.PatientMgr.Core.Mgr
{
//=======================================================================
// DepartmentMgr manages:
// Department
// Employee Role
// Facility
// Facility Template
// Template Data
// Facility Session
// Procedure
//=======================================================================
public abstract partial class SpmDepartmentMgr : SpmItemMgr
{
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
protected SpmDepartmentMgr (SpmUserContext userContext) :
base(userContext)
{
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,33 @@
using Sarand.PatientMgr.Core.App;
using System;
using System.Collections.Generic;
using System.Text;
namespace Sarand.PatientMgr.Core.Mgr
{
//=======================================================================
// InstitutionMgr manages:
// Institution
// Operation
// Employee
// Patient
//=======================================================================
public abstract partial class SpmInstitutionMgr : SpmItemMgr
{
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
protected SpmInstitutionMgr (SpmUserContext userContext) :
base(userContext)
{
}
//-------------------------------------------------------------------
// Properties.
//-------------------------------------------------------------------
}
//=======================================================================
}
+26 -3
View File
@@ -42,6 +42,29 @@
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Win\Dbas\App\SpmSystem_WinDbas.cs" />
<Compile Include="Win\Dbas\Consoles\SpmCodeTypeConsole_Dbas.cs" />
<Compile Include="Win\Dbas\Consoles\SpmItemOptionConsole_Dbas.cs" />
<Compile Include="Win\Dbas\Consoles\SpmSecurityConsole_Dbas.cs" />
<Compile Include="Win\Dbas\Consoles\SpmUpdateLogConsole_Dbas.cs" />
<Compile Include="Win\Dbas\Data\SpmDbDataItem.cs" />
<Compile Include="Win\Dbas\Internal\IndexDefragLog_Db.cs" />
<Compile Include="Win\Dbas\Internal\SaItemNamedValue_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmAdmissionAction_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmAdmissionData_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmAdmissionRole_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmAdmission_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmDepartmentCode_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmDepartment_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmEmployeeRole_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmEmployee_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmFacilitySession_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmFacilityTemplate_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmFacility_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmInstitution_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmOperation_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmPatient_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmProcedure_Db.cs" />
<Compile Include="Win\Dbas\Internal\SwmTemplateData_Db.cs" />
<Compile Include="Win\Dbas\Mgr\SpmAdmissionMgr_Dbas.cs" />
<Compile Include="Win\Dbas\Utils\SpmDbDfnGenerator.cs" />
<Compile Include="Win\Dbas\Utils\SpmFileUtil.cs" />
@@ -66,10 +89,10 @@
<ItemGroup>
<Folder Include="Win\Dbas\Base\" />
<Folder Include="Win\Dbas\Bus\" />
<Folder Include="Win\Dbas\Consoles\" />
<Folder Include="Win\Dbas\Data\" />
<Folder Include="Win\Dbas\Internal\" />
<Folder Include="Win\Dbas\UpdateLog\" />
</ItemGroup>
<ItemGroup>
<Content Include="Win\Dbas\Internal\SpmDbDfn.xml" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
@@ -0,0 +1,24 @@
using Sarand.PatientMgr.Core.App;
using Sarand.Win.Dbas.Base;
using Sarand.Win.Dbas.CodeTypes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sarand.PatientMgr.Win.Dbas.Consoles
{
//=======================================================================
public abstract class SpmCodeTypeConsole_Dbas : SaCodeTypeConsole_Dbas
{
//-------------------------------------------------------------------
// Construction.
protected SpmCodeTypeConsole_Dbas (SpmSessionContext sessionContext, SacsDatabase database) : base(database)
{
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,47 @@
using Sarand.Core.Bus;
using Sarand.Core.ItemOptions;
using Sarand.Core.UpdateLog;
using Sarand.PatientMgr.Core.App;
using Sarand.Win.Dbas.Base;
using Sarand.Win.Dbas.ItemOptions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sarand.PatientMgr.Win.Dbas.Consoles
{
//=======================================================================
public abstract class SpmItemOptionConsole_Dbas : SaItemOptionConsole_Dbas
{
//-------------------------------------------------------------------
// Construction.
protected SpmItemOptionConsole_Dbas (SpmSessionContext sessionContext, SacsDatabase database) : base(database)
{
SessionContext = sessionContext;
}
//-------------------------------------------------------------------
// Properties.
public SpmSessionContext SessionContext { get; }
public override short ItemOptionDataType { get { return (short)Spm.DataItemType.ItemOption; } }
public override SaUpdateLogConsole UpdateLogConsole { get { return SpmGlobals.Application.GetUpdateLogConsole(SessionContext); } }
//-------------------------------------------------------------------
// I t e m O p t i o n D e f i n i t i o n s
//-------------------------------------------------------------------
public override List<SaItemOptionDfn> GetItemOptionDfnsForItem (ItemId itemId)
{
// ToDo SpmItemOptionConsole_Dbas.GetItemOptionDfnsForItem
/*
if (itemId.Type == (int)Spm.DataItemType.Interface)
return SpmGlobals.ConsoleHelper.GetInterfaceConsole(SessionContext).GetInterfaceItemOptionDfns(itemId.Id);
*/
return null;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,105 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Core.App;
using Sarand.Win.Dbas.Base;
using Sarand.Win.Dbas.Security;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sarand.PatientMgr.Win.Dbas.Consoles
{
//=======================================================================
public abstract class SpmSecurityConsole_Dbas : SaSecurityConsole_Dbas
{
//-------------------------------------------------------------------
// Data members.
private static List<TypeCodeDesc> securityRights = new List<TypeCodeDesc>();
//-------------------------------------------------------------------
// Static initialisation.
static SpmSecurityConsole_Dbas ()
{
securityRights.Add((int)Spm.SecurityRight.ManageSecurity, "MngSec", "Manage Security");
securityRights.Add((int)Spm.SecurityRight.ManageConfig, "MngCfg", "Manage Config");
securityRights.Add((int)Spm.SecurityRight.ManageDb, "MngDb", "Manage Database");
securityRights.Add((int)Spm.SecurityRight.DepartmentView, "DeptView", "View department");
securityRights.Add((int)Spm.SecurityRight.DepartmentReserve, "DeptReserve", "Reserve department");
securityRights.Add((int)Spm.SecurityRight.DepartmentUpdate, "DeptUpd", "Update department");
securityRights.Add((int)Spm.SecurityRight.DepartmentConfig, "DeptCfg", "Manage department");
securityRights.Add((int)Spm.SecurityRight.ConsultantView, "ConsView", "View Consultant");
securityRights.Add((int)Spm.SecurityRight.ConsultantUpdate, "ConsUpd", "Update Consultant");
securityRights.Add((int)Spm.SecurityRight.SpecialityView, "SpecView", "View Speciality");
securityRights.Add((int)Spm.SecurityRight.SpecialityUpdate, "SpecUpd", "Update Speciality");
}
//-------------------------------------------------------------------
// Construction.
protected SpmSecurityConsole_Dbas (SpmSessionContext sessionContext, SacsDatabase database) : base(database)
{
}
//-------------------------------------------------------------------
// Properties.
public List<TypeCodeDesc> GetSecurityRights () { return new List<TypeCodeDesc>(securityRights); }
//-------------------------------------------------------------------
// Register Security Rights.
public override void RegisterSecurityRights ()
{
//---------------------------------------------------------------
// Register data item types.
RegisterDataItemType((short)Spm.DataItemType.Department, "Department");
RegisterDataItemType((short)Spm.DataItemType.RoleConsultant, "Consultant");
RegisterDataItemType((short)Spm.DataItemType.CodeSpeciality, "Speciality");
//---------------------------------------------------------------
// Manage security.
CodeDesc securityRight = GetSecurityRight(Spm.SecurityRight.ManageSecurity);
RegisterSecurityRight(securityRight.Code, securityRight.Desc);
// Manage configuration.
securityRight = GetSecurityRight(Spm.SecurityRight.ManageConfig);
RegisterSecurityRight(securityRight.Code, securityRight.Desc);
// Manage database.
securityRight = GetSecurityRight(Spm.SecurityRight.ManageDb);
RegisterSecurityRight(securityRight.Code, securityRight.Desc);
//---------------------------------------------------------------
// View department:
securityRight = GetSecurityRight(Spm.SecurityRight.DepartmentView);
RegisterSecurityRight(securityRight.Code, securityRight.Desc, (short)Spm.DataItemType.Department);
// Make reservation in department:
securityRight = GetSecurityRight(Spm.SecurityRight.DepartmentReserve);
RegisterSecurityRight(securityRight.Code, securityRight.Desc, (short)Spm.DataItemType.Department);
// Update department:
securityRight = GetSecurityRight(Spm.SecurityRight.DepartmentUpdate);
RegisterSecurityRight(securityRight.Code, securityRight.Desc, (short)Spm.DataItemType.Department);
// Manage department:
securityRight = GetSecurityRight(Spm.SecurityRight.DepartmentConfig);
RegisterSecurityRight(securityRight.Code, securityRight.Desc, (short)Spm.DataItemType.Department);
//---------------------------------------------------------------
// Security rights associated with specific consultant:
securityRight = GetSecurityRight(Spm.SecurityRight.ConsultantView);
RegisterSecurityRight(securityRight.Code, securityRight.Desc, (short)Spm.DataItemType.RoleConsultant);
securityRight = GetSecurityRight(Spm.SecurityRight.ConsultantUpdate);
RegisterSecurityRight(securityRight.Code, securityRight.Desc, (short)Spm.DataItemType.RoleConsultant);
//---------------------------------------------------------------
// Security rights associated with specific speciality:
securityRight = GetSecurityRight(Spm.SecurityRight.SpecialityView);
RegisterSecurityRight(securityRight.Code, securityRight.Desc, (short)Spm.DataItemType.CodeSpeciality);
securityRight = GetSecurityRight(Spm.SecurityRight.SpecialityUpdate);
RegisterSecurityRight(securityRight.Code, securityRight.Desc, (short)Spm.DataItemType.CodeSpeciality);
//---------------------------------------------------------------
}
CodeDesc GetSecurityRight (Spm.SecurityRight securityRight)
{
return securityRights.GetCodeDescForType((int)securityRight);
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,44 @@
using Sarand.Core.Bus;
using Sarand.Core.Security;
using Sarand.PatientMgr.Core.App;
using Sarand.Win.Dbas.Base;
using Sarand.Win.Dbas.UpdateLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sarand.PatientMgr.Win.Dbas.Consoles
{
//=======================================================================
public abstract class SpmUpdateLogConsole_Dbas : SaUpdateLogConsole_Dbas
{
//-------------------------------------------------------------------
// Construction.
protected SpmUpdateLogConsole_Dbas (SpmSessionContext sessionContext, SacsDatabase database) : base(database)
{
SessionContext = sessionContext;
}
//-------------------------------------------------------------------
// Properties.
public SpmSessionContext SessionContext { get; }
//-------------------------------------------------------------------
// Get name for User Id.
public override Dictionary<SysId, String> GetNameForUserIds (List<SysId> userIds)
{
Dictionary<SysId, String> userNames = new Dictionary<SysId, String>();
SaSecurityConsole securityConsole = SpmGlobals.Application.GetSecurityConsole(SessionContext);
if (securityConsole != null)
{
userNames = securityConsole.GetSecurityItemDescriptions(userIds);
}
return userNames;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,79 @@
using Sarand.Core.Base;
using Sarand.Core.Dbas.Base;
using Sarand.PatientMgr.Core.App;
using Sarand.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Sarand.Win.Dbas.Data.DbDataItem;
namespace Sarand.PatientMgr.Win.Dbas.Data
{
//=======================================================================
public abstract class SpmDbDataItem : DbDataItem
{
//-------------------------------------------------------------------
// Definitions.
/// <summary>
/// Database information - object supplied by main application.
/// <para>NB Application may have multiple databases with schema differences.</para>
/// <para>Each instance of a DbDataItem must be database specific.</para>
/// </summary>
public class SlmDatabaseInfo : IDatabaseInfo
{
// Data members.
private readonly List<DbDfnTable> tables;
private static readonly String defaultSchemaName = "dbo";
// Construction.
public SlmDatabaseInfo (Spm.Site site, String databaseName, List<DbDfnTable> tables)
{
this.Site = site;
this.DatabaseName = databaseName;
this.tables = tables;
}
// Properties.
public Spm.Site Site { get; }
public String DatabaseName { get; }
public String Context { get { return StringUtil.OnEmpty(SpmSystem.GetSiteCode(Site), "UnknownSite") + "." + StringUtil.OnEmpty(DatabaseName, "UnknownDb"); } }
// Database schema.
public DbDfnTable GetTableDefinition (String schemaName, String tableName)
{
foreach (DbDfnTable table in tables.FindAll(item => item.Name.EqualsCI(tableName)))
{
if (StringUtil.OnEmpty(table.Schema, defaultSchemaName).EqualsCI(StringUtil.OnEmpty(schemaName, defaultSchemaName)))
return table;
}
return null;
}
public bool TableExists (String schemaName, String tableName)
{
return GetTableDefinition(schemaName, tableName) != null;
}
public bool ColumnExists (String schemaName, String tableName, String columnName)
{
DbDfnTable table = GetTableDefinition(schemaName, tableName);
if (table == null) return false;
return table.HasColumnByName(columnName);
}
public List<DbDfnColumn> GetColumnsForTable (String schemaName, String tableName)
{
DbDfnTable table = GetTableDefinition(schemaName, tableName);
if (table != null) return table.Columns;
return new List<DbDfnColumn>();
}
}
//-------------------------------------------------------------------
// Construction.
protected SpmDbDataItem (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,211 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class IndexDefragLog_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _IndexDefragId { get; } = new ColumnDataInt32("IndexDefragId", true);
public ColumnDataInt32 _DatabaseID { get; } = new ColumnDataInt32("DatabaseID");
public ColumnDataString _DatabaseName { get; } = new ColumnDataString("DatabaseName");
public ColumnDataInt32 _ObjectID { get; } = new ColumnDataInt32("ObjectID");
public ColumnDataString _ObjectName { get; } = new ColumnDataString("ObjectName");
public ColumnDataInt32 _IndexID { get; } = new ColumnDataInt32("IndexID");
public ColumnDataString _IndexName { get; } = new ColumnDataString("IndexName");
public ColumnDataInt16 _PartitionNumber { get; } = new ColumnDataInt16("PartitionNumber");
public ColumnDataDouble _Fragmentation { get; } = new ColumnDataDouble("Fragmentation");
public ColumnDataInt32 _PageCount { get; } = new ColumnDataInt32("PageCount");
public ColumnDataDateTime _DateTimeStart { get; } = new ColumnDataDateTime("DateTimeStart");
public ColumnDataInt32 _DurationSeconds { get; } = new ColumnDataInt32("DurationSeconds");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"IndexDefragId",
"DatabaseID",
"DatabaseName",
"ObjectID",
"ObjectName",
"IndexID",
"IndexName",
"PartitionNumber",
"Fragmentation",
"PageCount",
"DateTimeStart",
"DurationSeconds",
};
private static List<String> fieldsId { get; } = new List<String>()
{
"IndexDefragId",
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"IndexDefragId",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal IndexDefragLog_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "IndexDefragLog";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _IndexDefragId { get { return Cols._IndexDefragId.Value; } set { Cols._IndexDefragId.Value = value; } }
public Int32 _DatabaseID { get { return Cols._DatabaseID.Value; } set { Cols._DatabaseID.Value = value; } }
public String _DatabaseName { get { return Cols._DatabaseName.Value; } set { Cols._DatabaseName.Value = value; } }
public Int32 _ObjectID { get { return Cols._ObjectID.Value; } set { Cols._ObjectID.Value = value; } }
public String _ObjectName { get { return Cols._ObjectName.Value; } set { Cols._ObjectName.Value = value; } }
public Int32 _IndexID { get { return Cols._IndexID.Value; } set { Cols._IndexID.Value = value; } }
public String _IndexName { get { return Cols._IndexName.Value; } set { Cols._IndexName.Value = value; } }
public Int16 _PartitionNumber { get { return Cols._PartitionNumber.Value; } set { Cols._PartitionNumber.Value = value; } }
public Double _Fragmentation { get { return Cols._Fragmentation.Value; } set { Cols._Fragmentation.Value = value; } }
public Int32 _PageCount { get { return Cols._PageCount.Value; } set { Cols._PageCount.Value = value; } }
public DateTime _DateTimeStart { get { return Cols._DateTimeStart.Value; } set { Cols._DateTimeStart.Value = value; } }
public Int32 _DurationSeconds { get { return Cols._DurationSeconds.Value; } set { Cols._DurationSeconds.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_IndexDefragId = GetFieldInt32(dbDataReader, "IndexDefragId", _IndexDefragId);
_DatabaseID = GetFieldInt32(dbDataReader, "DatabaseID", _DatabaseID);
_DatabaseName = GetFieldString(dbDataReader, "DatabaseName", _DatabaseName);
_ObjectID = GetFieldInt32(dbDataReader, "ObjectID", _ObjectID);
_ObjectName = GetFieldString(dbDataReader, "ObjectName", _ObjectName);
_IndexID = GetFieldInt32(dbDataReader, "IndexID", _IndexID);
_IndexName = GetFieldString(dbDataReader, "IndexName", _IndexName);
_PartitionNumber = GetFieldInt16(dbDataReader, "PartitionNumber", _PartitionNumber);
_Fragmentation = GetFieldDouble(dbDataReader, "Fragmentation", _Fragmentation);
_PageCount = GetFieldInt32(dbDataReader, "PageCount", _PageCount);
_DateTimeStart = GetFieldDateTime(dbDataReader, "DateTimeStart", _DateTimeStart);
_DurationSeconds = GetFieldInt32(dbDataReader, "DurationSeconds", _DurationSeconds);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Avoid insert if Identity field is already valid.
if (_IndexDefragId != 0) throw new Exception("Invalid for Insert - item already has a valid Id");
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
query += "Output Inserted.IndexDefragId ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("DatabaseID")) AddCommandParameter(dbCommand, "@DatabaseID", _DatabaseID);
if (columnNames.ContainsCI("DatabaseName")) AddCommandParameter(dbCommand, "@DatabaseName", _DatabaseName);
if (columnNames.ContainsCI("ObjectID")) AddCommandParameter(dbCommand, "@ObjectID", _ObjectID);
if (columnNames.ContainsCI("ObjectName")) AddCommandParameter(dbCommand, "@ObjectName", _ObjectName);
if (columnNames.ContainsCI("IndexID")) AddCommandParameter(dbCommand, "@IndexID", _IndexID);
if (columnNames.ContainsCI("IndexName")) AddCommandParameter(dbCommand, "@IndexName", _IndexName);
if (columnNames.ContainsCI("PartitionNumber")) AddCommandParameter(dbCommand, "@PartitionNumber", _PartitionNumber);
if (columnNames.ContainsCI("Fragmentation")) AddCommandParameter(dbCommand, "@Fragmentation", _Fragmentation);
if (columnNames.ContainsCI("PageCount")) AddCommandParameter(dbCommand, "@PageCount", _PageCount);
if (columnNames.ContainsCI("DateTimeStart")) AddCommandParameter(dbCommand, "@DateTimeStart", _DateTimeStart);
if (columnNames.ContainsCI("DurationSeconds")) AddCommandParameter(dbCommand, "@DurationSeconds", _DurationSeconds);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
dbCommand.CommandText = "SELECT Max(IndexDefragId) FROM " + TableNameFmt + ";";
_IndexDefragId = Convert.ToInt32(dbCommand.ExecuteScalar());
commandSuccess = (_IndexDefragId > 0);
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Avoid update if Identity field isn't valid.
if (_IndexDefragId == 0) throw new Exception("Invalid for Update - item has an invalid Id");
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE IndexDefragId=@IndexDefragId;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE IndexDefragId=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("DatabaseID")) AddCommandParameter(dbCommand, "@DatabaseID", _DatabaseID);
if (columnNames.ContainsCI("DatabaseName")) AddCommandParameter(dbCommand, "@DatabaseName", _DatabaseName);
if (columnNames.ContainsCI("ObjectID")) AddCommandParameter(dbCommand, "@ObjectID", _ObjectID);
if (columnNames.ContainsCI("ObjectName")) AddCommandParameter(dbCommand, "@ObjectName", _ObjectName);
if (columnNames.ContainsCI("IndexID")) AddCommandParameter(dbCommand, "@IndexID", _IndexID);
if (columnNames.ContainsCI("IndexName")) AddCommandParameter(dbCommand, "@IndexName", _IndexName);
if (columnNames.ContainsCI("PartitionNumber")) AddCommandParameter(dbCommand, "@PartitionNumber", _PartitionNumber);
if (columnNames.ContainsCI("Fragmentation")) AddCommandParameter(dbCommand, "@Fragmentation", _Fragmentation);
if (columnNames.ContainsCI("PageCount")) AddCommandParameter(dbCommand, "@PageCount", _PageCount);
if (columnNames.ContainsCI("DateTimeStart")) AddCommandParameter(dbCommand, "@DateTimeStart", _DateTimeStart);
if (columnNames.ContainsCI("DurationSeconds")) AddCommandParameter(dbCommand, "@DurationSeconds", _DurationSeconds);
AddCommandParameter(dbCommand, "@IndexDefragId", _IndexDefragId);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,216 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SaItemNamedValue_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt16 _ItemType { get; } = new ColumnDataInt16("ItemType");
public ColumnDataInt32 _ItemId { get; } = new ColumnDataInt32("ItemId");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataInt16 _Seq { get; } = new ColumnDataInt16("Seq");
public ColumnDataString _Value { get; } = new ColumnDataString("Value");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"ItemType",
"ItemId",
"Name",
"Seq",
"Value",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"ItemType",
"ItemId",
"Name",
"Seq",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SaItemNamedValue_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SaItemNamedValue";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int16 _ItemType { get { return Cols._ItemType.Value; } set { Cols._ItemType.Value = value; } }
public Int32 _ItemId { get { return Cols._ItemId.Value; } set { Cols._ItemId.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public Int16 _Seq { get { return Cols._Seq.Value; } set { Cols._Seq.Value = value; } }
public String _Value { get { return Cols._Value.Value; } set { Cols._Value.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_ItemType = GetFieldInt16(dbDataReader, "ItemType", _ItemType);
_ItemId = GetFieldInt32(dbDataReader, "ItemId", _ItemId);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_Seq = GetFieldInt16(dbDataReader, "Seq", _Seq);
_Value = GetFieldString(dbDataReader, "Value", _Value);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ItemType")) AddCommandParameter(dbCommand, "@ItemType", _ItemType);
if (columnNames.ContainsCI("ItemId")) AddCommandParameter(dbCommand, "@ItemId", _ItemId);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("Value")) AddCommandParameter(dbCommand, "@Value", _Value);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE ItemType=@ItemType AND ItemId=@ItemId AND Name=@Name AND Seq=@Seq;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE ItemType=? AND ItemId=? AND Name=? AND Seq=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Value")) AddCommandParameter(dbCommand, "@Value", _Value);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@ItemType", _ItemType);
AddCommandParameter(dbCommand, "@ItemId", _ItemId);
AddCommandParameter(dbCommand, "@Name", _Name);
AddCommandParameter(dbCommand, "@Seq", _Seq);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,231 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmAdmissionAction_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _AdmissionId { get; } = new ColumnDataInt32("AdmissionId");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataDateTime _Raised { get; } = new ColumnDataDateTime("Raised");
public ColumnDataInt32 _EmployeeIdRaised { get; } = new ColumnDataInt32("EmployeeIdRaised");
public ColumnDataDateTime _Completed { get; } = new ColumnDataDateTime("Completed");
public ColumnDataInt32 _EmployeeIdCompleted { get; } = new ColumnDataInt32("EmployeeIdCompleted");
public ColumnDataString _ActionData { get; } = new ColumnDataString("ActionData");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"AdmissionId",
"Type",
"Raised",
"EmployeeIdRaised",
"Completed",
"EmployeeIdCompleted",
"ActionData",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmAdmissionAction_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmAdmissionAction";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _AdmissionId { get { return Cols._AdmissionId.Value; } set { Cols._AdmissionId.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public DateTime _Raised { get { return Cols._Raised.Value; } set { Cols._Raised.Value = value; } }
public Int32 _EmployeeIdRaised { get { return Cols._EmployeeIdRaised.Value; } set { Cols._EmployeeIdRaised.Value = value; } }
public DateTime _Completed { get { return Cols._Completed.Value; } set { Cols._Completed.Value = value; } }
public Int32 _EmployeeIdCompleted { get { return Cols._EmployeeIdCompleted.Value; } set { Cols._EmployeeIdCompleted.Value = value; } }
public String _ActionData { get { return Cols._ActionData.Value; } set { Cols._ActionData.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_AdmissionId = GetFieldInt32(dbDataReader, "AdmissionId", _AdmissionId);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Raised = GetFieldDateTime(dbDataReader, "Raised", _Raised);
_EmployeeIdRaised = GetFieldInt32(dbDataReader, "EmployeeIdRaised", _EmployeeIdRaised);
_Completed = GetFieldDateTime(dbDataReader, "Completed", _Completed);
_EmployeeIdCompleted = GetFieldInt32(dbDataReader, "EmployeeIdCompleted", _EmployeeIdCompleted);
_ActionData = GetFieldString(dbDataReader, "ActionData", _ActionData);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("AdmissionId")) AddCommandParameter(dbCommand, "@AdmissionId", _AdmissionId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Raised")) AddCommandParameter(dbCommand, "@Raised", _Raised);
if (columnNames.ContainsCI("EmployeeIdRaised")) AddCommandParameter(dbCommand, "@EmployeeIdRaised", _EmployeeIdRaised);
if (columnNames.ContainsCI("Completed")) AddCommandParameter(dbCommand, "@Completed", _Completed);
if (columnNames.ContainsCI("EmployeeIdCompleted")) AddCommandParameter(dbCommand, "@EmployeeIdCompleted", _EmployeeIdCompleted);
if (columnNames.ContainsCI("ActionData")) AddCommandParameter(dbCommand, "@ActionData", _ActionData);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AdmissionId")) AddCommandParameter(dbCommand, "@AdmissionId", _AdmissionId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Raised")) AddCommandParameter(dbCommand, "@Raised", _Raised);
if (columnNames.ContainsCI("EmployeeIdRaised")) AddCommandParameter(dbCommand, "@EmployeeIdRaised", _EmployeeIdRaised);
if (columnNames.ContainsCI("Completed")) AddCommandParameter(dbCommand, "@Completed", _Completed);
if (columnNames.ContainsCI("EmployeeIdCompleted")) AddCommandParameter(dbCommand, "@EmployeeIdCompleted", _EmployeeIdCompleted);
if (columnNames.ContainsCI("ActionData")) AddCommandParameter(dbCommand, "@ActionData", _ActionData);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,202 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmAdmissionData_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _AdmissionId { get; } = new ColumnDataInt32("AdmissionId");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Data { get; } = new ColumnDataString("Data");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"AdmissionId",
"Type",
"Data",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"AdmissionId",
"Type",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmAdmissionData_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmAdmissionData";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _AdmissionId { get { return Cols._AdmissionId.Value; } set { Cols._AdmissionId.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Data { get { return Cols._Data.Value; } set { Cols._Data.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_AdmissionId = GetFieldInt32(dbDataReader, "AdmissionId", _AdmissionId);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Data = GetFieldString(dbDataReader, "Data", _Data);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AdmissionId")) AddCommandParameter(dbCommand, "@AdmissionId", _AdmissionId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Data")) AddCommandParameter(dbCommand, "@Data", _Data);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE AdmissionId=@AdmissionId AND Type=@Type;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE AdmissionId=? AND Type=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Data")) AddCommandParameter(dbCommand, "@Data", _Data);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@AdmissionId", _AdmissionId);
AddCommandParameter(dbCommand, "@Type", _Type);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,224 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmAdmissionRole_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _AdmissionId { get; } = new ColumnDataInt32("AdmissionId");
public ColumnDataInt16 _Role { get; } = new ColumnDataInt16("Role");
public ColumnDataInt16 _Seq { get; } = new ColumnDataInt16("Seq");
public ColumnDataInt32 _EmployeeRoleId { get; } = new ColumnDataInt32("EmployeeRoleId");
public ColumnDataString _EmployeeCode { get; } = new ColumnDataString("EmployeeCode");
public ColumnDataInt16 _Category { get; } = new ColumnDataInt16("Category");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"AdmissionId",
"Role",
"Seq",
"EmployeeRoleId",
"EmployeeCode",
"Category",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"AdmissionId",
"Role",
"Seq",
"EmployeeRoleId",
"EmployeeCode",
"Category",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmAdmissionRole_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmAdmissionRole";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _AdmissionId { get { return Cols._AdmissionId.Value; } set { Cols._AdmissionId.Value = value; } }
public Int16 _Role { get { return Cols._Role.Value; } set { Cols._Role.Value = value; } }
public Int16 _Seq { get { return Cols._Seq.Value; } set { Cols._Seq.Value = value; } }
public Int32 _EmployeeRoleId { get { return Cols._EmployeeRoleId.Value; } set { Cols._EmployeeRoleId.Value = value; } }
public String _EmployeeCode { get { return Cols._EmployeeCode.Value; } set { Cols._EmployeeCode.Value = value; } }
public Int16 _Category { get { return Cols._Category.Value; } set { Cols._Category.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_AdmissionId = GetFieldInt32(dbDataReader, "AdmissionId", _AdmissionId);
_Role = GetFieldInt16(dbDataReader, "Role", _Role);
_Seq = GetFieldInt16(dbDataReader, "Seq", _Seq);
_EmployeeRoleId = GetFieldInt32(dbDataReader, "EmployeeRoleId", _EmployeeRoleId);
_EmployeeCode = GetFieldString(dbDataReader, "EmployeeCode", _EmployeeCode);
_Category = GetFieldInt16(dbDataReader, "Category", _Category);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("AdmissionId")) AddCommandParameter(dbCommand, "@AdmissionId", _AdmissionId);
if (columnNames.ContainsCI("Role")) AddCommandParameter(dbCommand, "@Role", _Role);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("EmployeeRoleId")) AddCommandParameter(dbCommand, "@EmployeeRoleId", _EmployeeRoleId);
if (columnNames.ContainsCI("EmployeeCode")) AddCommandParameter(dbCommand, "@EmployeeCode", _EmployeeCode);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE AdmissionId=@AdmissionId AND Role=@Role AND Seq=@Seq AND EmployeeRoleId=@EmployeeRoleId AND EmployeeCode=@EmployeeCode AND Category=@Category;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE AdmissionId=? AND Role=? AND Seq=? AND EmployeeRoleId=? AND EmployeeCode=? AND Category=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@AdmissionId", _AdmissionId);
AddCommandParameter(dbCommand, "@Role", _Role);
AddCommandParameter(dbCommand, "@Seq", _Seq);
AddCommandParameter(dbCommand, "@EmployeeRoleId", _EmployeeRoleId);
AddCommandParameter(dbCommand, "@EmployeeCode", _EmployeeCode);
AddCommandParameter(dbCommand, "@Category", _Category);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,561 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmAdmission_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _FacilityId { get; } = new ColumnDataInt32("FacilityId");
public ColumnDataInt32 _FacilityTemplateId { get; } = new ColumnDataInt32("FacilityTemplateId");
public ColumnDataDateTime _AdmissionFrom { get; } = new ColumnDataDateTime("AdmissionFrom");
public ColumnDataDateTime _AdmissionTo { get; } = new ColumnDataDateTime("AdmissionTo");
public ColumnDataDateTime _DecisionToReferOn { get; } = new ColumnDataDateTime("DecisionToReferOn");
public ColumnDataDateTime _ReferredOn { get; } = new ColumnDataDateTime("ReferredOn");
public ColumnDataDateTime _BreechOn { get; } = new ColumnDataDateTime("BreechOn");
public ColumnDataDateTime _DecisionToAdmitOn { get; } = new ColumnDataDateTime("DecisionToAdmitOn");
public ColumnDataDateTime _PreAssessment { get; } = new ColumnDataDateTime("PreAssessment");
public ColumnDataDateTime _ToComeIn { get; } = new ColumnDataDateTime("ToComeIn");
public ColumnDataByte _Seq { get; } = new ColumnDataByte("Seq");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataInt16 _Occupancy { get; } = new ColumnDataInt16("Occupancy");
public ColumnDataInt32 _PatientId { get; } = new ColumnDataInt32("PatientId");
public ColumnDataString _PatientNo { get; } = new ColumnDataString("PatientNo");
public ColumnDataString _NhsNumber { get; } = new ColumnDataString("NhsNumber");
public ColumnDataString _Title { get; } = new ColumnDataString("Title");
public ColumnDataString _Surname { get; } = new ColumnDataString("Surname");
public ColumnDataString _Forename { get; } = new ColumnDataString("Forename");
public ColumnDataInt16 _Gender { get; } = new ColumnDataInt16("Gender");
public ColumnDataInt32 _BirthOn { get; } = new ColumnDataInt32("BirthOn");
public ColumnDataString _Age { get; } = new ColumnDataString("Age");
public ColumnDataDateTime _AgeOn { get; } = new ColumnDataDateTime("AgeOn");
public ColumnDataString _PhoneMobile { get; } = new ColumnDataString("PhoneMobile");
public ColumnDataString _Email { get; } = new ColumnDataString("Email");
public ColumnDataInt16 _ContactFlags { get; } = new ColumnDataInt16("ContactFlags");
public ColumnDataString _SystemRef { get; } = new ColumnDataString("SystemRef");
public ColumnDataInt16 _AttendanceType { get; } = new ColumnDataInt16("AttendanceType");
public ColumnDataString _AttendanceStatus { get; } = new ColumnDataString("AttendanceStatus");
public ColumnDataInt32 _FacilityIdWard { get; } = new ColumnDataInt32("FacilityIdWard");
public ColumnDataString _Ward { get; } = new ColumnDataString("Ward");
public ColumnDataString _SpecialityCode { get; } = new ColumnDataString("SpecialityCode");
public ColumnDataInt32 _ProcedureId { get; } = new ColumnDataInt32("ProcedureId");
public ColumnDataString _ProcedureCode { get; } = new ColumnDataString("ProcedureCode");
public ColumnDataString _ProcedureDesc { get; } = new ColumnDataString("ProcedureDesc");
public ColumnDataString _ComplexityCode { get; } = new ColumnDataString("ComplexityCode");
public ColumnDataString _ProcedureIndication { get; } = new ColumnDataString("ProcedureIndication");
public ColumnDataString _PatientHistory { get; } = new ColumnDataString("PatientHistory");
public ColumnDataString _GestationPeriod { get; } = new ColumnDataString("GestationPeriod");
public ColumnDataInt16 _DurationExp { get; } = new ColumnDataInt16("DurationExp");
public ColumnDataInt16 _DurationAct { get; } = new ColumnDataInt16("DurationAct");
public ColumnDataSingle _UnitsExp { get; } = new ColumnDataSingle("UnitsExp");
public ColumnDataSingle _UnitsAct { get; } = new ColumnDataSingle("UnitsAct");
public ColumnDataString _Anaesthetic { get; } = new ColumnDataString("Anaesthetic");
public ColumnDataString _Position { get; } = new ColumnDataString("Position");
public ColumnDataString _SpecialEquipment { get; } = new ColumnDataString("SpecialEquipment");
public ColumnDataString _ComfortScore { get; } = new ColumnDataString("ComfortScore");
public ColumnDataDateTime _TimeCalled { get; } = new ColumnDataDateTime("TimeCalled");
public ColumnDataDateTime _TimeArrived { get; } = new ColumnDataDateTime("TimeArrived");
public ColumnDataDateTime _TimeAnaesStart { get; } = new ColumnDataDateTime("TimeAnaesStart");
public ColumnDataDateTime _TimeProcStart { get; } = new ColumnDataDateTime("TimeProcStart");
public ColumnDataDateTime _TimeProcEnd { get; } = new ColumnDataDateTime("TimeProcEnd");
public ColumnDataDateTime _TimeInRecovery { get; } = new ColumnDataDateTime("TimeInRecovery");
public ColumnDataDateTime _TimeInformDest { get; } = new ColumnDataDateTime("TimeInformDest");
public ColumnDataDateTime _TimeLeave { get; } = new ColumnDataDateTime("TimeLeave");
public ColumnDataInt16 _CancelType { get; } = new ColumnDataInt16("CancelType");
public ColumnDataDateTime _CancelDate { get; } = new ColumnDataDateTime("CancelDate");
public ColumnDataInt16 _CancelCount { get; } = new ColumnDataInt16("CancelCount");
public ColumnDataString _CancelCode { get; } = new ColumnDataString("CancelCode");
public ColumnDataString _CancelReason { get; } = new ColumnDataString("CancelReason");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
public ColumnDataDateTime _DecisionToRefer { get; } = new ColumnDataDateTime("DecisionToRefer");
public ColumnDataDateTime _Referred { get; } = new ColumnDataDateTime("Referred");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"FacilityId",
"FacilityTemplateId",
"AdmissionFrom",
"AdmissionTo",
"DecisionToReferOn",
"ReferredOn",
"BreechOn",
"DecisionToAdmitOn",
"PreAssessment",
"ToComeIn",
"Seq",
"Type",
"Occupancy",
"PatientId",
"PatientNo",
"NhsNumber",
"Title",
"Surname",
"Forename",
"Gender",
"BirthOn",
"Age",
"AgeOn",
"PhoneMobile",
"Email",
"ContactFlags",
"SystemRef",
"AttendanceType",
"AttendanceStatus",
"FacilityIdWard",
"Ward",
"SpecialityCode",
"ProcedureId",
"ProcedureCode",
"ProcedureDesc",
"ComplexityCode",
"ProcedureIndication",
"PatientHistory",
"GestationPeriod",
"DurationExp",
"DurationAct",
"UnitsExp",
"UnitsAct",
"Anaesthetic",
"Position",
"SpecialEquipment",
"ComfortScore",
"TimeCalled",
"TimeArrived",
"TimeAnaesStart",
"TimeProcStart",
"TimeProcEnd",
"TimeInRecovery",
"TimeInformDest",
"TimeLeave",
"CancelType",
"CancelDate",
"CancelCount",
"CancelCode",
"CancelReason",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
"DecisionToRefer",
"Referred",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmAdmission_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmAdmission";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _FacilityId { get { return Cols._FacilityId.Value; } set { Cols._FacilityId.Value = value; } }
public Int32 _FacilityTemplateId { get { return Cols._FacilityTemplateId.Value; } set { Cols._FacilityTemplateId.Value = value; } }
public DateTime _AdmissionFrom { get { return Cols._AdmissionFrom.Value; } set { Cols._AdmissionFrom.Value = value; } }
public DateTime _AdmissionTo { get { return Cols._AdmissionTo.Value; } set { Cols._AdmissionTo.Value = value; } }
public DateTime _DecisionToReferOn { get { return Cols._DecisionToReferOn.Value; } set { Cols._DecisionToReferOn.Value = value; } }
public DateTime _ReferredOn { get { return Cols._ReferredOn.Value; } set { Cols._ReferredOn.Value = value; } }
public DateTime _BreechOn { get { return Cols._BreechOn.Value; } set { Cols._BreechOn.Value = value; } }
public DateTime _DecisionToAdmitOn { get { return Cols._DecisionToAdmitOn.Value; } set { Cols._DecisionToAdmitOn.Value = value; } }
public DateTime _PreAssessment { get { return Cols._PreAssessment.Value; } set { Cols._PreAssessment.Value = value; } }
public DateTime _ToComeIn { get { return Cols._ToComeIn.Value; } set { Cols._ToComeIn.Value = value; } }
public Byte _Seq { get { return Cols._Seq.Value; } set { Cols._Seq.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public Int16 _Occupancy { get { return Cols._Occupancy.Value; } set { Cols._Occupancy.Value = value; } }
public Int32 _PatientId { get { return Cols._PatientId.Value; } set { Cols._PatientId.Value = value; } }
public String _PatientNo { get { return Cols._PatientNo.Value; } set { Cols._PatientNo.Value = value; } }
public String _NhsNumber { get { return Cols._NhsNumber.Value; } set { Cols._NhsNumber.Value = value; } }
public String _Title { get { return Cols._Title.Value; } set { Cols._Title.Value = value; } }
public String _Surname { get { return Cols._Surname.Value; } set { Cols._Surname.Value = value; } }
public String _Forename { get { return Cols._Forename.Value; } set { Cols._Forename.Value = value; } }
public Int16 _Gender { get { return Cols._Gender.Value; } set { Cols._Gender.Value = value; } }
public Int32 _BirthOn { get { return Cols._BirthOn.Value; } set { Cols._BirthOn.Value = value; } }
public String _Age { get { return Cols._Age.Value; } set { Cols._Age.Value = value; } }
public DateTime _AgeOn { get { return Cols._AgeOn.Value; } set { Cols._AgeOn.Value = value; } }
public String _PhoneMobile { get { return Cols._PhoneMobile.Value; } set { Cols._PhoneMobile.Value = value; } }
public String _Email { get { return Cols._Email.Value; } set { Cols._Email.Value = value; } }
public Int16 _ContactFlags { get { return Cols._ContactFlags.Value; } set { Cols._ContactFlags.Value = value; } }
public String _SystemRef { get { return Cols._SystemRef.Value; } set { Cols._SystemRef.Value = value; } }
public Int16 _AttendanceType { get { return Cols._AttendanceType.Value; } set { Cols._AttendanceType.Value = value; } }
public String _AttendanceStatus { get { return Cols._AttendanceStatus.Value; } set { Cols._AttendanceStatus.Value = value; } }
public Int32 _FacilityIdWard { get { return Cols._FacilityIdWard.Value; } set { Cols._FacilityIdWard.Value = value; } }
public String _Ward { get { return Cols._Ward.Value; } set { Cols._Ward.Value = value; } }
public String _SpecialityCode { get { return Cols._SpecialityCode.Value; } set { Cols._SpecialityCode.Value = value; } }
public Int32 _ProcedureId { get { return Cols._ProcedureId.Value; } set { Cols._ProcedureId.Value = value; } }
public String _ProcedureCode { get { return Cols._ProcedureCode.Value; } set { Cols._ProcedureCode.Value = value; } }
public String _ProcedureDesc { get { return Cols._ProcedureDesc.Value; } set { Cols._ProcedureDesc.Value = value; } }
public String _ComplexityCode { get { return Cols._ComplexityCode.Value; } set { Cols._ComplexityCode.Value = value; } }
public String _ProcedureIndication { get { return Cols._ProcedureIndication.Value; } set { Cols._ProcedureIndication.Value = value; } }
public String _PatientHistory { get { return Cols._PatientHistory.Value; } set { Cols._PatientHistory.Value = value; } }
public String _GestationPeriod { get { return Cols._GestationPeriod.Value; } set { Cols._GestationPeriod.Value = value; } }
public Int16 _DurationExp { get { return Cols._DurationExp.Value; } set { Cols._DurationExp.Value = value; } }
public Int16 _DurationAct { get { return Cols._DurationAct.Value; } set { Cols._DurationAct.Value = value; } }
public Single _UnitsExp { get { return Cols._UnitsExp.Value; } set { Cols._UnitsExp.Value = value; } }
public Single _UnitsAct { get { return Cols._UnitsAct.Value; } set { Cols._UnitsAct.Value = value; } }
public String _Anaesthetic { get { return Cols._Anaesthetic.Value; } set { Cols._Anaesthetic.Value = value; } }
public String _Position { get { return Cols._Position.Value; } set { Cols._Position.Value = value; } }
public String _SpecialEquipment { get { return Cols._SpecialEquipment.Value; } set { Cols._SpecialEquipment.Value = value; } }
public String _ComfortScore { get { return Cols._ComfortScore.Value; } set { Cols._ComfortScore.Value = value; } }
public DateTime _TimeCalled { get { return Cols._TimeCalled.Value; } set { Cols._TimeCalled.Value = value; } }
public DateTime _TimeArrived { get { return Cols._TimeArrived.Value; } set { Cols._TimeArrived.Value = value; } }
public DateTime _TimeAnaesStart { get { return Cols._TimeAnaesStart.Value; } set { Cols._TimeAnaesStart.Value = value; } }
public DateTime _TimeProcStart { get { return Cols._TimeProcStart.Value; } set { Cols._TimeProcStart.Value = value; } }
public DateTime _TimeProcEnd { get { return Cols._TimeProcEnd.Value; } set { Cols._TimeProcEnd.Value = value; } }
public DateTime _TimeInRecovery { get { return Cols._TimeInRecovery.Value; } set { Cols._TimeInRecovery.Value = value; } }
public DateTime _TimeInformDest { get { return Cols._TimeInformDest.Value; } set { Cols._TimeInformDest.Value = value; } }
public DateTime _TimeLeave { get { return Cols._TimeLeave.Value; } set { Cols._TimeLeave.Value = value; } }
public Int16 _CancelType { get { return Cols._CancelType.Value; } set { Cols._CancelType.Value = value; } }
public DateTime _CancelDate { get { return Cols._CancelDate.Value; } set { Cols._CancelDate.Value = value; } }
public Int16 _CancelCount { get { return Cols._CancelCount.Value; } set { Cols._CancelCount.Value = value; } }
public String _CancelCode { get { return Cols._CancelCode.Value; } set { Cols._CancelCode.Value = value; } }
public String _CancelReason { get { return Cols._CancelReason.Value; } set { Cols._CancelReason.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
public DateTime _DecisionToRefer { get { return Cols._DecisionToRefer.Value; } set { Cols._DecisionToRefer.Value = value; } }
public DateTime _Referred { get { return Cols._Referred.Value; } set { Cols._Referred.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_FacilityId = GetFieldInt32(dbDataReader, "FacilityId", _FacilityId);
_FacilityTemplateId = GetFieldInt32(dbDataReader, "FacilityTemplateId", _FacilityTemplateId);
_AdmissionFrom = GetFieldDateTime(dbDataReader, "AdmissionFrom", _AdmissionFrom);
_AdmissionTo = GetFieldDateTime(dbDataReader, "AdmissionTo", _AdmissionTo);
_DecisionToReferOn = GetFieldDateTime(dbDataReader, "DecisionToReferOn", _DecisionToReferOn);
_ReferredOn = GetFieldDateTime(dbDataReader, "ReferredOn", _ReferredOn);
_BreechOn = GetFieldDateTime(dbDataReader, "BreechOn", _BreechOn);
_DecisionToAdmitOn = GetFieldDateTime(dbDataReader, "DecisionToAdmitOn", _DecisionToAdmitOn);
_PreAssessment = GetFieldDateTime(dbDataReader, "PreAssessment", _PreAssessment);
_ToComeIn = GetFieldDateTime(dbDataReader, "ToComeIn", _ToComeIn);
_Seq = GetFieldByte(dbDataReader, "Seq", _Seq);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Occupancy = GetFieldInt16(dbDataReader, "Occupancy", _Occupancy);
_PatientId = GetFieldInt32(dbDataReader, "PatientId", _PatientId);
_PatientNo = GetFieldString(dbDataReader, "PatientNo", _PatientNo);
_NhsNumber = GetFieldString(dbDataReader, "NhsNumber", _NhsNumber);
_Title = GetFieldString(dbDataReader, "Title", _Title);
_Surname = GetFieldString(dbDataReader, "Surname", _Surname);
_Forename = GetFieldString(dbDataReader, "Forename", _Forename);
_Gender = GetFieldInt16(dbDataReader, "Gender", _Gender);
_BirthOn = GetFieldInt32(dbDataReader, "BirthOn", _BirthOn);
_Age = GetFieldString(dbDataReader, "Age", _Age);
_AgeOn = GetFieldDateTime(dbDataReader, "AgeOn", _AgeOn);
_PhoneMobile = GetFieldString(dbDataReader, "PhoneMobile", _PhoneMobile);
_Email = GetFieldString(dbDataReader, "Email", _Email);
_ContactFlags = GetFieldInt16(dbDataReader, "ContactFlags", _ContactFlags);
_SystemRef = GetFieldString(dbDataReader, "SystemRef", _SystemRef);
_AttendanceType = GetFieldInt16(dbDataReader, "AttendanceType", _AttendanceType);
_AttendanceStatus = GetFieldString(dbDataReader, "AttendanceStatus", _AttendanceStatus);
_FacilityIdWard = GetFieldInt32(dbDataReader, "FacilityIdWard", _FacilityIdWard);
_Ward = GetFieldString(dbDataReader, "Ward", _Ward);
_SpecialityCode = GetFieldString(dbDataReader, "SpecialityCode", _SpecialityCode);
_ProcedureId = GetFieldInt32(dbDataReader, "ProcedureId", _ProcedureId);
_ProcedureCode = GetFieldString(dbDataReader, "ProcedureCode", _ProcedureCode);
_ProcedureDesc = GetFieldString(dbDataReader, "ProcedureDesc", _ProcedureDesc);
_ComplexityCode = GetFieldString(dbDataReader, "ComplexityCode", _ComplexityCode);
_ProcedureIndication = GetFieldString(dbDataReader, "ProcedureIndication", _ProcedureIndication);
_PatientHistory = GetFieldString(dbDataReader, "PatientHistory", _PatientHistory);
_GestationPeriod = GetFieldString(dbDataReader, "GestationPeriod", _GestationPeriod);
_DurationExp = GetFieldInt16(dbDataReader, "DurationExp", _DurationExp);
_DurationAct = GetFieldInt16(dbDataReader, "DurationAct", _DurationAct);
_UnitsExp = GetFieldSingle(dbDataReader, "UnitsExp", _UnitsExp);
_UnitsAct = GetFieldSingle(dbDataReader, "UnitsAct", _UnitsAct);
_Anaesthetic = GetFieldString(dbDataReader, "Anaesthetic", _Anaesthetic);
_Position = GetFieldString(dbDataReader, "Position", _Position);
_SpecialEquipment = GetFieldString(dbDataReader, "SpecialEquipment", _SpecialEquipment);
_ComfortScore = GetFieldString(dbDataReader, "ComfortScore", _ComfortScore);
_TimeCalled = GetFieldDateTime(dbDataReader, "TimeCalled", _TimeCalled);
_TimeArrived = GetFieldDateTime(dbDataReader, "TimeArrived", _TimeArrived);
_TimeAnaesStart = GetFieldDateTime(dbDataReader, "TimeAnaesStart", _TimeAnaesStart);
_TimeProcStart = GetFieldDateTime(dbDataReader, "TimeProcStart", _TimeProcStart);
_TimeProcEnd = GetFieldDateTime(dbDataReader, "TimeProcEnd", _TimeProcEnd);
_TimeInRecovery = GetFieldDateTime(dbDataReader, "TimeInRecovery", _TimeInRecovery);
_TimeInformDest = GetFieldDateTime(dbDataReader, "TimeInformDest", _TimeInformDest);
_TimeLeave = GetFieldDateTime(dbDataReader, "TimeLeave", _TimeLeave);
_CancelType = GetFieldInt16(dbDataReader, "CancelType", _CancelType);
_CancelDate = GetFieldDateTime(dbDataReader, "CancelDate", _CancelDate);
_CancelCount = GetFieldInt16(dbDataReader, "CancelCount", _CancelCount);
_CancelCode = GetFieldString(dbDataReader, "CancelCode", _CancelCode);
_CancelReason = GetFieldString(dbDataReader, "CancelReason", _CancelReason);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
_DecisionToRefer = GetFieldDateTime(dbDataReader, "DecisionToRefer", _DecisionToRefer);
_Referred = GetFieldDateTime(dbDataReader, "Referred", _Referred);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
if (columnNames.ContainsCI("FacilityTemplateId")) AddCommandParameter(dbCommand, "@FacilityTemplateId", _FacilityTemplateId);
if (columnNames.ContainsCI("AdmissionFrom")) AddCommandParameter(dbCommand, "@AdmissionFrom", _AdmissionFrom);
if (columnNames.ContainsCI("AdmissionTo")) AddCommandParameter(dbCommand, "@AdmissionTo", _AdmissionTo);
if (columnNames.ContainsCI("DecisionToReferOn")) AddCommandParameter(dbCommand, "@DecisionToReferOn", _DecisionToReferOn);
if (columnNames.ContainsCI("ReferredOn")) AddCommandParameter(dbCommand, "@ReferredOn", _ReferredOn);
if (columnNames.ContainsCI("BreechOn")) AddCommandParameter(dbCommand, "@BreechOn", _BreechOn);
if (columnNames.ContainsCI("DecisionToAdmitOn")) AddCommandParameter(dbCommand, "@DecisionToAdmitOn", _DecisionToAdmitOn);
if (columnNames.ContainsCI("PreAssessment")) AddCommandParameter(dbCommand, "@PreAssessment", _PreAssessment);
if (columnNames.ContainsCI("ToComeIn")) AddCommandParameter(dbCommand, "@ToComeIn", _ToComeIn);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Occupancy")) AddCommandParameter(dbCommand, "@Occupancy", _Occupancy);
if (columnNames.ContainsCI("PatientId")) AddCommandParameter(dbCommand, "@PatientId", _PatientId);
if (columnNames.ContainsCI("PatientNo")) AddCommandParameter(dbCommand, "@PatientNo", _PatientNo);
if (columnNames.ContainsCI("NhsNumber")) AddCommandParameter(dbCommand, "@NhsNumber", _NhsNumber);
if (columnNames.ContainsCI("Title")) AddCommandParameter(dbCommand, "@Title", _Title);
if (columnNames.ContainsCI("Surname")) AddCommandParameter(dbCommand, "@Surname", _Surname);
if (columnNames.ContainsCI("Forename")) AddCommandParameter(dbCommand, "@Forename", _Forename);
if (columnNames.ContainsCI("Gender")) AddCommandParameter(dbCommand, "@Gender", _Gender);
if (columnNames.ContainsCI("BirthOn")) AddCommandParameter(dbCommand, "@BirthOn", _BirthOn);
if (columnNames.ContainsCI("Age")) AddCommandParameter(dbCommand, "@Age", _Age);
if (columnNames.ContainsCI("AgeOn")) AddCommandParameter(dbCommand, "@AgeOn", _AgeOn);
if (columnNames.ContainsCI("PhoneMobile")) AddCommandParameter(dbCommand, "@PhoneMobile", _PhoneMobile);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("ContactFlags")) AddCommandParameter(dbCommand, "@ContactFlags", _ContactFlags);
if (columnNames.ContainsCI("SystemRef")) AddCommandParameter(dbCommand, "@SystemRef", _SystemRef);
if (columnNames.ContainsCI("AttendanceType")) AddCommandParameter(dbCommand, "@AttendanceType", _AttendanceType);
if (columnNames.ContainsCI("AttendanceStatus")) AddCommandParameter(dbCommand, "@AttendanceStatus", _AttendanceStatus);
if (columnNames.ContainsCI("FacilityIdWard")) AddCommandParameter(dbCommand, "@FacilityIdWard", _FacilityIdWard);
if (columnNames.ContainsCI("Ward")) AddCommandParameter(dbCommand, "@Ward", _Ward);
if (columnNames.ContainsCI("SpecialityCode")) AddCommandParameter(dbCommand, "@SpecialityCode", _SpecialityCode);
if (columnNames.ContainsCI("ProcedureId")) AddCommandParameter(dbCommand, "@ProcedureId", _ProcedureId);
if (columnNames.ContainsCI("ProcedureCode")) AddCommandParameter(dbCommand, "@ProcedureCode", _ProcedureCode);
if (columnNames.ContainsCI("ProcedureDesc")) AddCommandParameter(dbCommand, "@ProcedureDesc", _ProcedureDesc);
if (columnNames.ContainsCI("ComplexityCode")) AddCommandParameter(dbCommand, "@ComplexityCode", _ComplexityCode);
if (columnNames.ContainsCI("ProcedureIndication")) AddCommandParameter(dbCommand, "@ProcedureIndication", _ProcedureIndication);
if (columnNames.ContainsCI("PatientHistory")) AddCommandParameter(dbCommand, "@PatientHistory", _PatientHistory);
if (columnNames.ContainsCI("GestationPeriod")) AddCommandParameter(dbCommand, "@GestationPeriod", _GestationPeriod);
if (columnNames.ContainsCI("DurationExp")) AddCommandParameter(dbCommand, "@DurationExp", _DurationExp);
if (columnNames.ContainsCI("DurationAct")) AddCommandParameter(dbCommand, "@DurationAct", _DurationAct);
if (columnNames.ContainsCI("UnitsExp")) AddCommandParameter(dbCommand, "@UnitsExp", _UnitsExp);
if (columnNames.ContainsCI("UnitsAct")) AddCommandParameter(dbCommand, "@UnitsAct", _UnitsAct);
if (columnNames.ContainsCI("Anaesthetic")) AddCommandParameter(dbCommand, "@Anaesthetic", _Anaesthetic);
if (columnNames.ContainsCI("Position")) AddCommandParameter(dbCommand, "@Position", _Position);
if (columnNames.ContainsCI("SpecialEquipment")) AddCommandParameter(dbCommand, "@SpecialEquipment", _SpecialEquipment);
if (columnNames.ContainsCI("ComfortScore")) AddCommandParameter(dbCommand, "@ComfortScore", _ComfortScore);
if (columnNames.ContainsCI("TimeCalled")) AddCommandParameter(dbCommand, "@TimeCalled", _TimeCalled);
if (columnNames.ContainsCI("TimeArrived")) AddCommandParameter(dbCommand, "@TimeArrived", _TimeArrived);
if (columnNames.ContainsCI("TimeAnaesStart")) AddCommandParameter(dbCommand, "@TimeAnaesStart", _TimeAnaesStart);
if (columnNames.ContainsCI("TimeProcStart")) AddCommandParameter(dbCommand, "@TimeProcStart", _TimeProcStart);
if (columnNames.ContainsCI("TimeProcEnd")) AddCommandParameter(dbCommand, "@TimeProcEnd", _TimeProcEnd);
if (columnNames.ContainsCI("TimeInRecovery")) AddCommandParameter(dbCommand, "@TimeInRecovery", _TimeInRecovery);
if (columnNames.ContainsCI("TimeInformDest")) AddCommandParameter(dbCommand, "@TimeInformDest", _TimeInformDest);
if (columnNames.ContainsCI("TimeLeave")) AddCommandParameter(dbCommand, "@TimeLeave", _TimeLeave);
if (columnNames.ContainsCI("CancelType")) AddCommandParameter(dbCommand, "@CancelType", _CancelType);
if (columnNames.ContainsCI("CancelDate")) AddCommandParameter(dbCommand, "@CancelDate", _CancelDate);
if (columnNames.ContainsCI("CancelCount")) AddCommandParameter(dbCommand, "@CancelCount", _CancelCount);
if (columnNames.ContainsCI("CancelCode")) AddCommandParameter(dbCommand, "@CancelCode", _CancelCode);
if (columnNames.ContainsCI("CancelReason")) AddCommandParameter(dbCommand, "@CancelReason", _CancelReason);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
if (columnNames.ContainsCI("DecisionToRefer")) AddCommandParameter(dbCommand, "@DecisionToRefer", _DecisionToRefer);
if (columnNames.ContainsCI("Referred")) AddCommandParameter(dbCommand, "@Referred", _Referred);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
if (columnNames.ContainsCI("FacilityTemplateId")) AddCommandParameter(dbCommand, "@FacilityTemplateId", _FacilityTemplateId);
if (columnNames.ContainsCI("AdmissionFrom")) AddCommandParameter(dbCommand, "@AdmissionFrom", _AdmissionFrom);
if (columnNames.ContainsCI("AdmissionTo")) AddCommandParameter(dbCommand, "@AdmissionTo", _AdmissionTo);
if (columnNames.ContainsCI("DecisionToReferOn")) AddCommandParameter(dbCommand, "@DecisionToReferOn", _DecisionToReferOn);
if (columnNames.ContainsCI("ReferredOn")) AddCommandParameter(dbCommand, "@ReferredOn", _ReferredOn);
if (columnNames.ContainsCI("BreechOn")) AddCommandParameter(dbCommand, "@BreechOn", _BreechOn);
if (columnNames.ContainsCI("DecisionToAdmitOn")) AddCommandParameter(dbCommand, "@DecisionToAdmitOn", _DecisionToAdmitOn);
if (columnNames.ContainsCI("PreAssessment")) AddCommandParameter(dbCommand, "@PreAssessment", _PreAssessment);
if (columnNames.ContainsCI("ToComeIn")) AddCommandParameter(dbCommand, "@ToComeIn", _ToComeIn);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Occupancy")) AddCommandParameter(dbCommand, "@Occupancy", _Occupancy);
if (columnNames.ContainsCI("PatientId")) AddCommandParameter(dbCommand, "@PatientId", _PatientId);
if (columnNames.ContainsCI("PatientNo")) AddCommandParameter(dbCommand, "@PatientNo", _PatientNo);
if (columnNames.ContainsCI("NhsNumber")) AddCommandParameter(dbCommand, "@NhsNumber", _NhsNumber);
if (columnNames.ContainsCI("Title")) AddCommandParameter(dbCommand, "@Title", _Title);
if (columnNames.ContainsCI("Surname")) AddCommandParameter(dbCommand, "@Surname", _Surname);
if (columnNames.ContainsCI("Forename")) AddCommandParameter(dbCommand, "@Forename", _Forename);
if (columnNames.ContainsCI("Gender")) AddCommandParameter(dbCommand, "@Gender", _Gender);
if (columnNames.ContainsCI("BirthOn")) AddCommandParameter(dbCommand, "@BirthOn", _BirthOn);
if (columnNames.ContainsCI("Age")) AddCommandParameter(dbCommand, "@Age", _Age);
if (columnNames.ContainsCI("AgeOn")) AddCommandParameter(dbCommand, "@AgeOn", _AgeOn);
if (columnNames.ContainsCI("PhoneMobile")) AddCommandParameter(dbCommand, "@PhoneMobile", _PhoneMobile);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("ContactFlags")) AddCommandParameter(dbCommand, "@ContactFlags", _ContactFlags);
if (columnNames.ContainsCI("SystemRef")) AddCommandParameter(dbCommand, "@SystemRef", _SystemRef);
if (columnNames.ContainsCI("AttendanceType")) AddCommandParameter(dbCommand, "@AttendanceType", _AttendanceType);
if (columnNames.ContainsCI("AttendanceStatus")) AddCommandParameter(dbCommand, "@AttendanceStatus", _AttendanceStatus);
if (columnNames.ContainsCI("FacilityIdWard")) AddCommandParameter(dbCommand, "@FacilityIdWard", _FacilityIdWard);
if (columnNames.ContainsCI("Ward")) AddCommandParameter(dbCommand, "@Ward", _Ward);
if (columnNames.ContainsCI("SpecialityCode")) AddCommandParameter(dbCommand, "@SpecialityCode", _SpecialityCode);
if (columnNames.ContainsCI("ProcedureId")) AddCommandParameter(dbCommand, "@ProcedureId", _ProcedureId);
if (columnNames.ContainsCI("ProcedureCode")) AddCommandParameter(dbCommand, "@ProcedureCode", _ProcedureCode);
if (columnNames.ContainsCI("ProcedureDesc")) AddCommandParameter(dbCommand, "@ProcedureDesc", _ProcedureDesc);
if (columnNames.ContainsCI("ComplexityCode")) AddCommandParameter(dbCommand, "@ComplexityCode", _ComplexityCode);
if (columnNames.ContainsCI("ProcedureIndication")) AddCommandParameter(dbCommand, "@ProcedureIndication", _ProcedureIndication);
if (columnNames.ContainsCI("PatientHistory")) AddCommandParameter(dbCommand, "@PatientHistory", _PatientHistory);
if (columnNames.ContainsCI("GestationPeriod")) AddCommandParameter(dbCommand, "@GestationPeriod", _GestationPeriod);
if (columnNames.ContainsCI("DurationExp")) AddCommandParameter(dbCommand, "@DurationExp", _DurationExp);
if (columnNames.ContainsCI("DurationAct")) AddCommandParameter(dbCommand, "@DurationAct", _DurationAct);
if (columnNames.ContainsCI("UnitsExp")) AddCommandParameter(dbCommand, "@UnitsExp", _UnitsExp);
if (columnNames.ContainsCI("UnitsAct")) AddCommandParameter(dbCommand, "@UnitsAct", _UnitsAct);
if (columnNames.ContainsCI("Anaesthetic")) AddCommandParameter(dbCommand, "@Anaesthetic", _Anaesthetic);
if (columnNames.ContainsCI("Position")) AddCommandParameter(dbCommand, "@Position", _Position);
if (columnNames.ContainsCI("SpecialEquipment")) AddCommandParameter(dbCommand, "@SpecialEquipment", _SpecialEquipment);
if (columnNames.ContainsCI("ComfortScore")) AddCommandParameter(dbCommand, "@ComfortScore", _ComfortScore);
if (columnNames.ContainsCI("TimeCalled")) AddCommandParameter(dbCommand, "@TimeCalled", _TimeCalled);
if (columnNames.ContainsCI("TimeArrived")) AddCommandParameter(dbCommand, "@TimeArrived", _TimeArrived);
if (columnNames.ContainsCI("TimeAnaesStart")) AddCommandParameter(dbCommand, "@TimeAnaesStart", _TimeAnaesStart);
if (columnNames.ContainsCI("TimeProcStart")) AddCommandParameter(dbCommand, "@TimeProcStart", _TimeProcStart);
if (columnNames.ContainsCI("TimeProcEnd")) AddCommandParameter(dbCommand, "@TimeProcEnd", _TimeProcEnd);
if (columnNames.ContainsCI("TimeInRecovery")) AddCommandParameter(dbCommand, "@TimeInRecovery", _TimeInRecovery);
if (columnNames.ContainsCI("TimeInformDest")) AddCommandParameter(dbCommand, "@TimeInformDest", _TimeInformDest);
if (columnNames.ContainsCI("TimeLeave")) AddCommandParameter(dbCommand, "@TimeLeave", _TimeLeave);
if (columnNames.ContainsCI("CancelType")) AddCommandParameter(dbCommand, "@CancelType", _CancelType);
if (columnNames.ContainsCI("CancelDate")) AddCommandParameter(dbCommand, "@CancelDate", _CancelDate);
if (columnNames.ContainsCI("CancelCount")) AddCommandParameter(dbCommand, "@CancelCount", _CancelCount);
if (columnNames.ContainsCI("CancelCode")) AddCommandParameter(dbCommand, "@CancelCode", _CancelCode);
if (columnNames.ContainsCI("CancelReason")) AddCommandParameter(dbCommand, "@CancelReason", _CancelReason);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
if (columnNames.ContainsCI("DecisionToRefer")) AddCommandParameter(dbCommand, "@DecisionToRefer", _DecisionToRefer);
if (columnNames.ContainsCI("Referred")) AddCommandParameter(dbCommand, "@Referred", _Referred);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,213 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmDepartmentCode_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _DepartmentId { get; } = new ColumnDataInt32("DepartmentId");
public ColumnDataInt16 _CodeType { get; } = new ColumnDataInt16("CodeType");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _Description { get; } = new ColumnDataString("Description");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"DepartmentId",
"CodeType",
"Code",
"Description",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmDepartmentCode_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmDepartmentCode";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _DepartmentId { get { return Cols._DepartmentId.Value; } set { Cols._DepartmentId.Value = value; } }
public Int16 _CodeType { get { return Cols._CodeType.Value; } set { Cols._CodeType.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _Description { get { return Cols._Description.Value; } set { Cols._Description.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_DepartmentId = GetFieldInt32(dbDataReader, "DepartmentId", _DepartmentId);
_CodeType = GetFieldInt16(dbDataReader, "CodeType", _CodeType);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_Description = GetFieldString(dbDataReader, "Description", _Description);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("DepartmentId")) AddCommandParameter(dbCommand, "@DepartmentId", _DepartmentId);
if (columnNames.ContainsCI("CodeType")) AddCommandParameter(dbCommand, "@CodeType", _CodeType);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("DepartmentId")) AddCommandParameter(dbCommand, "@DepartmentId", _DepartmentId);
if (columnNames.ContainsCI("CodeType")) AddCommandParameter(dbCommand, "@CodeType", _CodeType);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,231 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmDepartment_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _InstitutionId { get; } = new ColumnDataInt32("InstitutionId");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataInt32 _FacilityTypes { get; } = new ColumnDataInt32("FacilityTypes");
public ColumnDataInt32 _AllowAnyFacility { get; } = new ColumnDataInt32("AllowAnyFacility");
public ColumnDataString _CancellReBookLimit { get; } = new ColumnDataString("CancellReBookLimit");
public ColumnDataDateTime _ApplicFrom { get; } = new ColumnDataDateTime("ApplicFrom");
public ColumnDataDateTime _ApplicTo { get; } = new ColumnDataDateTime("ApplicTo");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"InstitutionId",
"Name",
"FacilityTypes",
"AllowAnyFacility",
"CancellReBookLimit",
"ApplicFrom",
"ApplicTo",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmDepartment_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmDepartment";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _InstitutionId { get { return Cols._InstitutionId.Value; } set { Cols._InstitutionId.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public Int32 _FacilityTypes { get { return Cols._FacilityTypes.Value; } set { Cols._FacilityTypes.Value = value; } }
public Int32 _AllowAnyFacility { get { return Cols._AllowAnyFacility.Value; } set { Cols._AllowAnyFacility.Value = value; } }
public String _CancellReBookLimit { get { return Cols._CancellReBookLimit.Value; } set { Cols._CancellReBookLimit.Value = value; } }
public DateTime _ApplicFrom { get { return Cols._ApplicFrom.Value; } set { Cols._ApplicFrom.Value = value; } }
public DateTime _ApplicTo { get { return Cols._ApplicTo.Value; } set { Cols._ApplicTo.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_InstitutionId = GetFieldInt32(dbDataReader, "InstitutionId", _InstitutionId);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_FacilityTypes = GetFieldInt32(dbDataReader, "FacilityTypes", _FacilityTypes);
_AllowAnyFacility = GetFieldInt32(dbDataReader, "AllowAnyFacility", _AllowAnyFacility);
_CancellReBookLimit = GetFieldString(dbDataReader, "CancellReBookLimit", _CancellReBookLimit);
_ApplicFrom = GetFieldDateTime(dbDataReader, "ApplicFrom", _ApplicFrom);
_ApplicTo = GetFieldDateTime(dbDataReader, "ApplicTo", _ApplicTo);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("InstitutionId")) AddCommandParameter(dbCommand, "@InstitutionId", _InstitutionId);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("FacilityTypes")) AddCommandParameter(dbCommand, "@FacilityTypes", _FacilityTypes);
if (columnNames.ContainsCI("AllowAnyFacility")) AddCommandParameter(dbCommand, "@AllowAnyFacility", _AllowAnyFacility);
if (columnNames.ContainsCI("CancellReBookLimit")) AddCommandParameter(dbCommand, "@CancellReBookLimit", _CancellReBookLimit);
if (columnNames.ContainsCI("ApplicFrom")) AddCommandParameter(dbCommand, "@ApplicFrom", _ApplicFrom);
if (columnNames.ContainsCI("ApplicTo")) AddCommandParameter(dbCommand, "@ApplicTo", _ApplicTo);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("InstitutionId")) AddCommandParameter(dbCommand, "@InstitutionId", _InstitutionId);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("FacilityTypes")) AddCommandParameter(dbCommand, "@FacilityTypes", _FacilityTypes);
if (columnNames.ContainsCI("AllowAnyFacility")) AddCommandParameter(dbCommand, "@AllowAnyFacility", _AllowAnyFacility);
if (columnNames.ContainsCI("CancellReBookLimit")) AddCommandParameter(dbCommand, "@CancellReBookLimit", _CancellReBookLimit);
if (columnNames.ContainsCI("ApplicFrom")) AddCommandParameter(dbCommand, "@ApplicFrom", _ApplicFrom);
if (columnNames.ContainsCI("ApplicTo")) AddCommandParameter(dbCommand, "@ApplicTo", _ApplicTo);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,219 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmEmployeeRole_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _DepartmentId { get; } = new ColumnDataInt32("DepartmentId");
public ColumnDataInt32 _EmployeeId { get; } = new ColumnDataInt32("EmployeeId");
public ColumnDataInt16 _Role { get; } = new ColumnDataInt16("Role");
public ColumnDataDateTime _ApplicFrom { get; } = new ColumnDataDateTime("ApplicFrom");
public ColumnDataDateTime _ApplicTo { get; } = new ColumnDataDateTime("ApplicTo");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"DepartmentId",
"EmployeeId",
"Role",
"ApplicFrom",
"ApplicTo",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmEmployeeRole_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmEmployeeRole";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _DepartmentId { get { return Cols._DepartmentId.Value; } set { Cols._DepartmentId.Value = value; } }
public Int32 _EmployeeId { get { return Cols._EmployeeId.Value; } set { Cols._EmployeeId.Value = value; } }
public Int16 _Role { get { return Cols._Role.Value; } set { Cols._Role.Value = value; } }
public DateTime _ApplicFrom { get { return Cols._ApplicFrom.Value; } set { Cols._ApplicFrom.Value = value; } }
public DateTime _ApplicTo { get { return Cols._ApplicTo.Value; } set { Cols._ApplicTo.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_DepartmentId = GetFieldInt32(dbDataReader, "DepartmentId", _DepartmentId);
_EmployeeId = GetFieldInt32(dbDataReader, "EmployeeId", _EmployeeId);
_Role = GetFieldInt16(dbDataReader, "Role", _Role);
_ApplicFrom = GetFieldDateTime(dbDataReader, "ApplicFrom", _ApplicFrom);
_ApplicTo = GetFieldDateTime(dbDataReader, "ApplicTo", _ApplicTo);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("DepartmentId")) AddCommandParameter(dbCommand, "@DepartmentId", _DepartmentId);
if (columnNames.ContainsCI("EmployeeId")) AddCommandParameter(dbCommand, "@EmployeeId", _EmployeeId);
if (columnNames.ContainsCI("Role")) AddCommandParameter(dbCommand, "@Role", _Role);
if (columnNames.ContainsCI("ApplicFrom")) AddCommandParameter(dbCommand, "@ApplicFrom", _ApplicFrom);
if (columnNames.ContainsCI("ApplicTo")) AddCommandParameter(dbCommand, "@ApplicTo", _ApplicTo);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("DepartmentId")) AddCommandParameter(dbCommand, "@DepartmentId", _DepartmentId);
if (columnNames.ContainsCI("EmployeeId")) AddCommandParameter(dbCommand, "@EmployeeId", _EmployeeId);
if (columnNames.ContainsCI("Role")) AddCommandParameter(dbCommand, "@Role", _Role);
if (columnNames.ContainsCI("ApplicFrom")) AddCommandParameter(dbCommand, "@ApplicFrom", _ApplicFrom);
if (columnNames.ContainsCI("ApplicTo")) AddCommandParameter(dbCommand, "@ApplicTo", _ApplicTo);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,231 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmEmployee_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _InstitutionId { get; } = new ColumnDataInt32("InstitutionId");
public ColumnDataString _EmployeeNo { get; } = new ColumnDataString("EmployeeNo");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _Initials { get; } = new ColumnDataString("Initials");
public ColumnDataString _Title { get; } = new ColumnDataString("Title");
public ColumnDataString _Surname { get; } = new ColumnDataString("Surname");
public ColumnDataString _Forename { get; } = new ColumnDataString("Forename");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"InstitutionId",
"EmployeeNo",
"Code",
"Initials",
"Title",
"Surname",
"Forename",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmEmployee_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmEmployee";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _InstitutionId { get { return Cols._InstitutionId.Value; } set { Cols._InstitutionId.Value = value; } }
public String _EmployeeNo { get { return Cols._EmployeeNo.Value; } set { Cols._EmployeeNo.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _Initials { get { return Cols._Initials.Value; } set { Cols._Initials.Value = value; } }
public String _Title { get { return Cols._Title.Value; } set { Cols._Title.Value = value; } }
public String _Surname { get { return Cols._Surname.Value; } set { Cols._Surname.Value = value; } }
public String _Forename { get { return Cols._Forename.Value; } set { Cols._Forename.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_InstitutionId = GetFieldInt32(dbDataReader, "InstitutionId", _InstitutionId);
_EmployeeNo = GetFieldString(dbDataReader, "EmployeeNo", _EmployeeNo);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_Initials = GetFieldString(dbDataReader, "Initials", _Initials);
_Title = GetFieldString(dbDataReader, "Title", _Title);
_Surname = GetFieldString(dbDataReader, "Surname", _Surname);
_Forename = GetFieldString(dbDataReader, "Forename", _Forename);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("InstitutionId")) AddCommandParameter(dbCommand, "@InstitutionId", _InstitutionId);
if (columnNames.ContainsCI("EmployeeNo")) AddCommandParameter(dbCommand, "@EmployeeNo", _EmployeeNo);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Initials")) AddCommandParameter(dbCommand, "@Initials", _Initials);
if (columnNames.ContainsCI("Title")) AddCommandParameter(dbCommand, "@Title", _Title);
if (columnNames.ContainsCI("Surname")) AddCommandParameter(dbCommand, "@Surname", _Surname);
if (columnNames.ContainsCI("Forename")) AddCommandParameter(dbCommand, "@Forename", _Forename);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("InstitutionId")) AddCommandParameter(dbCommand, "@InstitutionId", _InstitutionId);
if (columnNames.ContainsCI("EmployeeNo")) AddCommandParameter(dbCommand, "@EmployeeNo", _EmployeeNo);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Initials")) AddCommandParameter(dbCommand, "@Initials", _Initials);
if (columnNames.ContainsCI("Title")) AddCommandParameter(dbCommand, "@Title", _Title);
if (columnNames.ContainsCI("Surname")) AddCommandParameter(dbCommand, "@Surname", _Surname);
if (columnNames.ContainsCI("Forename")) AddCommandParameter(dbCommand, "@Forename", _Forename);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,317 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmFacilitySession_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _FacilityId { get; } = new ColumnDataInt32("FacilityId");
public ColumnDataInt32 _FacilityTemplateId { get; } = new ColumnDataInt32("FacilityTemplateId");
public ColumnDataDateTime _Session { get; } = new ColumnDataDateTime("Session");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataString _Description { get; } = new ColumnDataString("Description");
public ColumnDataString _SessionCode { get; } = new ColumnDataString("SessionCode");
public ColumnDataDateTime _StartAt { get; } = new ColumnDataDateTime("StartAt");
public ColumnDataDateTime _FinishAt { get; } = new ColumnDataDateTime("FinishAt");
public ColumnDataInt32 _ConsultantId { get; } = new ColumnDataInt32("ConsultantId");
public ColumnDataString _ConsultantCode { get; } = new ColumnDataString("ConsultantCode");
public ColumnDataString _SpecialityCode { get; } = new ColumnDataString("SpecialityCode");
public ColumnDataInt16 _CapacityType { get; } = new ColumnDataInt16("CapacityType");
public ColumnDataInt16 _CapacityMin { get; } = new ColumnDataInt16("CapacityMin");
public ColumnDataInt16 _CapacityMax { get; } = new ColumnDataInt16("CapacityMax");
public ColumnDataInt16 _DurationInterval { get; } = new ColumnDataInt16("DurationInterval");
public ColumnDataInt16 _DurationMin { get; } = new ColumnDataInt16("DurationMin");
public ColumnDataInt16 _DurationMax { get; } = new ColumnDataInt16("DurationMax");
public ColumnDataInt16 _DurationBreaks { get; } = new ColumnDataInt16("DurationBreaks");
public ColumnDataSingle _UnitsExp { get; } = new ColumnDataSingle("UnitsExp");
public ColumnDataString _BookingsProhibited_ResourceGroups { get; } = new ColumnDataString("BookingsProhibited_ResourceGroups");
public ColumnDataInt16 _Overrides { get; } = new ColumnDataInt16("Overrides");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"FacilityId",
"FacilityTemplateId",
"Session",
"Type",
"Name",
"Description",
"SessionCode",
"StartAt",
"FinishAt",
"ConsultantId",
"ConsultantCode",
"SpecialityCode",
"CapacityType",
"CapacityMin",
"CapacityMax",
"DurationInterval",
"DurationMin",
"DurationMax",
"DurationBreaks",
"UnitsExp",
"BookingsProhibited_ResourceGroups",
"Overrides",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"FacilityId",
"FacilityTemplateId",
"Session",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmFacilitySession_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmFacilitySession";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _FacilityId { get { return Cols._FacilityId.Value; } set { Cols._FacilityId.Value = value; } }
public Int32 _FacilityTemplateId { get { return Cols._FacilityTemplateId.Value; } set { Cols._FacilityTemplateId.Value = value; } }
public DateTime _Session { get { return Cols._Session.Value; } set { Cols._Session.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public String _Description { get { return Cols._Description.Value; } set { Cols._Description.Value = value; } }
public String _SessionCode { get { return Cols._SessionCode.Value; } set { Cols._SessionCode.Value = value; } }
public DateTime _StartAt { get { return Cols._StartAt.Value; } set { Cols._StartAt.Value = value; } }
public DateTime _FinishAt { get { return Cols._FinishAt.Value; } set { Cols._FinishAt.Value = value; } }
public Int32 _ConsultantId { get { return Cols._ConsultantId.Value; } set { Cols._ConsultantId.Value = value; } }
public String _ConsultantCode { get { return Cols._ConsultantCode.Value; } set { Cols._ConsultantCode.Value = value; } }
public String _SpecialityCode { get { return Cols._SpecialityCode.Value; } set { Cols._SpecialityCode.Value = value; } }
public Int16 _CapacityType { get { return Cols._CapacityType.Value; } set { Cols._CapacityType.Value = value; } }
public Int16 _CapacityMin { get { return Cols._CapacityMin.Value; } set { Cols._CapacityMin.Value = value; } }
public Int16 _CapacityMax { get { return Cols._CapacityMax.Value; } set { Cols._CapacityMax.Value = value; } }
public Int16 _DurationInterval { get { return Cols._DurationInterval.Value; } set { Cols._DurationInterval.Value = value; } }
public Int16 _DurationMin { get { return Cols._DurationMin.Value; } set { Cols._DurationMin.Value = value; } }
public Int16 _DurationMax { get { return Cols._DurationMax.Value; } set { Cols._DurationMax.Value = value; } }
public Int16 _DurationBreaks { get { return Cols._DurationBreaks.Value; } set { Cols._DurationBreaks.Value = value; } }
public Single _UnitsExp { get { return Cols._UnitsExp.Value; } set { Cols._UnitsExp.Value = value; } }
public String _BookingsProhibited_ResourceGroups { get { return Cols._BookingsProhibited_ResourceGroups.Value; } set { Cols._BookingsProhibited_ResourceGroups.Value = value; } }
public Int16 _Overrides { get { return Cols._Overrides.Value; } set { Cols._Overrides.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_FacilityId = GetFieldInt32(dbDataReader, "FacilityId", _FacilityId);
_FacilityTemplateId = GetFieldInt32(dbDataReader, "FacilityTemplateId", _FacilityTemplateId);
_Session = GetFieldDateTime(dbDataReader, "Session", _Session);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_Description = GetFieldString(dbDataReader, "Description", _Description);
_SessionCode = GetFieldString(dbDataReader, "SessionCode", _SessionCode);
_StartAt = GetFieldDateTime(dbDataReader, "StartAt", _StartAt);
_FinishAt = GetFieldDateTime(dbDataReader, "FinishAt", _FinishAt);
_ConsultantId = GetFieldInt32(dbDataReader, "ConsultantId", _ConsultantId);
_ConsultantCode = GetFieldString(dbDataReader, "ConsultantCode", _ConsultantCode);
_SpecialityCode = GetFieldString(dbDataReader, "SpecialityCode", _SpecialityCode);
_CapacityType = GetFieldInt16(dbDataReader, "CapacityType", _CapacityType);
_CapacityMin = GetFieldInt16(dbDataReader, "CapacityMin", _CapacityMin);
_CapacityMax = GetFieldInt16(dbDataReader, "CapacityMax", _CapacityMax);
_DurationInterval = GetFieldInt16(dbDataReader, "DurationInterval", _DurationInterval);
_DurationMin = GetFieldInt16(dbDataReader, "DurationMin", _DurationMin);
_DurationMax = GetFieldInt16(dbDataReader, "DurationMax", _DurationMax);
_DurationBreaks = GetFieldInt16(dbDataReader, "DurationBreaks", _DurationBreaks);
_UnitsExp = GetFieldSingle(dbDataReader, "UnitsExp", _UnitsExp);
_BookingsProhibited_ResourceGroups = GetFieldString(dbDataReader, "BookingsProhibited_ResourceGroups", _BookingsProhibited_ResourceGroups);
_Overrides = GetFieldInt16(dbDataReader, "Overrides", _Overrides);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
if (columnNames.ContainsCI("FacilityTemplateId")) AddCommandParameter(dbCommand, "@FacilityTemplateId", _FacilityTemplateId);
if (columnNames.ContainsCI("Session")) AddCommandParameter(dbCommand, "@Session", _Session);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("SessionCode")) AddCommandParameter(dbCommand, "@SessionCode", _SessionCode);
if (columnNames.ContainsCI("StartAt")) AddCommandParameter(dbCommand, "@StartAt", _StartAt);
if (columnNames.ContainsCI("FinishAt")) AddCommandParameter(dbCommand, "@FinishAt", _FinishAt);
if (columnNames.ContainsCI("ConsultantId")) AddCommandParameter(dbCommand, "@ConsultantId", _ConsultantId);
if (columnNames.ContainsCI("ConsultantCode")) AddCommandParameter(dbCommand, "@ConsultantCode", _ConsultantCode);
if (columnNames.ContainsCI("SpecialityCode")) AddCommandParameter(dbCommand, "@SpecialityCode", _SpecialityCode);
if (columnNames.ContainsCI("CapacityType")) AddCommandParameter(dbCommand, "@CapacityType", _CapacityType);
if (columnNames.ContainsCI("CapacityMin")) AddCommandParameter(dbCommand, "@CapacityMin", _CapacityMin);
if (columnNames.ContainsCI("CapacityMax")) AddCommandParameter(dbCommand, "@CapacityMax", _CapacityMax);
if (columnNames.ContainsCI("DurationInterval")) AddCommandParameter(dbCommand, "@DurationInterval", _DurationInterval);
if (columnNames.ContainsCI("DurationMin")) AddCommandParameter(dbCommand, "@DurationMin", _DurationMin);
if (columnNames.ContainsCI("DurationMax")) AddCommandParameter(dbCommand, "@DurationMax", _DurationMax);
if (columnNames.ContainsCI("DurationBreaks")) AddCommandParameter(dbCommand, "@DurationBreaks", _DurationBreaks);
if (columnNames.ContainsCI("UnitsExp")) AddCommandParameter(dbCommand, "@UnitsExp", _UnitsExp);
if (columnNames.ContainsCI("BookingsProhibited_ResourceGroups")) AddCommandParameter(dbCommand, "@BookingsProhibited_ResourceGroups", _BookingsProhibited_ResourceGroups);
if (columnNames.ContainsCI("Overrides")) AddCommandParameter(dbCommand, "@Overrides", _Overrides);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE FacilityId=@FacilityId AND FacilityTemplateId=@FacilityTemplateId AND Session=@Session;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE FacilityId=? AND FacilityTemplateId=? AND Session=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("SessionCode")) AddCommandParameter(dbCommand, "@SessionCode", _SessionCode);
if (columnNames.ContainsCI("StartAt")) AddCommandParameter(dbCommand, "@StartAt", _StartAt);
if (columnNames.ContainsCI("FinishAt")) AddCommandParameter(dbCommand, "@FinishAt", _FinishAt);
if (columnNames.ContainsCI("ConsultantId")) AddCommandParameter(dbCommand, "@ConsultantId", _ConsultantId);
if (columnNames.ContainsCI("ConsultantCode")) AddCommandParameter(dbCommand, "@ConsultantCode", _ConsultantCode);
if (columnNames.ContainsCI("SpecialityCode")) AddCommandParameter(dbCommand, "@SpecialityCode", _SpecialityCode);
if (columnNames.ContainsCI("CapacityType")) AddCommandParameter(dbCommand, "@CapacityType", _CapacityType);
if (columnNames.ContainsCI("CapacityMin")) AddCommandParameter(dbCommand, "@CapacityMin", _CapacityMin);
if (columnNames.ContainsCI("CapacityMax")) AddCommandParameter(dbCommand, "@CapacityMax", _CapacityMax);
if (columnNames.ContainsCI("DurationInterval")) AddCommandParameter(dbCommand, "@DurationInterval", _DurationInterval);
if (columnNames.ContainsCI("DurationMin")) AddCommandParameter(dbCommand, "@DurationMin", _DurationMin);
if (columnNames.ContainsCI("DurationMax")) AddCommandParameter(dbCommand, "@DurationMax", _DurationMax);
if (columnNames.ContainsCI("DurationBreaks")) AddCommandParameter(dbCommand, "@DurationBreaks", _DurationBreaks);
if (columnNames.ContainsCI("UnitsExp")) AddCommandParameter(dbCommand, "@UnitsExp", _UnitsExp);
if (columnNames.ContainsCI("BookingsProhibited_ResourceGroups")) AddCommandParameter(dbCommand, "@BookingsProhibited_ResourceGroups", _BookingsProhibited_ResourceGroups);
if (columnNames.ContainsCI("Overrides")) AddCommandParameter(dbCommand, "@Overrides", _Overrides);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
AddCommandParameter(dbCommand, "@FacilityTemplateId", _FacilityTemplateId);
AddCommandParameter(dbCommand, "@Session", _Session);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,351 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmFacilityTemplate_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _FacilityId { get; } = new ColumnDataInt32("FacilityId");
public ColumnDataInt16 _Category { get; } = new ColumnDataInt16("Category");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Group { get; } = new ColumnDataString("Group");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataString _SortCode { get; } = new ColumnDataString("SortCode");
public ColumnDataString _Description { get; } = new ColumnDataString("Description");
public ColumnDataString _SessionCode { get; } = new ColumnDataString("SessionCode");
public ColumnDataInt16 _TemplateMapType { get; } = new ColumnDataInt16("TemplateMapType");
public ColumnDataDateTime _TemplateMapFrom { get; } = new ColumnDataDateTime("TemplateMapFrom");
public ColumnDataInt16 _WeekOfMonth { get; } = new ColumnDataInt16("WeekOfMonth");
public ColumnDataInt16 _DayOfWeek { get; } = new ColumnDataInt16("DayOfWeek");
public ColumnDataDateTime _StartAt { get; } = new ColumnDataDateTime("StartAt");
public ColumnDataDateTime _FinishAt { get; } = new ColumnDataDateTime("FinishAt");
public ColumnDataInt32 _ConsultantId { get; } = new ColumnDataInt32("ConsultantId");
public ColumnDataString _ConsultantCode { get; } = new ColumnDataString("ConsultantCode");
public ColumnDataString _SpecialityCode { get; } = new ColumnDataString("SpecialityCode");
public ColumnDataInt16 _CapacityType { get; } = new ColumnDataInt16("CapacityType");
public ColumnDataInt16 _CapacityMin { get; } = new ColumnDataInt16("CapacityMin");
public ColumnDataInt16 _CapacityMax { get; } = new ColumnDataInt16("CapacityMax");
public ColumnDataInt16 _DurationInterval { get; } = new ColumnDataInt16("DurationInterval");
public ColumnDataInt16 _DurationMin { get; } = new ColumnDataInt16("DurationMin");
public ColumnDataInt16 _DurationMax { get; } = new ColumnDataInt16("DurationMax");
public ColumnDataInt16 _DurationBreaks { get; } = new ColumnDataInt16("DurationBreaks");
public ColumnDataSingle _UnitsExp { get; } = new ColumnDataSingle("UnitsExp");
public ColumnDataDateTime _ApplicFrom { get; } = new ColumnDataDateTime("ApplicFrom");
public ColumnDataDateTime _ApplicTo { get; } = new ColumnDataDateTime("ApplicTo");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"FacilityId",
"Category",
"Type",
"Group",
"Name",
"SortCode",
"Description",
"SessionCode",
"TemplateMapType",
"TemplateMapFrom",
"WeekOfMonth",
"DayOfWeek",
"StartAt",
"FinishAt",
"ConsultantId",
"ConsultantCode",
"SpecialityCode",
"CapacityType",
"CapacityMin",
"CapacityMax",
"DurationInterval",
"DurationMin",
"DurationMax",
"DurationBreaks",
"UnitsExp",
"ApplicFrom",
"ApplicTo",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmFacilityTemplate_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmFacilityTemplate";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _FacilityId { get { return Cols._FacilityId.Value; } set { Cols._FacilityId.Value = value; } }
public Int16 _Category { get { return Cols._Category.Value; } set { Cols._Category.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Group { get { return Cols._Group.Value; } set { Cols._Group.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public String _SortCode { get { return Cols._SortCode.Value; } set { Cols._SortCode.Value = value; } }
public String _Description { get { return Cols._Description.Value; } set { Cols._Description.Value = value; } }
public String _SessionCode { get { return Cols._SessionCode.Value; } set { Cols._SessionCode.Value = value; } }
public Int16 _TemplateMapType { get { return Cols._TemplateMapType.Value; } set { Cols._TemplateMapType.Value = value; } }
public DateTime _TemplateMapFrom { get { return Cols._TemplateMapFrom.Value; } set { Cols._TemplateMapFrom.Value = value; } }
public Int16 _WeekOfMonth { get { return Cols._WeekOfMonth.Value; } set { Cols._WeekOfMonth.Value = value; } }
public Int16 _DayOfWeek { get { return Cols._DayOfWeek.Value; } set { Cols._DayOfWeek.Value = value; } }
public DateTime _StartAt { get { return Cols._StartAt.Value; } set { Cols._StartAt.Value = value; } }
public DateTime _FinishAt { get { return Cols._FinishAt.Value; } set { Cols._FinishAt.Value = value; } }
public Int32 _ConsultantId { get { return Cols._ConsultantId.Value; } set { Cols._ConsultantId.Value = value; } }
public String _ConsultantCode { get { return Cols._ConsultantCode.Value; } set { Cols._ConsultantCode.Value = value; } }
public String _SpecialityCode { get { return Cols._SpecialityCode.Value; } set { Cols._SpecialityCode.Value = value; } }
public Int16 _CapacityType { get { return Cols._CapacityType.Value; } set { Cols._CapacityType.Value = value; } }
public Int16 _CapacityMin { get { return Cols._CapacityMin.Value; } set { Cols._CapacityMin.Value = value; } }
public Int16 _CapacityMax { get { return Cols._CapacityMax.Value; } set { Cols._CapacityMax.Value = value; } }
public Int16 _DurationInterval { get { return Cols._DurationInterval.Value; } set { Cols._DurationInterval.Value = value; } }
public Int16 _DurationMin { get { return Cols._DurationMin.Value; } set { Cols._DurationMin.Value = value; } }
public Int16 _DurationMax { get { return Cols._DurationMax.Value; } set { Cols._DurationMax.Value = value; } }
public Int16 _DurationBreaks { get { return Cols._DurationBreaks.Value; } set { Cols._DurationBreaks.Value = value; } }
public Single _UnitsExp { get { return Cols._UnitsExp.Value; } set { Cols._UnitsExp.Value = value; } }
public DateTime _ApplicFrom { get { return Cols._ApplicFrom.Value; } set { Cols._ApplicFrom.Value = value; } }
public DateTime _ApplicTo { get { return Cols._ApplicTo.Value; } set { Cols._ApplicTo.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_FacilityId = GetFieldInt32(dbDataReader, "FacilityId", _FacilityId);
_Category = GetFieldInt16(dbDataReader, "Category", _Category);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Group = GetFieldString(dbDataReader, "Group", _Group);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_SortCode = GetFieldString(dbDataReader, "SortCode", _SortCode);
_Description = GetFieldString(dbDataReader, "Description", _Description);
_SessionCode = GetFieldString(dbDataReader, "SessionCode", _SessionCode);
_TemplateMapType = GetFieldInt16(dbDataReader, "TemplateMapType", _TemplateMapType);
_TemplateMapFrom = GetFieldDateTime(dbDataReader, "TemplateMapFrom", _TemplateMapFrom);
_WeekOfMonth = GetFieldInt16(dbDataReader, "WeekOfMonth", _WeekOfMonth);
_DayOfWeek = GetFieldInt16(dbDataReader, "DayOfWeek", _DayOfWeek);
_StartAt = GetFieldDateTime(dbDataReader, "StartAt", _StartAt);
_FinishAt = GetFieldDateTime(dbDataReader, "FinishAt", _FinishAt);
_ConsultantId = GetFieldInt32(dbDataReader, "ConsultantId", _ConsultantId);
_ConsultantCode = GetFieldString(dbDataReader, "ConsultantCode", _ConsultantCode);
_SpecialityCode = GetFieldString(dbDataReader, "SpecialityCode", _SpecialityCode);
_CapacityType = GetFieldInt16(dbDataReader, "CapacityType", _CapacityType);
_CapacityMin = GetFieldInt16(dbDataReader, "CapacityMin", _CapacityMin);
_CapacityMax = GetFieldInt16(dbDataReader, "CapacityMax", _CapacityMax);
_DurationInterval = GetFieldInt16(dbDataReader, "DurationInterval", _DurationInterval);
_DurationMin = GetFieldInt16(dbDataReader, "DurationMin", _DurationMin);
_DurationMax = GetFieldInt16(dbDataReader, "DurationMax", _DurationMax);
_DurationBreaks = GetFieldInt16(dbDataReader, "DurationBreaks", _DurationBreaks);
_UnitsExp = GetFieldSingle(dbDataReader, "UnitsExp", _UnitsExp);
_ApplicFrom = GetFieldDateTime(dbDataReader, "ApplicFrom", _ApplicFrom);
_ApplicTo = GetFieldDateTime(dbDataReader, "ApplicTo", _ApplicTo);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Group")) AddCommandParameter(dbCommand, "@Group", _Group);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("SortCode")) AddCommandParameter(dbCommand, "@SortCode", _SortCode);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("SessionCode")) AddCommandParameter(dbCommand, "@SessionCode", _SessionCode);
if (columnNames.ContainsCI("TemplateMapType")) AddCommandParameter(dbCommand, "@TemplateMapType", _TemplateMapType);
if (columnNames.ContainsCI("TemplateMapFrom")) AddCommandParameter(dbCommand, "@TemplateMapFrom", _TemplateMapFrom);
if (columnNames.ContainsCI("WeekOfMonth")) AddCommandParameter(dbCommand, "@WeekOfMonth", _WeekOfMonth);
if (columnNames.ContainsCI("DayOfWeek")) AddCommandParameter(dbCommand, "@DayOfWeek", _DayOfWeek);
if (columnNames.ContainsCI("StartAt")) AddCommandParameter(dbCommand, "@StartAt", _StartAt);
if (columnNames.ContainsCI("FinishAt")) AddCommandParameter(dbCommand, "@FinishAt", _FinishAt);
if (columnNames.ContainsCI("ConsultantId")) AddCommandParameter(dbCommand, "@ConsultantId", _ConsultantId);
if (columnNames.ContainsCI("ConsultantCode")) AddCommandParameter(dbCommand, "@ConsultantCode", _ConsultantCode);
if (columnNames.ContainsCI("SpecialityCode")) AddCommandParameter(dbCommand, "@SpecialityCode", _SpecialityCode);
if (columnNames.ContainsCI("CapacityType")) AddCommandParameter(dbCommand, "@CapacityType", _CapacityType);
if (columnNames.ContainsCI("CapacityMin")) AddCommandParameter(dbCommand, "@CapacityMin", _CapacityMin);
if (columnNames.ContainsCI("CapacityMax")) AddCommandParameter(dbCommand, "@CapacityMax", _CapacityMax);
if (columnNames.ContainsCI("DurationInterval")) AddCommandParameter(dbCommand, "@DurationInterval", _DurationInterval);
if (columnNames.ContainsCI("DurationMin")) AddCommandParameter(dbCommand, "@DurationMin", _DurationMin);
if (columnNames.ContainsCI("DurationMax")) AddCommandParameter(dbCommand, "@DurationMax", _DurationMax);
if (columnNames.ContainsCI("DurationBreaks")) AddCommandParameter(dbCommand, "@DurationBreaks", _DurationBreaks);
if (columnNames.ContainsCI("UnitsExp")) AddCommandParameter(dbCommand, "@UnitsExp", _UnitsExp);
if (columnNames.ContainsCI("ApplicFrom")) AddCommandParameter(dbCommand, "@ApplicFrom", _ApplicFrom);
if (columnNames.ContainsCI("ApplicTo")) AddCommandParameter(dbCommand, "@ApplicTo", _ApplicTo);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
if (columnNames.ContainsCI("Category")) AddCommandParameter(dbCommand, "@Category", _Category);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Group")) AddCommandParameter(dbCommand, "@Group", _Group);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("SortCode")) AddCommandParameter(dbCommand, "@SortCode", _SortCode);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("SessionCode")) AddCommandParameter(dbCommand, "@SessionCode", _SessionCode);
if (columnNames.ContainsCI("TemplateMapType")) AddCommandParameter(dbCommand, "@TemplateMapType", _TemplateMapType);
if (columnNames.ContainsCI("TemplateMapFrom")) AddCommandParameter(dbCommand, "@TemplateMapFrom", _TemplateMapFrom);
if (columnNames.ContainsCI("WeekOfMonth")) AddCommandParameter(dbCommand, "@WeekOfMonth", _WeekOfMonth);
if (columnNames.ContainsCI("DayOfWeek")) AddCommandParameter(dbCommand, "@DayOfWeek", _DayOfWeek);
if (columnNames.ContainsCI("StartAt")) AddCommandParameter(dbCommand, "@StartAt", _StartAt);
if (columnNames.ContainsCI("FinishAt")) AddCommandParameter(dbCommand, "@FinishAt", _FinishAt);
if (columnNames.ContainsCI("ConsultantId")) AddCommandParameter(dbCommand, "@ConsultantId", _ConsultantId);
if (columnNames.ContainsCI("ConsultantCode")) AddCommandParameter(dbCommand, "@ConsultantCode", _ConsultantCode);
if (columnNames.ContainsCI("SpecialityCode")) AddCommandParameter(dbCommand, "@SpecialityCode", _SpecialityCode);
if (columnNames.ContainsCI("CapacityType")) AddCommandParameter(dbCommand, "@CapacityType", _CapacityType);
if (columnNames.ContainsCI("CapacityMin")) AddCommandParameter(dbCommand, "@CapacityMin", _CapacityMin);
if (columnNames.ContainsCI("CapacityMax")) AddCommandParameter(dbCommand, "@CapacityMax", _CapacityMax);
if (columnNames.ContainsCI("DurationInterval")) AddCommandParameter(dbCommand, "@DurationInterval", _DurationInterval);
if (columnNames.ContainsCI("DurationMin")) AddCommandParameter(dbCommand, "@DurationMin", _DurationMin);
if (columnNames.ContainsCI("DurationMax")) AddCommandParameter(dbCommand, "@DurationMax", _DurationMax);
if (columnNames.ContainsCI("DurationBreaks")) AddCommandParameter(dbCommand, "@DurationBreaks", _DurationBreaks);
if (columnNames.ContainsCI("UnitsExp")) AddCommandParameter(dbCommand, "@UnitsExp", _UnitsExp);
if (columnNames.ContainsCI("ApplicFrom")) AddCommandParameter(dbCommand, "@ApplicFrom", _ApplicFrom);
if (columnNames.ContainsCI("ApplicTo")) AddCommandParameter(dbCommand, "@ApplicTo", _ApplicTo);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,255 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmFacility_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _DepartmentId { get; } = new ColumnDataInt32("DepartmentId");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataString _SortCode { get; } = new ColumnDataString("SortCode");
public ColumnDataString _Description { get; } = new ColumnDataString("Description");
public ColumnDataInt16 _TemplateMapType { get; } = new ColumnDataInt16("TemplateMapType");
public ColumnDataDateTime _TemplateMapFrom { get; } = new ColumnDataDateTime("TemplateMapFrom");
public ColumnDataInt16 _ScheduleFreezeType { get; } = new ColumnDataInt16("ScheduleFreezeType");
public ColumnDataString _ScheduleFreezeData { get; } = new ColumnDataString("ScheduleFreezeData");
public ColumnDataDateTime _ApplicFrom { get; } = new ColumnDataDateTime("ApplicFrom");
public ColumnDataDateTime _ApplicTo { get; } = new ColumnDataDateTime("ApplicTo");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"DepartmentId",
"Type",
"Name",
"SortCode",
"Description",
"TemplateMapType",
"TemplateMapFrom",
"ScheduleFreezeType",
"ScheduleFreezeData",
"ApplicFrom",
"ApplicTo",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmFacility_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmFacility";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _DepartmentId { get { return Cols._DepartmentId.Value; } set { Cols._DepartmentId.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public String _SortCode { get { return Cols._SortCode.Value; } set { Cols._SortCode.Value = value; } }
public String _Description { get { return Cols._Description.Value; } set { Cols._Description.Value = value; } }
public Int16 _TemplateMapType { get { return Cols._TemplateMapType.Value; } set { Cols._TemplateMapType.Value = value; } }
public DateTime _TemplateMapFrom { get { return Cols._TemplateMapFrom.Value; } set { Cols._TemplateMapFrom.Value = value; } }
public Int16 _ScheduleFreezeType { get { return Cols._ScheduleFreezeType.Value; } set { Cols._ScheduleFreezeType.Value = value; } }
public String _ScheduleFreezeData { get { return Cols._ScheduleFreezeData.Value; } set { Cols._ScheduleFreezeData.Value = value; } }
public DateTime _ApplicFrom { get { return Cols._ApplicFrom.Value; } set { Cols._ApplicFrom.Value = value; } }
public DateTime _ApplicTo { get { return Cols._ApplicTo.Value; } set { Cols._ApplicTo.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_DepartmentId = GetFieldInt32(dbDataReader, "DepartmentId", _DepartmentId);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_SortCode = GetFieldString(dbDataReader, "SortCode", _SortCode);
_Description = GetFieldString(dbDataReader, "Description", _Description);
_TemplateMapType = GetFieldInt16(dbDataReader, "TemplateMapType", _TemplateMapType);
_TemplateMapFrom = GetFieldDateTime(dbDataReader, "TemplateMapFrom", _TemplateMapFrom);
_ScheduleFreezeType = GetFieldInt16(dbDataReader, "ScheduleFreezeType", _ScheduleFreezeType);
_ScheduleFreezeData = GetFieldString(dbDataReader, "ScheduleFreezeData", _ScheduleFreezeData);
_ApplicFrom = GetFieldDateTime(dbDataReader, "ApplicFrom", _ApplicFrom);
_ApplicTo = GetFieldDateTime(dbDataReader, "ApplicTo", _ApplicTo);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("DepartmentId")) AddCommandParameter(dbCommand, "@DepartmentId", _DepartmentId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("SortCode")) AddCommandParameter(dbCommand, "@SortCode", _SortCode);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("TemplateMapType")) AddCommandParameter(dbCommand, "@TemplateMapType", _TemplateMapType);
if (columnNames.ContainsCI("TemplateMapFrom")) AddCommandParameter(dbCommand, "@TemplateMapFrom", _TemplateMapFrom);
if (columnNames.ContainsCI("ScheduleFreezeType")) AddCommandParameter(dbCommand, "@ScheduleFreezeType", _ScheduleFreezeType);
if (columnNames.ContainsCI("ScheduleFreezeData")) AddCommandParameter(dbCommand, "@ScheduleFreezeData", _ScheduleFreezeData);
if (columnNames.ContainsCI("ApplicFrom")) AddCommandParameter(dbCommand, "@ApplicFrom", _ApplicFrom);
if (columnNames.ContainsCI("ApplicTo")) AddCommandParameter(dbCommand, "@ApplicTo", _ApplicTo);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("DepartmentId")) AddCommandParameter(dbCommand, "@DepartmentId", _DepartmentId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("SortCode")) AddCommandParameter(dbCommand, "@SortCode", _SortCode);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("TemplateMapType")) AddCommandParameter(dbCommand, "@TemplateMapType", _TemplateMapType);
if (columnNames.ContainsCI("TemplateMapFrom")) AddCommandParameter(dbCommand, "@TemplateMapFrom", _TemplateMapFrom);
if (columnNames.ContainsCI("ScheduleFreezeType")) AddCommandParameter(dbCommand, "@ScheduleFreezeType", _ScheduleFreezeType);
if (columnNames.ContainsCI("ScheduleFreezeData")) AddCommandParameter(dbCommand, "@ScheduleFreezeData", _ScheduleFreezeData);
if (columnNames.ContainsCI("ApplicFrom")) AddCommandParameter(dbCommand, "@ApplicFrom", _ApplicFrom);
if (columnNames.ContainsCI("ApplicTo")) AddCommandParameter(dbCommand, "@ApplicTo", _ApplicTo);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,195 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmInstitution_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataString _Name { get; } = new ColumnDataString("Name");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"Name",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmInstitution_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmInstitution";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public String _Name { get { return Cols._Name.Value; } set { Cols._Name.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_Name = GetFieldString(dbDataReader, "Name", _Name);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Name")) AddCommandParameter(dbCommand, "@Name", _Name);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,207 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmOperation_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _InstitutionId { get; } = new ColumnDataInt32("InstitutionId");
public ColumnDataString _Code { get; } = new ColumnDataString("Code");
public ColumnDataString _Description { get; } = new ColumnDataString("Description");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"InstitutionId",
"Code",
"Description",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmOperation_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmOperation";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _InstitutionId { get { return Cols._InstitutionId.Value; } set { Cols._InstitutionId.Value = value; } }
public String _Code { get { return Cols._Code.Value; } set { Cols._Code.Value = value; } }
public String _Description { get { return Cols._Description.Value; } set { Cols._Description.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_InstitutionId = GetFieldInt32(dbDataReader, "InstitutionId", _InstitutionId);
_Code = GetFieldString(dbDataReader, "Code", _Code);
_Description = GetFieldString(dbDataReader, "Description", _Description);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("InstitutionId")) AddCommandParameter(dbCommand, "@InstitutionId", _InstitutionId);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("InstitutionId")) AddCommandParameter(dbCommand, "@InstitutionId", _InstitutionId);
if (columnNames.ContainsCI("Code")) AddCommandParameter(dbCommand, "@Code", _Code);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,261 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmPatient_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _InstitutionId { get; } = new ColumnDataInt32("InstitutionId");
public ColumnDataString _PatientNo { get; } = new ColumnDataString("PatientNo");
public ColumnDataString _NhsNumber { get; } = new ColumnDataString("NhsNumber");
public ColumnDataString _Title { get; } = new ColumnDataString("Title");
public ColumnDataString _Surname { get; } = new ColumnDataString("Surname");
public ColumnDataString _Forename { get; } = new ColumnDataString("Forename");
public ColumnDataInt16 _Gender { get; } = new ColumnDataInt16("Gender");
public ColumnDataInt32 _BirthOn { get; } = new ColumnDataInt32("BirthOn");
public ColumnDataString _Age { get; } = new ColumnDataString("Age");
public ColumnDataDateTime _AgeOn { get; } = new ColumnDataDateTime("AgeOn");
public ColumnDataString _PhoneMobile { get; } = new ColumnDataString("PhoneMobile");
public ColumnDataString _Email { get; } = new ColumnDataString("Email");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"InstitutionId",
"PatientNo",
"NhsNumber",
"Title",
"Surname",
"Forename",
"Gender",
"BirthOn",
"Age",
"AgeOn",
"PhoneMobile",
"Email",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmPatient_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmPatient";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _InstitutionId { get { return Cols._InstitutionId.Value; } set { Cols._InstitutionId.Value = value; } }
public String _PatientNo { get { return Cols._PatientNo.Value; } set { Cols._PatientNo.Value = value; } }
public String _NhsNumber { get { return Cols._NhsNumber.Value; } set { Cols._NhsNumber.Value = value; } }
public String _Title { get { return Cols._Title.Value; } set { Cols._Title.Value = value; } }
public String _Surname { get { return Cols._Surname.Value; } set { Cols._Surname.Value = value; } }
public String _Forename { get { return Cols._Forename.Value; } set { Cols._Forename.Value = value; } }
public Int16 _Gender { get { return Cols._Gender.Value; } set { Cols._Gender.Value = value; } }
public Int32 _BirthOn { get { return Cols._BirthOn.Value; } set { Cols._BirthOn.Value = value; } }
public String _Age { get { return Cols._Age.Value; } set { Cols._Age.Value = value; } }
public DateTime _AgeOn { get { return Cols._AgeOn.Value; } set { Cols._AgeOn.Value = value; } }
public String _PhoneMobile { get { return Cols._PhoneMobile.Value; } set { Cols._PhoneMobile.Value = value; } }
public String _Email { get { return Cols._Email.Value; } set { Cols._Email.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_InstitutionId = GetFieldInt32(dbDataReader, "InstitutionId", _InstitutionId);
_PatientNo = GetFieldString(dbDataReader, "PatientNo", _PatientNo);
_NhsNumber = GetFieldString(dbDataReader, "NhsNumber", _NhsNumber);
_Title = GetFieldString(dbDataReader, "Title", _Title);
_Surname = GetFieldString(dbDataReader, "Surname", _Surname);
_Forename = GetFieldString(dbDataReader, "Forename", _Forename);
_Gender = GetFieldInt16(dbDataReader, "Gender", _Gender);
_BirthOn = GetFieldInt32(dbDataReader, "BirthOn", _BirthOn);
_Age = GetFieldString(dbDataReader, "Age", _Age);
_AgeOn = GetFieldDateTime(dbDataReader, "AgeOn", _AgeOn);
_PhoneMobile = GetFieldString(dbDataReader, "PhoneMobile", _PhoneMobile);
_Email = GetFieldString(dbDataReader, "Email", _Email);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("InstitutionId")) AddCommandParameter(dbCommand, "@InstitutionId", _InstitutionId);
if (columnNames.ContainsCI("PatientNo")) AddCommandParameter(dbCommand, "@PatientNo", _PatientNo);
if (columnNames.ContainsCI("NhsNumber")) AddCommandParameter(dbCommand, "@NhsNumber", _NhsNumber);
if (columnNames.ContainsCI("Title")) AddCommandParameter(dbCommand, "@Title", _Title);
if (columnNames.ContainsCI("Surname")) AddCommandParameter(dbCommand, "@Surname", _Surname);
if (columnNames.ContainsCI("Forename")) AddCommandParameter(dbCommand, "@Forename", _Forename);
if (columnNames.ContainsCI("Gender")) AddCommandParameter(dbCommand, "@Gender", _Gender);
if (columnNames.ContainsCI("BirthOn")) AddCommandParameter(dbCommand, "@BirthOn", _BirthOn);
if (columnNames.ContainsCI("Age")) AddCommandParameter(dbCommand, "@Age", _Age);
if (columnNames.ContainsCI("AgeOn")) AddCommandParameter(dbCommand, "@AgeOn", _AgeOn);
if (columnNames.ContainsCI("PhoneMobile")) AddCommandParameter(dbCommand, "@PhoneMobile", _PhoneMobile);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("InstitutionId")) AddCommandParameter(dbCommand, "@InstitutionId", _InstitutionId);
if (columnNames.ContainsCI("PatientNo")) AddCommandParameter(dbCommand, "@PatientNo", _PatientNo);
if (columnNames.ContainsCI("NhsNumber")) AddCommandParameter(dbCommand, "@NhsNumber", _NhsNumber);
if (columnNames.ContainsCI("Title")) AddCommandParameter(dbCommand, "@Title", _Title);
if (columnNames.ContainsCI("Surname")) AddCommandParameter(dbCommand, "@Surname", _Surname);
if (columnNames.ContainsCI("Forename")) AddCommandParameter(dbCommand, "@Forename", _Forename);
if (columnNames.ContainsCI("Gender")) AddCommandParameter(dbCommand, "@Gender", _Gender);
if (columnNames.ContainsCI("BirthOn")) AddCommandParameter(dbCommand, "@BirthOn", _BirthOn);
if (columnNames.ContainsCI("Age")) AddCommandParameter(dbCommand, "@Age", _Age);
if (columnNames.ContainsCI("AgeOn")) AddCommandParameter(dbCommand, "@AgeOn", _AgeOn);
if (columnNames.ContainsCI("PhoneMobile")) AddCommandParameter(dbCommand, "@PhoneMobile", _PhoneMobile);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,249 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmProcedure_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id");
public ColumnDataInt32 _DepartmentId { get; } = new ColumnDataInt32("DepartmentId");
public ColumnDataInt32 _OperationId { get; } = new ColumnDataInt32("OperationId");
public ColumnDataString _OpnCode { get; } = new ColumnDataString("OpnCode");
public ColumnDataString _Description { get; } = new ColumnDataString("Description");
public ColumnDataString _SpecialityCode { get; } = new ColumnDataString("SpecialityCode");
public ColumnDataString _ComplexityCode { get; } = new ColumnDataString("ComplexityCode");
public ColumnDataInt16 _Duration { get; } = new ColumnDataInt16("Duration");
public ColumnDataSingle _Units { get; } = new ColumnDataSingle("Units");
public ColumnDataInt16 _Duration_Training { get; } = new ColumnDataInt16("Duration_Training");
public ColumnDataSingle _Units_Training { get; } = new ColumnDataSingle("Units_Training");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"Id",
"DepartmentId",
"OperationId",
"OpnCode",
"Description",
"SpecialityCode",
"ComplexityCode",
"Duration",
"Units",
"Duration_Training",
"Units_Training",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"Id",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmProcedure_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmProcedure";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int32 _DepartmentId { get { return Cols._DepartmentId.Value; } set { Cols._DepartmentId.Value = value; } }
public Int32 _OperationId { get { return Cols._OperationId.Value; } set { Cols._OperationId.Value = value; } }
public String _OpnCode { get { return Cols._OpnCode.Value; } set { Cols._OpnCode.Value = value; } }
public String _Description { get { return Cols._Description.Value; } set { Cols._Description.Value = value; } }
public String _SpecialityCode { get { return Cols._SpecialityCode.Value; } set { Cols._SpecialityCode.Value = value; } }
public String _ComplexityCode { get { return Cols._ComplexityCode.Value; } set { Cols._ComplexityCode.Value = value; } }
public Int16 _Duration { get { return Cols._Duration.Value; } set { Cols._Duration.Value = value; } }
public Single _Units { get { return Cols._Units.Value; } set { Cols._Units.Value = value; } }
public Int16 _Duration_Training { get { return Cols._Duration_Training.Value; } set { Cols._Duration_Training.Value = value; } }
public Single _Units_Training { get { return Cols._Units_Training.Value; } set { Cols._Units_Training.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
_DepartmentId = GetFieldInt32(dbDataReader, "DepartmentId", _DepartmentId);
_OperationId = GetFieldInt32(dbDataReader, "OperationId", _OperationId);
_OpnCode = GetFieldString(dbDataReader, "OpnCode", _OpnCode);
_Description = GetFieldString(dbDataReader, "Description", _Description);
_SpecialityCode = GetFieldString(dbDataReader, "SpecialityCode", _SpecialityCode);
_ComplexityCode = GetFieldString(dbDataReader, "ComplexityCode", _ComplexityCode);
_Duration = GetFieldInt16(dbDataReader, "Duration", _Duration);
_Units = GetFieldSingle(dbDataReader, "Units", _Units);
_Duration_Training = GetFieldInt16(dbDataReader, "Duration_Training", _Duration_Training);
_Units_Training = GetFieldSingle(dbDataReader, "Units_Training", _Units_Training);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Id")) AddCommandParameter(dbCommand, "@Id", _Id);
if (columnNames.ContainsCI("DepartmentId")) AddCommandParameter(dbCommand, "@DepartmentId", _DepartmentId);
if (columnNames.ContainsCI("OperationId")) AddCommandParameter(dbCommand, "@OperationId", _OperationId);
if (columnNames.ContainsCI("OpnCode")) AddCommandParameter(dbCommand, "@OpnCode", _OpnCode);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("SpecialityCode")) AddCommandParameter(dbCommand, "@SpecialityCode", _SpecialityCode);
if (columnNames.ContainsCI("ComplexityCode")) AddCommandParameter(dbCommand, "@ComplexityCode", _ComplexityCode);
if (columnNames.ContainsCI("Duration")) AddCommandParameter(dbCommand, "@Duration", _Duration);
if (columnNames.ContainsCI("Units")) AddCommandParameter(dbCommand, "@Units", _Units);
if (columnNames.ContainsCI("Duration_Training")) AddCommandParameter(dbCommand, "@Duration_Training", _Duration_Training);
if (columnNames.ContainsCI("Units_Training")) AddCommandParameter(dbCommand, "@Units_Training", _Units_Training);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE Id=@Id;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE Id=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("DepartmentId")) AddCommandParameter(dbCommand, "@DepartmentId", _DepartmentId);
if (columnNames.ContainsCI("OperationId")) AddCommandParameter(dbCommand, "@OperationId", _OperationId);
if (columnNames.ContainsCI("OpnCode")) AddCommandParameter(dbCommand, "@OpnCode", _OpnCode);
if (columnNames.ContainsCI("Description")) AddCommandParameter(dbCommand, "@Description", _Description);
if (columnNames.ContainsCI("SpecialityCode")) AddCommandParameter(dbCommand, "@SpecialityCode", _SpecialityCode);
if (columnNames.ContainsCI("ComplexityCode")) AddCommandParameter(dbCommand, "@ComplexityCode", _ComplexityCode);
if (columnNames.ContainsCI("Duration")) AddCommandParameter(dbCommand, "@Duration", _Duration);
if (columnNames.ContainsCI("Units")) AddCommandParameter(dbCommand, "@Units", _Units);
if (columnNames.ContainsCI("Duration_Training")) AddCommandParameter(dbCommand, "@Duration_Training", _Duration_Training);
if (columnNames.ContainsCI("Units_Training")) AddCommandParameter(dbCommand, "@Units_Training", _Units_Training);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@Id", _Id);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -0,0 +1,216 @@
using Sarand.Core.Base;
using Sarand.PatientMgr.Win.Dbas.Data;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Tue 9-Apr-2019 17:58:35
//---------------------------------------------------------------------------
namespace Sarand.PatientMgr.Win.Dbas.Internal
{
internal class SwmTemplateData_Db : SpmDbDataItem
{
//-------------------------------------------------------------------
// Column definitions.
public class ColumnsData
{
public ColumnDataInt32 _FacilityTemplateId { get; } = new ColumnDataInt32("FacilityTemplateId");
public ColumnDataInt16 _Type { get; } = new ColumnDataInt16("Type");
public ColumnDataInt16 _Seq { get; } = new ColumnDataInt16("Seq");
public ColumnDataString _Identifier { get; } = new ColumnDataString("Identifier");
public ColumnDataString _Value { get; } = new ColumnDataString("Value");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
}
//-------------------------------------------------------------------
// Data members.
private static List<String> fields { get; } = new List<String>()
{
"FacilityTemplateId",
"Type",
"Seq",
"Identifier",
"Value",
"Notes",
"Flags",
"Status",
"CreateOn",
"CreateBy",
"CreateHost",
"UpdateOn",
"UpdateBy",
"UpdateHost",
};
private static List<String> fieldsId { get; } = new List<String>()
{
};
private static List<String> fieldsPrimary { get; } = new List<String>()
{
"FacilityTemplateId",
"Type",
"Seq",
"Identifier",
};
private static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
"CreateOn",
"CreateBy",
"CreateHost",
};
//-------------------------------------------------------------------
// Construction.
internal SwmTemplateData_Db (IDatabaseInfo dbInfo) : base(dbInfo)
{
}
//-------------------------------------------------------------------
// Properties.
public override String SchemaName { get; } = "dbo";
public override String TableName { get; } = "SwmTemplateData";
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
public static List<String> Fields { get { return new List<String>(fields); } }
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
// Columns.
public ColumnsData Cols { get; } = new ColumnsData();
public Int32 _FacilityTemplateId { get { return Cols._FacilityTemplateId.Value; } set { Cols._FacilityTemplateId.Value = value; } }
public Int16 _Type { get { return Cols._Type.Value; } set { Cols._Type.Value = value; } }
public Int16 _Seq { get { return Cols._Seq.Value; } set { Cols._Seq.Value = value; } }
public String _Identifier { get { return Cols._Identifier.Value; } set { Cols._Identifier.Value = value; } }
public String _Value { get { return Cols._Value.Value; } set { Cols._Value.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
// Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
//-------------------------------------------------------------------
// Population.
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
{
dbCommand.CommandText =
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
{
dbDataReader.Read();
PopulateFrom(dbDataReader);
}
}
public override void PopulateFrom (DbDataReader dbDataReader)
{
_FacilityTemplateId = GetFieldInt32(dbDataReader, "FacilityTemplateId", _FacilityTemplateId);
_Type = GetFieldInt16(dbDataReader, "Type", _Type);
_Seq = GetFieldInt16(dbDataReader, "Seq", _Seq);
_Identifier = GetFieldString(dbDataReader, "Identifier", _Identifier);
_Value = GetFieldString(dbDataReader, "Value", _Value);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
}
//-------------------------------------------------------------------
// Insert command.
public override bool ExecuteInsertCommand (DbCommand dbCommand)
{
List<String> columnNames = ExistingColumnNamesNonId;
// Construct query.
String query =
"INSERT INTO " + TableNameFmt + " " +
"("+columnNames.Concat(",","[","]")+") ";
if (dbCommand is SqlCommand)
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
else query += "VALUES (" + StringList.CreateList("?", columnNames.Count).Concat(",") + ") ";
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("FacilityTemplateId")) AddCommandParameter(dbCommand, "@FacilityTemplateId", _FacilityTemplateId);
if (columnNames.ContainsCI("Type")) AddCommandParameter(dbCommand, "@Type", _Type);
if (columnNames.ContainsCI("Seq")) AddCommandParameter(dbCommand, "@Seq", _Seq);
if (columnNames.ContainsCI("Identifier")) AddCommandParameter(dbCommand, "@Identifier", _Identifier);
if (columnNames.ContainsCI("Value")) AddCommandParameter(dbCommand, "@Value", _Value);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
// Execute insert command.
bool commandSuccess = false;
int executeNonQuery = dbCommand.ExecuteNonQuery();
if (executeNonQuery == 1)
{
commandSuccess = true;
}
return commandSuccess;
}
//-------------------------------------------------------------------
// Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
{
// Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
// Construct query.
String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand)
{
query += StringPairList.CreateFrom(columnNames,true).Concat("=@").Concat(", ") + " ";
query += "WHERE FacilityTemplateId=@FacilityTemplateId AND Type=@Type AND Seq=@Seq AND Identifier=@Identifier;";
}
else
{
query += columnNames.Concat(", ", "", "=?") + " ";
query += "WHERE FacilityTemplateId=? AND Type=? AND Seq=? AND Identifier=?;";
}
dbCommand.CommandText = query;
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("Value")) AddCommandParameter(dbCommand, "@Value", _Value);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
AddCommandParameter(dbCommand, "@FacilityTemplateId", _FacilityTemplateId);
AddCommandParameter(dbCommand, "@Type", _Type);
AddCommandParameter(dbCommand, "@Seq", _Seq);
AddCommandParameter(dbCommand, "@Identifier", _Identifier);
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
return (executeNonQueryResult == 1);
}
//-------------------------------------------------------------------
}
}
@@ -1,4 +1,5 @@
using System;
using Sarand.PatientMgr.Core.App;
using System;
using System.Collections.Generic;
using System.Text;
@@ -10,6 +11,9 @@ namespace Sarand.PatientMgr.Win.Forms.App
//-------------------------------------------------------------------
// Session profile.
public static SpmSessionProfile_Win SessionProfile { get; set; }
public static SpmUserContext UserContext { get { return SessionProfile.UserContext; } }
public static SpmSessionContext SessionContext { get { return SessionProfile.UserContext.SessionContext; } }
public static SpmSecurityProfile SecurityProfile { get { return SessionProfile.UserContext.SecurityProfile; } }
//-------------------------------------------------------------------
// Clear globals.
@@ -13,15 +13,32 @@ namespace Sarand.PatientMgr.Win.Forms.App
/// </summary>
public class SpmSessionProfile_Win : SpmSessionProfile
{
//-------------------------------------------------------------------
// User context.
private class SpmUserContext_Win : SpmUserContext
{
public SpmUserContext_Win (SpmSessionContext sessionContext) :
base(sessionContext)
{
}
}
//-------------------------------------------------------------------
// Data members.
private readonly SpmUserContext_Win userContext;
//-------------------------------------------------------------------
// Construction.
protected SpmSessionProfile_Win ()
protected SpmSessionProfile_Win (SpmSessionContext sessionContext)
{
userContext = new SpmUserContext_Win(sessionContext);
}
//-------------------------------------------------------------------
// User context.
public SpmSessionContext SessionContext { get { return userContext.SessionContext; } }
public SpmUserContext UserContext { get { return userContext; } }
//-------------------------------------------------------------------
}
//=======================================================================
@@ -0,0 +1,36 @@
using Sarand.PatientMgr.Core.App;
using Sarand.PatientMgr.Win.Dbas.Consoles;
using Sarand.Win.Dbas.Base;
using Sarand.Win.Forms.CodeTypes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sarand.PatientMgr.App.Consoles
{
//=======================================================================
public class SpmCodeTypeConsole_App : SpmCodeTypeConsole_Dbas
{
//-------------------------------------------------------------------
// Construction.
public SpmCodeTypeConsole_App (SpmSessionContext sessionContext, SacsDatabase database) :
base(sessionContext, database)
{
}
//-------------------------------------------------------------------
// Method to display Code Types dialog.
protected override MaintainCodeTypesFunction MaintainCodeTypesFn
{
get
{
return SaForm_CodeTypes.MaintainCodeTypes;
}
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,36 @@
using Sarand.PatientMgr.Core.App;
using Sarand.PatientMgr.Win.Dbas.Consoles;
using Sarand.Win.Dbas.Base;
using Sarand.Win.Forms.ItemOptions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sarand.PatientMgr.App.Consoles
{
//=======================================================================
public class SpmItemOptionConsole_App : SpmItemOptionConsole_Dbas
{
//-------------------------------------------------------------------
// Construction.
public SpmItemOptionConsole_App (SpmSessionContext sessionContext, SacsDatabase database) :
base(sessionContext, database)
{
}
//-------------------------------------------------------------------
// Method to display Security management dialog.
protected override ShowItemOptionsDialogFunction ShowItemOptionsDialogFn
{
get
{
return SaForm_ItemOptions.ShowItemOptionDialog;
}
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,80 @@
using Sarand.Core.Bus;
using Sarand.PatientMgr.Core.App;
using Sarand.PatientMgr.Win.Dbas.Consoles;
using Sarand.PatientMgr.Win.Forms.App;
using Sarand.Win.Dbas.Base;
using Sarand.Win.Forms.Security;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sarand.PatientMgr.App.Consoles
{
//=======================================================================
public class SpmSecurityConsole_App : SpmSecurityConsole_Dbas
{
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
public SpmSecurityConsole_App (SpmSessionContext sessionContext, SacsDatabase database) :
base(sessionContext, database)
{
}
//-------------------------------------------------------------------
// Security events.
protected override void OnLogin (SysId userId)
{
SpmGlobals_Win.SecurityProfile.RefreshProfile(this, userId, GetSecurityRights());
}
protected override void OnLogout ()
{
SpmGlobals_Win.SecurityProfile.RefreshProfile(this, null, GetSecurityRights());
}
//-------------------------------------------------------------------
// Method to show User Login form.
protected override ShowUserLoginFormFunction ShowUserLoginFormFn
{
get
{
return SaForm_UserLogin.ShowUserLoginForm;
}
}
//-------------------------------------------------------------------
// Method to display Security management form.
protected override ShowManageSecurityDialogFunction ShowManageSecurityDialogFn
{
get
{
return SaForm_ManageSecurity.ShowManageSecurityDialog;
}
}
//-------------------------------------------------------------------
public override bool OnUserModified (SysId userId)
{
if (!SysId.IsValid(userId)) return false;
SpmSecurityProfile securityProfile = SpmGlobals_Win.SecurityProfile;
if (securityProfile.UserId.Equals(userId))
securityProfile.RefreshProfile(this, userId, GetSecurityRights());
return true;
}
public override bool OnSecurityGroupModified (SysId secGroupId)
{
if (!SysId.IsValid(secGroupId)) return false;
SpmSecurityProfile securityProfile = SpmGlobals_Win.SecurityProfile;
if (securityProfile.IsUserMemberOfSecurityGroup(secGroupId))
securityProfile.RefreshProfile(this, securityProfile.UserId, GetSecurityRights());
return true;
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -0,0 +1,36 @@
using Sarand.PatientMgr.Core.App;
using Sarand.PatientMgr.Win.Dbas.Consoles;
using Sarand.Win.Dbas.Base;
using Sarand.Win.Forms.UpdateLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sarand.PatientMgr.App.Consoles
{
//=======================================================================
public class SpmUpdateLogConsole_App : SpmUpdateLogConsole_Dbas
{
//-------------------------------------------------------------------
// Construction.
public SpmUpdateLogConsole_App (SpmSessionContext sessionContext, SacsDatabase database) :
base(sessionContext, database)
{
}
//-------------------------------------------------------------------
// Method to display Security management dialog.
protected override ShowUpdateLogDialogFunction ShowUpdateLogDialogFn
{
get
{
return SaForm_UpdateLog.ShowUpdateLogDialog;
}
}
//-------------------------------------------------------------------
}
//=======================================================================
}
+22 -1
View File
@@ -15,13 +15,34 @@
/// </summary>
private void InitializeComponent ()
{
this.components = new System.ComponentModel.Container();
this.buttonGenerateDbDfn = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// buttonGenerateDbDfn
//
this.buttonGenerateDbDfn.Location = new System.Drawing.Point(58, 63);
this.buttonGenerateDbDfn.Name = "buttonGenerateDbDfn";
this.buttonGenerateDbDfn.Size = new System.Drawing.Size(100, 23);
this.buttonGenerateDbDfn.TabIndex = 0;
this.buttonGenerateDbDfn.Text = "Generate Db dfn";
this.buttonGenerateDbDfn.UseVisualStyleBackColor = true;
this.buttonGenerateDbDfn.Click += new System.EventHandler(this.buttonGenerateDbDfn_Click);
//
// SaPatientMgrForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.buttonGenerateDbDfn);
this.Name = "SaPatientMgrForm";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button buttonGenerateDbDfn;
}
}
@@ -1,4 +1,6 @@
using Sarand.PatientMgr.Core.App;
using Sarand.PatientMgr.Win.Dbas.Utils;
using Sarand.PatientMgr.Win.Forms.App;
using Sarand.Win.Forms;
using Sarand.Win.Forms.Utils;
using System;
@@ -71,10 +73,24 @@ namespace Sarand.PatientMgr.App.Forms
//-------------------------------------------------------------------
// C o n t r o l A c t i v i t y
//-------------------------------------------------------------------
protected override void SetControlActivity ()
{
SetControlsReadOnly();
}
protected override void SetControlsReadOnly ()
{
}
//-------------------------------------------------------------------
// F o r m E v e n t s
//-------------------------------------------------------------------
private void buttonGenerateDbDfn_Click (object sender, EventArgs e)
{
SpmDbDfnGenerator.DbDfnGeneratorResultData result = SpmDbDfnGenerator.Generate(SpmGlobals.Application.GetDatabase(SpmGlobals_Win.SessionProfile.SessionContext).ConnectionString);
if (result.Success)
MessageBox.Show("Database definition generated", "Database Definition", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
else MessageBox.Show("Database definition not generated.\n\n"+result.ErrorMessage, "Database Definition", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
//-------------------------------------------------------------------
}
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
+107 -2
View File
@@ -7,16 +7,30 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using Sarand.PatientMgr.Win.Forms.App;
namespace Sarand.PatientMgr.App
{
//=======================================================================
static class Program
{
//-------------------------------------------------------------------
// Definitions.
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool SetProcessDPIAware ();
//-------------------------------------------------------------------
// Data members.
private static Form mainForm = null;
//-------------------------------------------------------------------
/// <summary>The main entry point for the application.</summary>
[STAThread]
static void Main (string[] args)
{
bool runningProcesses = false;
try
{
// Parse command line.
SacsCommandLineInfo CmdLineInfo = new SacsCommandLineInfo(args);
@@ -24,18 +38,109 @@ namespace Sarand.PatientMgr.App
// PatientMgr Application.
String logMessageSuffix = (runProcesses ? " [auto]" : "");
using (var app = new SaPatientMgrApp(Spm.ApplicationCaption + " Start v" + Spm.Version + logMessageSuffix))
{
// Check for startup error.
if (app.HasErrorState())
{
MessageBox.Show("Startup error: " + app.ErrorStateMessage, Spm.ApplicationCaption, MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
// Trap thread and unhandled exceptions.
var threadExceptionHandler = new ThreadExceptionEventHandler(Application_ThreadException);
Application.ThreadException += threadExceptionHandler;
var unhandledExceptionHandler = new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
AppDomain.CurrentDomain.UnhandledException += unhandledExceptionHandler;
if (runProcesses)
{
// Run specified processes and close application.
runningProcesses = true;
/*
foreach (SacsProcessDefinition processDfn in CmdLineInfo.ProcessDefinitions)
SpmProcessConsole.InvokeProcessDefinition(app.SessionContext, processDfn, app.UserContext.DbUpdateInfo);
*/
}
else
{
// Configure application.
SetProcessDPIAware();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Main form.
SaPatientMgrForm.Config configMainForm = new SaPatientMgrForm.Config();
using (Form mainForm = new SaPatientMgrForm(configMainForm))
using (Form form = new SaPatientMgrForm(configMainForm))
{
Application.Run(mainForm);
mainForm = form;
Application.Run(form);
mainForm = null;
}
Application.ThreadException -= threadExceptionHandler;
Logger.Info(Spm.ApplicationCaption + " End" + logMessageSuffix, true);
}
}
}
catch (Exception exc)
{
String exceptionName = exc.GetType().Name + (exc.InnerException != null ? " (" + exc.InnerException.GetType().Name + ")" : "");
if (!runningProcesses)
MessageBox.Show(exceptionName + " encountered:\n\n" + exc.Message + "\n\nApplication will close.");
Logger.Warn(exceptionName + ": " + exc.Message + exc.GetStackEntries(6).Concat("", "\n\t"), true);
}
finally
{
Application.Exit();
}
}
//-------------------------------------------------------------------
// Trap thread exceptions.
// Ref: https://stackoverflow.com/questions/36014/why-is-net-exception-not-caught-by-try-catch-block
// See: References to Application.ThreadException above.
public class ThreadException : Exception
{
public ThreadException (String message, Exception innerException) :
base(message, innerException)
{ }
}
public static void Application_ThreadException (object sender, ThreadExceptionEventArgs e)
{
Exception exc = e.Exception;
Logger.Error("Application_ThreadException " + exc.GetType().Name + ": " + exc.Message + ExceptionUtil.GetStackEntries(exc, 20).Concat("", "\n\t"), true);
if (!SacsSystem.DebugMode)
{
// Throw on main thread.
if (mainForm != null && mainForm.InvokeRequired) mainForm.Invoke((MethodInvoker)delegate { throw exc; });
else throw exc; // new ThreadException(exc.Message, exc);
}
}
//-------------------------------------------------------------------
// Trap unhandled exceptions.
// Ref: https://msdn.microsoft.com/en-us/library/system.windows.forms.application.threadexception(v=vs.110).aspx
// See: References to Application.ThreadException above.
public class UnhandledException : Exception
{
public UnhandledException (String message, Exception innerException) :
base(message, innerException)
{ }
}
public static void CurrentDomain_UnhandledException (object sender, UnhandledExceptionEventArgs e)
{
Exception exc = e.ExceptionObject as Exception;
Logger.Error("CurrentDomain_UnhandledException " + exc.GetType().Name + ": " + exc.Message + ExceptionUtil.GetStackEntries(exc, 20).Concat("", "\n\t"));
if (!SacsSystem.DebugMode)
{
// Throw on main thread.
if (mainForm != null && mainForm.InvokeRequired) mainForm.Invoke((MethodInvoker)delegate { throw exc; });
else throw exc; // new UnhandledException(exc.ToString(), exc);
}
}
//-------------------------------------------------------------------
}
+8 -7
View File
@@ -18,7 +18,8 @@ namespace Sarand.PatientMgr.App
//-------------------------------------------------------------------
// Data members.
private static SaPatientMgrApp app = null;
private PropertySet properties = null;
private readonly PropertySet properties;
private SpmSessionProfile_Desktop sessionProfile;
//-------------------------------------------------------------------
// Construction.
@@ -37,7 +38,7 @@ namespace Sarand.PatientMgr.App
Spm.Site Site = EnumUtil.ParseEnum(properties.GetPropertyValue("Config", "Site"), Spm.Site.Unknown);
// Default logger properties.
Logger.LogFilenamePrefix = "SPM-Desktop";
Logger.LogFilenamePrefix = "SPM-DSK";
Logger.LogFolder = properties.GetPropertyValue("Logging", "Folder");
#if DEBUG
Logger.ConsoleLevel = SaMessageLevel.Trace;
@@ -92,16 +93,16 @@ namespace Sarand.PatientMgr.App
SpmGlobals.Application = new SpmApplication_Desktop(properties, SessionContext, database);
// Session profile.
SpmSessionProfile_Desktop sessionProfile = new SpmSessionProfile_Desktop();
sessionProfile = new SpmSessionProfile_Desktop(SessionContext);
SpmGlobals_Win.SessionProfile = sessionProfile;
}
private SacsDatabase OpenDatabase ()
{
SacsDatabaseConsole.OdbcConfig config = new SacsDatabaseConsole.OdbcConfig();
config.location = properties.GetPropertyValue("Database", "Location");
config.user = properties.GetPropertyValue("Database", "User");
config.pword = properties.GetPropertyValue("Database", "Pword");
Logger.Trace("BusinessMgrApp OpenDatabase Location=" + config.location);
config.location = properties.GetPropertyValue("Scheduling", "DataSource");
config.user = properties.GetPropertyValue("Scheduling", "DataUser");
config.pword = properties.GetPropertyValue("Scheduling", "DataPword");
Logger.Trace("PatientMgrApp OpenDatabase Location=" + config.location);
SacsDatabase database = SacsDatabaseConsole.OpenOdbcDatabase(config);
+57 -3
View File
@@ -6,6 +6,10 @@ using Sarand.Win.Dbas.Base;
using System;
using System.Collections.Generic;
using System.Text;
using Sarand.PatientMgr.App.Consoles;
using Sarand.Core.Security;
using Sarand.Core.ItemOptions;
using Sarand.Core.UpdateLog;
namespace Sarand.PatientMgr.App
{
@@ -36,13 +40,63 @@ namespace Sarand.PatientMgr.App
{
return Database;
}
//public override bool ColumnExists (SbmSessionContext sessionContext, SbmDbDfn.ColumnIdx columnIdx)
public override bool ColumnExists (SpmSessionContext sessionContext, SpmDbDfn.ColumnIdx columnIdx)
{
ISacsDatabase database = GetDatabase(sessionContext);
if (database != null)
return database.ColumnExists(SpmDbDfn.GetTableName(SpmDbDfn.GetTableForColumn(columnIdx)), SpmDbDfn.GetColumnName(columnIdx));
return false;
}
//-------------------------------------------------------------------
// Security console.
private SpmSecurityConsole_App securityConsole;
public override SaSecurityConsole GetSecurityConsole (SpmSessionContext sessionContext)
{
if (securityConsole == null)
{
securityConsole = new SpmSecurityConsole_App(SessionContext, Database);
securityConsole.LogSecurityProfile = SpmGlobals.System.IsExtendedLogging(SpmSystem.ExtendedLogginOption.SecurityProfile);
securityConsole.RegisterSecurityRights();
}
return securityConsole;
}
//-------------------------------------------------------------------
// Code Type console.
public override SaCodeTypeConsole GetCodeTypeConsole (SpmUserContext userContext)
private SpmCodeTypeConsole_App codeTypeConsole;
public override SaCodeTypeConsole GetCodeTypeConsole (SpmSessionContext sessionContext)
{
return null;
if (codeTypeConsole == null)
{
codeTypeConsole = new SpmCodeTypeConsole_App(SessionContext, Database);
SpmSystem.RegisterCodeTypes(codeTypeConsole, SessionContext.Site);
}
return codeTypeConsole;
}
//-------------------------------------------------------------------
// Item option console.
private SpmItemOptionConsole_App itemOptionConsole;
public override SaItemOptionConsole GetItemOptionConsole (SpmSessionContext sessionContext)
{
if (itemOptionConsole == null)
{
itemOptionConsole = new SpmItemOptionConsole_App(SessionContext, Database);
}
return itemOptionConsole;
}
//-------------------------------------------------------------------
// Update Log console.
private SpmUpdateLogConsole_App updateLogConsole;
public override SaUpdateLogConsole GetUpdateLogConsole (SpmSessionContext sessionContext)
{
if (updateLogConsole == null)
{
updateLogConsole = new SpmUpdateLogConsole_App(SessionContext, Database);
}
return updateLogConsole;
}
//-------------------------------------------------------------------
@@ -1,4 +1,5 @@
using Sarand.PatientMgr.Win.Forms.App;
using Sarand.PatientMgr.Core.App;
using Sarand.PatientMgr.Win.Forms.App;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -18,7 +19,8 @@ namespace Sarand.PatientMgr.App
//-------------------------------------------------------------------
// Construction.
public SpmSessionProfile_Desktop ()
public SpmSessionProfile_Desktop (SpmSessionContext sessionContext) :
base(sessionContext)
{
}
+7 -1
View File
@@ -48,6 +48,10 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="App\Consoles\SpmCodeTypeConsole_App.cs" />
<Compile Include="App\Consoles\SpmItemOptionConsole_App.cs" />
<Compile Include="App\Consoles\SpmSecurityConsole_App.cs" />
<Compile Include="App\Consoles\SpmUpdateLogConsole_App.cs" />
<Compile Include="App\Forms\SaPatientMgrForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -60,6 +64,9 @@
<Compile Include="App\SpmSessionContext_Desktop.cs" />
<Compile Include="App\SpmSessionProfile_Desktop.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="App\Forms\SaPatientMgrForm.resx">
<DependentUpon>SaPatientMgrForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
@@ -84,7 +91,6 @@
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Folder Include="App\Consoles\" />
<Folder Include="App\Panels\" />
</ItemGroup>
<ItemGroup>