static void Main(string[] args) { DataClasses1DataContext db = new DataClasses1DataContext(); List <Rule> RuleList = db.Rules.Where(x => x.QID == 188).ToList(); Console.WriteLine("Rules found: " + RuleList.Count + ". Continue?"); Console.ReadLine(); JavaScriptSerializer serializer = new JavaScriptSerializer(); foreach (Rule rule in RuleList) { if (rule.Type == 1) { CostingRule crule = serializer.Deserialize <CostingRule>(rule.Properties); crule.Id = rule.ID; rule.Properties = serializer.Serialize(crule); } if (rule.Type == 2) { ServiceRule crule = serializer.Deserialize <ServiceRule>(rule.Properties); crule.Id = rule.ID; rule.Properties = serializer.Serialize(crule); } } var changeSet = db.GetChangeSet(); Console.WriteLine("Changes: " + changeSet.Updates.ToString()); Console.ReadLine(); db.SubmitChanges(); }
public void Optimize() { var rule = new ServiceRule("Win8InstallToolTest", "descr", ServiceState.Disabled); Assert.IsTrue(rule.NeedOptimize()); rule.Optimize(); using var controller = new ServiceController("Win8InstallToolTest"); Assert.AreEqual(controller.StartType, ServiceStartMode.Disabled); }
/// <summary> /// Check the service rul, then the parcel type rules. /// </summary> /// <param name="serviceRule"></param> public void Visit(ServiceRule serviceRule) { if (_rate.ServiceId == null || _rate.ServiceId != serviceRule.ServiceId) { return; } if (!serviceRule.ParcelTypeRules.ContainsKey((ParcelType)_rate.ParcelType)) { _state = ValidationState.INVALID; Reason = string.Format("Service {0} does not support parcel type {1}", serviceRule.ServiceId, _rate.ParcelType); return; } foreach (var rule in serviceRule.ParcelTypeRules[(ParcelType)_rate.ParcelType]) { if (_state == ValidationState.PROCESSING) { rule.Accept(this); } } }
public static RatesArrayFluent <T> RateFromRule <T>(this RatesArrayFluent <T> f, CarrierRule carrierRule, ServiceRule serviceRule, ParcelTypeRule parcelTypeRule) where T : class, IRates, new() { return(f .Carrier(carrierRule.Carrier) .ParcelType(parcelTypeRule.ParcelType) .Service(serviceRule.ServiceId)); }
/// <summary> /// Finds the patient. /// </summary> /// <param name="facilityId">The facility identifier.</param> /// <param name="lastname">The lastname.</param> /// <param name="middlename">The middlename.</param> /// <param name="firstname">The firstname.</param> /// <param name="enrollment">The enrollment.</param> /// <param name="gender">The gender.</param> /// <param name="status">The status.</param> /// <param name="dob">The dob.</param> /// <param name="registrationDate">The registration date.</param> /// <param name="moduleId">The module identifier.</param> /// <param name="maxRecords">The maximum records.</param> /// <returns></returns> public static DataTable FindPatient(int facilityId, string lastname, string middlename, string firstname, string enrollment, string gender, string status, DateTime?dob, DateTime?registrationDate, int moduleId = 999, int maxRecords = 100, string phoneNumber = "", string identifierName = "") { IPatientRegistration pMgr = (IPatientRegistration)ObjectFactory.CreateInstance("BusinessProcess.Clinical.BPatientRegistration, BusinessProcess.Clinical"); string rowFilter = ""; string rowFilter2 = ""; string ruleOne = ""; string ruleOneAge = ""; string ruleTwoAge = ""; string rule1Sex = ""; string rule2Sex = ""; string ruletwo = ""; if (moduleId < 999) { IModule moduleMgr = (IModule)ObjectFactory.CreateInstance("BusinessProcess.FormBuilder.BModule, BusinessProcess.FormBuilder"); List <ServiceRule> rules = moduleMgr.GetBusinessRule(moduleId); if (rules != null && rules.Count > 0) { ServiceRule setOneAge = rules.Where(r => r.RuleSet == 1 && r.RuleReferenceId == "ACTIVE_AGE_RANGE_YEARS").FirstOrDefault(); List <ServiceRule> setOneFemale = rules.Where(r => r.RuleSet == 1 && r.RuleReferenceId == "ACTIVE_FEMALE").ToList(); List <ServiceRule> setOneMale = rules.Where(r => r.RuleSet == 1 && r.RuleReferenceId == "ACTIVE_MALE").ToList(); if (setOneAge != null) { if (setOneAge.MinValue != "" || setOneAge.MaxValue != "") { rowFilter = string.Format("{0} Age >= {1} And Age <= {2} ", rowFilter, Convert.ToDecimal(setOneAge.MinValue), Convert.ToDecimal(setOneAge.MaxValue)); ruleOne = string.Format("And (convert(varchar,round(cast(datediff(dd,DOB,DateofDeath)/365.25 as decimal(5,2)),2))) between {0} and {1})", setOneAge.MinValue, setOneAge.MaxValue); ruleOneAge = string.Format(" (Age between {0} and {1}) ", setOneAge.MinValue, setOneAge.MaxValue); } } if (setOneFemale != null && setOneFemale.Count > 0 && setOneMale != null && setOneMale.Count > 0) { } else { if (setOneFemale.Count > 0) { if (rowFilter != "") { rowFilter = rowFilter + " and "; } rowFilter = string.Format("{0} Sex = '{1}' ", rowFilter, "Female"); ruleOne += " And (Sex = 17) "; rule1Sex = "(Sex = 'Female')"; } else if (setOneMale.Count > 0) { if (rowFilter != "") { rowFilter = rowFilter + " and "; } rowFilter = string.Format("{0} Sex = '{1}' ", rowFilter, "male"); ruleOne += " And (Sex = 16) "; rule1Sex = "(Sex = 'Male')"; } } ServiceRule set2Age = rules.Where(r => r.RuleSet == 2 && r.RuleReferenceId == "ACTIVE_AGE_RANGE_YEARS").FirstOrDefault(); List <ServiceRule> set2Female = rules.Where(r => r.RuleSet == 2 && r.RuleReferenceId == "ACTIVE_FEMALE").ToList(); List <ServiceRule> set2Male = rules.Where(r => r.RuleSet == 2 && r.RuleReferenceId == "ACTIVE_MALE").ToList(); if (set2Age != null) { if (set2Age.MinValue != "" || set2Age.MaxValue != "") { rowFilter2 = string.Format("{0} Age >= {1} And Age <= {2} ", rowFilter2, Convert.ToDecimal(set2Age.MinValue), Convert.ToDecimal(set2Age.MaxValue)); ruletwo = string.Format("And (convert(varchar,round(cast(datediff(dd,DOB,DateofDeath)/365.25 as decimal(5,2)),2))) between {0} and {1})", setOneAge.MinValue, setOneAge.MaxValue); ruleTwoAge = string.Format(" (Age between {0} and {1})", set2Age.MinValue, set2Age.MaxValue); } if (set2Female != null && set2Female.Count > 0 && set2Male != null && set2Male.Count > 0) { } else { if (set2Female.Count > 0) { if (rowFilter2 != "") { rowFilter2 = rowFilter2 + " and "; } rowFilter2 = string.Format("{0} Sex = '{1}' ", rowFilter2, "Female"); ruletwo += " And (Sex = 17) "; rule2Sex = " (Sex = 'Female') "; } else if (set2Male.Count > 0) { if (rowFilter2 != "") { rowFilter2 = rowFilter2 + " and "; } rowFilter2 = string.Format("{0} Sex = '{1}' ", rowFilter2, "male"); ruletwo += " And (Sex = 16) "; rule2Sex = " (Sex = 'Male') "; } } string mainRowFilter = rowFilter; if (rowFilter2 != "") { mainRowFilter = mainRowFilter + " or (" + rowFilter2 + " )"; } //dtPatient.DefaultView.RowFilter = mainRowFilter; } } ruleOne = ruleOneAge.Trim() + (rule1Sex.Trim() != "" ? " And " + rule1Sex.Trim() : ""); ruletwo = ruleTwoAge.Trim() + (rule2Sex.Trim() != "" ? " And " + rule2Sex.Trim() : ""); if (ruleOne.Trim() != "" && ruletwo.Trim() != "") { rowFilter = string.Format(" Where ( {0} or ( {1}))", ruleOne, ruletwo); } else if (ruleOne.Trim() != "") { rowFilter = " Where " + ruleOne; } else if (ruletwo.Trim() != "") { rowFilter = " Where " + ruletwo; } } DataTable dtPatient = pMgr.GetPatientSearchResults(facilityId, lastname, middlename, firstname, enrollment, gender, status, dob, registrationDate, moduleId, maxRecords, rowFilter, phoneNumber, identifierName); // DataTable dt = dtPatient.DefaultView.ToTable(); return(dtPatient); }
/// <summary> /// Binds the module by business rules. /// </summary> /// <param name="dt">The dt.</param> /// <param name="patientAge">The patient age.</param> /// <param name="patientSex">The patient sex.</param> public static List <ServiceArea> FilterModuleByBusinessRules(List <ServiceArea> dt, double patientAge, string patientSex) { IModule moduleMgr = (IModule)ObjectFactory.CreateInstance("BusinessProcess.FormBuilder.BModule, BusinessProcess.FormBuilder"); List <ServiceRule> rules = moduleMgr.GetBusinessRule(null); List <ServiceArea> list = dt.Where(r => r.EnrolFlag == true).ToList(); list.RemoveAll(item => { int moduleId = item.Id; ServiceRule setOneAge = rules.Where(r => r.RuleSet == 1 && r.RuleReferenceId == "ACTIVE_AGE_RANGE_YEARS" && r.ServiceAreaId == moduleId).FirstOrDefault(); List <ServiceRule> setOneFemale = rules.Where(r => r.RuleSet == 1 && r.RuleReferenceId == "ACTIVE_FEMALE" && r.ServiceAreaId == moduleId).ToList(); List <ServiceRule> setOneMale = rules.Where(r => r.RuleSet == 1 && r.RuleReferenceId == "ACTIVE_MALE" && r.ServiceAreaId == moduleId).ToList(); bool setOneFlag = true; bool setTwoFlag = false; if (setOneAge != null) { if (setOneAge.MinValue != "0" || setOneAge.MaxValue != "0") { if (patientAge >= Convert.ToDouble(setOneAge.MinValue) && patientAge <= Convert.ToDouble(setOneAge.MaxValue)) { } else { setOneFlag = false; } } } if (setOneFemale != null && setOneFemale.Count > 0 && setOneMale != null && setOneMale.Count > 0) { } else { if (setOneFemale.Count > 0 && patientSex == "Male") { setOneFlag = false; } else if (setOneMale.Count > 0 && patientSex == "Female") { setOneFlag = false; } } ServiceRule set2Age = rules.Where(r => r.RuleSet == 2 && r.RuleReferenceId == "ACTIVE_AGE_RANGE_YEARS" && r.ServiceAreaId == moduleId).FirstOrDefault(); List <ServiceRule> set2Female = rules.Where(r => r.RuleSet == 2 && r.RuleReferenceId == "ACTIVE_FEMALE" && r.ServiceAreaId == moduleId).ToList(); List <ServiceRule> set2Male = rules.Where(r => r.RuleSet == 2 && r.RuleReferenceId == "ACTIVE_MALE" && r.ServiceAreaId == moduleId).ToList(); if (set2Age != null) { if (patientAge >= Convert.ToDouble(set2Age.MinValue) && patientAge <= Convert.ToDouble(set2Age.MaxValue)) { } else { setTwoFlag = false; } } if (set2Female != null && set2Female.Count > 0 && set2Male != null && set2Male.Count > 0) { } else { if (set2Female.Count > 0 && patientSex == "Male") { setTwoFlag = false; } else if (set2Male.Count > 0 && patientSex == "Female") { setTwoFlag = false; } } return(!setTwoFlag && !setOneFlag); }); return(list); }
protected void AddRuleBroke(ServiceRule rule) { _brokenRules.Add(rule); }