diff --git a/server/AyaNova/biz/ContractBiz.cs b/server/AyaNova/biz/ContractBiz.cs index e6e14a29..01ba94ca 100644 --- a/server/AyaNova/biz/ContractBiz.cs +++ b/server/AyaNova/biz/ContractBiz.cs @@ -214,6 +214,7 @@ namespace AyaNova.Biz .AddText(obj.Name) .AddText(obj.Wiki) .AddText(obj.Tags) + .AddText(obj.AlertNotes) .AddCustomFields(obj.CustomFields); } @@ -245,6 +246,109 @@ namespace AyaNova.Biz } + //VALIDATE TAGGED ITEMS + + if (proposedObj.ContractPartOverrideItems.Count > 1) + { + List allTags = new List(); + + for (int i = 0; i < proposedObj.ContractPartOverrideItems.Count; i++) + { + var item = proposedObj.ContractPartOverrideItems[i]; + if (item.Tags.Count < 1) + AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Tags"); + else + { + //add to list, check for dupes + foreach (string s in item.Tags) + { + if (allTags.Contains(s)) + { + AddError(ApiErrorCode.VALIDATION_NOT_UNIQUE, $"ContractPartOverrideItems[{i}].Tags"); + break; + } + else + { + allTags.Add(s); + } + } + } + if (item.Override == 0) + AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Override"); + if (item.OverrideType == ContractOverrideType.NotSet) + AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].OverrideType"); + } + } + + if (proposedObj.ContractServiceRateOverrideItems.Count > 1) + { + List allTags = new List(); + //check for overlapping dupes + for (int i = 0; i < proposedObj.ContractServiceRateOverrideItems.Count; i++) + { + var item = proposedObj.ContractServiceRateOverrideItems[i]; + if (item.Tags.Count < 1) + AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractServiceRateOverrideItems[{i}].Tags"); + else + { + //add to list, check for dupes + foreach (string s in item.Tags) + { + if (allTags.Contains(s)) + { + AddError(ApiErrorCode.VALIDATION_NOT_UNIQUE, $"ContractServiceRateOverrideItems[{i}].Tags"); + break; + } + else + { + allTags.Add(s); + } + } + } + if (item.Override == 0) + AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Override"); + if (item.OverrideType == ContractOverrideType.NotSet) + AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].OverrideType"); + } + } + + if (proposedObj.ContractTravelRateOverrideItems.Count > 1) + { + List allTags = new List(); + //check for overlapping dupes + for (int i = 0; i < proposedObj.ContractTravelRateOverrideItems.Count; i++) + { + var item = proposedObj.ContractTravelRateOverrideItems[i]; + if (item.Tags.Count < 1) + AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractTravelRateOverrideItems[{i}].Tags"); + else + { + //add to list, check for dupes + foreach (string s in item.Tags) + { + if (allTags.Contains(s)) + { + AddError(ApiErrorCode.VALIDATION_NOT_UNIQUE, $"ContractTravelRateOverrideItems[{i}].Tags"); + break; + } + else + { + allTags.Add(s); + } + } + } + if (item.Override == 0) + AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Override"); + if (item.OverrideType == ContractOverrideType.NotSet) + AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].OverrideType"); + } + } + + + + + + //Any form customizations to validate? var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(x => x.FormKey == AyaType.Contract.ToString()); if (FormCustomization != null) @@ -319,7 +423,7 @@ namespace AyaNova.Biz return await GetReportData(idList); } - +