1.2.11.5
This commit is contained in:
@@ -83,7 +83,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
catch (Exception exc)
|
||||
{
|
||||
SetErrorState("Database query exception");
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaFacility\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}");
|
||||
}
|
||||
}
|
||||
return usgaFacility;
|
||||
@@ -216,6 +216,14 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
dbUsgaFacility._ProvinceId = SysId.ToInt(usgaFacility.ProvinceId);
|
||||
dbUsgaFacility._FacilityId = SysId.ToLong(usgaFacility.FacilityId);
|
||||
dbUsgaFacility._FacilityName = usgaFacility.FacilityName;
|
||||
dbUsgaFacility._Address1 = usgaFacility.Address1;
|
||||
dbUsgaFacility._Address2 = usgaFacility.Address2;
|
||||
dbUsgaFacility._City = usgaFacility.City;
|
||||
dbUsgaFacility._PostalCode = usgaFacility.PostalCode;
|
||||
dbUsgaFacility._Latitude = usgaFacility.Latitude;
|
||||
dbUsgaFacility._Longitude = usgaFacility.Longitude;
|
||||
dbUsgaFacility._Email = usgaFacility.Email;
|
||||
dbUsgaFacility._Telephone = usgaFacility.Telephone;
|
||||
// Common.
|
||||
dbUsgaFacility._Notes = usgaFacility.Notes;
|
||||
dbUsgaFacility._Status = SacsSystem.GetStatusCode(usgaFacility.Status);
|
||||
@@ -236,6 +244,14 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
usgaFacility.ProvinceId = new SysId(dbUsgaFacility._ProvinceId);
|
||||
usgaFacility.FacilityId = new SysId(dbUsgaFacility._FacilityId);
|
||||
usgaFacility.FacilityName = dbUsgaFacility._FacilityName;
|
||||
usgaFacility.Address1 = dbUsgaFacility._Address1;
|
||||
usgaFacility.Address2 = dbUsgaFacility._Address2;
|
||||
usgaFacility.City = dbUsgaFacility._City;
|
||||
usgaFacility.PostalCode = dbUsgaFacility._PostalCode;
|
||||
usgaFacility.Latitude = dbUsgaFacility._Latitude;
|
||||
usgaFacility.Longitude = dbUsgaFacility._Longitude;
|
||||
usgaFacility.Email = dbUsgaFacility._Email;
|
||||
usgaFacility.Telephone = dbUsgaFacility._Telephone;
|
||||
// Common.
|
||||
usgaFacility.Notes = dbUsgaFacility._Notes;
|
||||
usgaFacility.Status = SacsSystem.GetStatusForCode(dbUsgaFacility._Status);
|
||||
@@ -266,6 +282,11 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
if (!IsValidValue(facility.ProvinceCode, "province", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceCode), true)) return false;
|
||||
if (!SysId.IsValid(facility.FacilityId)) return SetErrorState("Facility Id must be supplied");
|
||||
if (facility.FacilityName != null && !IsValidValue(facility.FacilityName, "name", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName))) return false;
|
||||
if (facility.Address1 != null && !IsValidValue(facility.Address1, "address 1", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Address1))) return false;
|
||||
if (facility.Address2 != null && !IsValidValue(facility.Address2, "address 2", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Address2))) return false;
|
||||
if (facility.City != null && !IsValidValue(facility.City, "city", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_City))) return false;
|
||||
if (facility.Email != null && !IsValidValue(facility.Email, "email", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Email))) return false;
|
||||
if (facility.Telephone != null && !IsValidValue(facility.Telephone, "telephone", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Telephone))) return false;
|
||||
facilitiesToUpdate.Add(facility);
|
||||
}
|
||||
int MaxBulkUpdateBatchSize = 64;
|
||||
@@ -281,26 +302,39 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
query.Add($"Into {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility)} uFty");
|
||||
query.Add("Using");
|
||||
query.Add("(");
|
||||
query.Add("Select dPrv.Id ProvinceId, dFty.ProvinceCode, dFty.FacilityId, dFty.FacilityName");
|
||||
query.Add("Select dPrv.Id ProvinceId, dFty.ProvinceCode, dFty.FacilityId, dFty.FacilityName, dFty.Address1, dFty.Address2, dFty.City, dFty.PostalCode, dFty.Email, dFty.Telephone");
|
||||
query.Add("From");
|
||||
query.Add("(");
|
||||
query.Add("Select '' ProvinceCode, '' FacilityId, '' FacilityName");
|
||||
query.Add("Select '' ProvinceCode, '' FacilityId, '' FacilityName, '' Address1, '' Address2, '' City, '' PostalCode, '' Email, '' Telephone");
|
||||
foreach (UsgaFacilityData facility in facilitiesToUpdate.ExtractRange(0, batchSize))
|
||||
query.Add($"Union Select '{DbQuery.FormatForCondition(facility.ProvinceCode)}', {SysId.ToString(facility.FacilityId)}, " + (facility.FacilityName != null ? $"'{DbQuery.FormatForCondition(facility.FacilityName)}'" : "Null"));
|
||||
query.Add($"Union Select '{DbQuery.FormatForCondition(facility.ProvinceCode)}', {SysId.ToString(facility.FacilityId)}, " +
|
||||
(facility.FacilityName != null ? $"'{DbQuery.FormatForCondition(facility.FacilityName)}'" : "Null") + "," +
|
||||
(facility.Address1 != null ? $"'{DbQuery.FormatForCondition(facility.Address1)}'" : "Null") + "," +
|
||||
(facility.Address2 != null ? $"'{DbQuery.FormatForCondition(facility.Address2)}'" : "Null") + "," +
|
||||
(facility.City != null ? $"'{DbQuery.FormatForCondition(facility.City)}'" : "Null") + "," +
|
||||
(facility.PostalCode != null ? $"'{DbQuery.FormatForCondition(facility.PostalCode)}'" : "Null") + "," +
|
||||
(facility.Email != null ? $"'{DbQuery.FormatForCondition(facility.Email)}'" : "Null") + "," +
|
||||
(facility.Telephone != null ? $"'{DbQuery.FormatForCondition(facility.Telephone)}'" : "Null"));
|
||||
query.Add(") dFty");
|
||||
query.Add($"Inner Join {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince)} dPrv On dPrv.ProvinceCode=dFty.ProvinceCode");
|
||||
query.Add(") dFty");
|
||||
query.Add("On uFty.ProvinceId=dFty.ProvinceId And uFty.FacilityId=dFty.FacilityId");
|
||||
query.Add("When Matched And ((dFty.FacilityName Is Not Null And uFty.FacilityName!=dFty.FacilityName) Or uFty.Status!=@statusActive)");
|
||||
query.Add("When Matched And ((dFty.FacilityName Is Not Null And uFty.FacilityName!=dFty.FacilityName) Or (dFty.Address1 Is Not Null And uFty.Address1!=dFty.Address1) Or (dFty.Address2 Is Not Null And uFty.Address2!=dFty.Address2) Or (dFty.City Is Not Null And uFty.City!=dFty.City) Or (dFty.PostalCode Is Not Null And uFty.PostalCode!=dFty.PostalCode) Or (dFty.Email Is Not Null And uFty.Email!=dFty.Email) Or (dFty.Telephone Is Not Null And uFty.Telephone!=dFty.Telephone) Or uFty.Status!=@statusActive)");
|
||||
query.Add("Then Update Set");
|
||||
query.Add(" FacilityName=Coalesce(dFty.FacilityName,uFty.FacilityName),");
|
||||
query.Add(" Address1=Coalesce(dFty.Address1,uFty.Address1),");
|
||||
query.Add(" Address2=Coalesce(dFty.Address2,uFty.Address2),");
|
||||
query.Add(" City=Coalesce(dFty.City,uFty.City),");
|
||||
query.Add(" PostalCode=Coalesce(dFty.PostalCode,uFty.PostalCode),");
|
||||
query.Add(" Email=Coalesce(dFty.Email,uFty.Email),");
|
||||
query.Add(" Telephone=Coalesce(dFty.Telephone,uFty.Telephone),");
|
||||
query.Add(" Status=@statusActive,");
|
||||
query.Add(" UpdateOn=@updateOn,");
|
||||
query.Add(" UpdateBy=@updateBy,");
|
||||
query.Add(" UpdateHost=@updateHost");
|
||||
query.Add("When Not Matched And Len(IsNull(dFty.FacilityName,''))>0");
|
||||
query.Add("Then Insert (ProvinceId,FacilityId,FacilityName,Notes,Flags,Status,CreateOn,CreateBy,CreateHost,UpdateOn,UpdateBy,UpdateHost)");
|
||||
query.Add($"Values (dFty.ProvinceId,dFty.FacilityId,dFty.FacilityName,'',0,@statusActive,@updateOn,@updateBy,@updateHost,@updateOn,@updateBy,@updateHost)");
|
||||
query.Add("Then Insert (ProvinceId,FacilityId,FacilityName,Address1,Address2,City,PostalCode,Email,Telephone,Notes,Flags,Status,CreateOn,CreateBy,CreateHost,UpdateOn,UpdateBy,UpdateHost)");
|
||||
query.Add($"Values (dFty.ProvinceId,dFty.FacilityId,dFty.FacilityName,Coalesce(dFty.Address1,''),Coalesce(dFty.Address2,''),Coalesce(dFty.City,''),Coalesce(dFty.PostalCode,''),Coalesce(dFty.Email,''),Coalesce(dFty.Telephone,''),'',0,@statusActive,@updateOn,@updateBy,@updateHost,@updateOn,@updateBy,@updateHost)");
|
||||
query.Add(";");
|
||||
//SaLogger.Info($"{SysUtil.Fn} Bulk USGA Facility update query:\n\t{query.Concat("\n\t")}");
|
||||
|
||||
@@ -522,6 +556,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
// Item list.
|
||||
public override List<SaxGolfUsgaFacility> GetUsgaFacilityList(SaxGolfUsgaFacility.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SaxGolfUsgaFacility> userRoles = new List<SaxGolfUsgaFacility>();
|
||||
DbQuery qry = new DbQuery(ReferenceDatabase.DbmsType);
|
||||
qry.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasUsgaFacility);
|
||||
@@ -549,7 +584,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaFacilityList\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
SetErrorState("Database query exception");
|
||||
SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}");
|
||||
}
|
||||
}
|
||||
return userRoles;
|
||||
|
||||
Reference in New Issue
Block a user