コード例 #1
0
        private static bool AllergyComparison(AutomationCondition autoCond, long patNum)
        {
            List <Allergy> allergyList = Allergies.GetAll(patNum, false);

            switch (autoCond.Comparison)
            {
            case AutoCondComparison.Equals:
                for (int i = 0; i < allergyList.Count; i++)
                {
                    if (AllergyDefs.GetOne(allergyList[i].AllergyDefNum).Description == autoCond.CompareString)
                    {
                        return(true);
                    }
                }
                break;

            case AutoCondComparison.Contains:
                for (int i = 0; i < allergyList.Count; i++)
                {
                    if (AllergyDefs.GetOne(allergyList[i].AllergyDefNum).Description.ToLower().Contains(autoCond.CompareString.ToLower()))
                    {
                        return(true);
                    }
                }
                break;
            }
            return(false);
        }
コード例 #2
0
 ///<summary>Inserts one AutomationCondition into the database.  Returns the new priKey.</summary>
 public static long Insert(AutomationCondition automationCondition)
 {
     if (DataConnection.DBtype == DatabaseType.Oracle)
     {
         automationCondition.AutomationConditionNum = DbHelper.GetNextOracleKey("automationcondition", "AutomationConditionNum");
         int loopcount = 0;
         while (loopcount < 100)
         {
             try {
                 return(Insert(automationCondition, true));
             }
             catch (Oracle.ManagedDataAccess.Client.OracleException ex) {
                 if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated"))
                 {
                     automationCondition.AutomationConditionNum++;
                     loopcount++;
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else
     {
         return(Insert(automationCondition, false));
     }
 }
コード例 #3
0
 ///<summary>Inserts one AutomationCondition into the database.  Returns the new priKey.</summary>
 internal static long Insert(AutomationCondition automationCondition)
 {
     if(DataConnection.DBtype==DatabaseType.Oracle) {
         automationCondition.AutomationConditionNum=DbHelper.GetNextOracleKey("automationcondition","AutomationConditionNum");
         int loopcount=0;
         while(loopcount<100){
             try {
                 return Insert(automationCondition,true);
             }
             catch(Oracle.DataAccess.Client.OracleException ex){
                 if(ex.Number==1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")){
                     automationCondition.AutomationConditionNum++;
                     loopcount++;
                 }
                 else{
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else {
         return Insert(automationCondition,false);
     }
 }
コード例 #4
0
ファイル: AutomationL.cs プロジェクト: ChemBrain/OpenDental
        private static bool ProblemComparison(AutomationCondition autoCond, long patNum)
        {
            List <Disease> problemList = Diseases.Refresh(patNum, true);

            switch (autoCond.Comparison)             //Find out what operand to use.
            {
            case AutoCondComparison.Equals:
                for (int i = 0; i < problemList.Count; i++)                   //Includes hidden
                {
                    if (DiseaseDefs.GetName(problemList[i].DiseaseDefNum) == autoCond.CompareString)
                    {
                        return(true);
                    }
                }
                break;

            case AutoCondComparison.Contains:
                for (int i = 0; i < problemList.Count; i++)
                {
                    if (DiseaseDefs.GetName(problemList[i].DiseaseDefNum).ToLower().Contains(autoCond.CompareString.ToLower()))
                    {
                        return(true);
                    }
                }
                break;
            }
            return(false);
        }
コード例 #5
0
ファイル: AutomationL.cs プロジェクト: ChemBrain/OpenDental
        private static bool AgeComparison(AutomationCondition autoCond, long patNum)
        {
            Patient pat        = Patients.GetPat(patNum);
            int     age        = pat.Age;
            int     ageTrigger = 0;

            if (!int.TryParse(autoCond.CompareString, out ageTrigger))
            {
                return(false);               //This is only possible due to an old bug that was fixed.
            }
            switch (autoCond.Comparison)
            {
            case AutoCondComparison.Equals:
                return(age == ageTrigger);

            case AutoCondComparison.Contains:
                return(age.ToString().Contains(autoCond.CompareString));

            case AutoCondComparison.GreaterThan:
                return(age > ageTrigger);

            case AutoCondComparison.LessThan:
                return(age < ageTrigger);

            default:
                return(false);
            }
        }
コード例 #6
0
ファイル: AutomationL.cs プロジェクト: ChemBrain/OpenDental
        private static bool MedicationComparison(AutomationCondition autoCond, long patNum)
        {
            List <Medication> medList = Medications.GetMedicationsByPat(patNum);

            switch (autoCond.Comparison)
            {
            case AutoCondComparison.Equals:
                for (int i = 0; i < medList.Count; i++)
                {
                    if (medList[i].MedName == autoCond.CompareString)
                    {
                        return(true);
                    }
                }
                break;

            case AutoCondComparison.Contains:
                for (int i = 0; i < medList.Count; i++)
                {
                    if (medList[i].MedName.ToLower().Contains(autoCond.CompareString.ToLower()))
                    {
                        return(true);
                    }
                }
                break;
            }
            return(false);
        }
コード例 #7
0
        ///<summary>Inserts one AutomationCondition into the database.  Provides option to use the existing priKey.</summary>
        public static long Insert(AutomationCondition automationCondition, bool useExistingPK)
        {
            if (!useExistingPK && PrefC.RandomKeys)
            {
                automationCondition.AutomationConditionNum = ReplicationServers.GetKey("automationcondition", "AutomationConditionNum");
            }
            string command = "INSERT INTO automationcondition (";

            if (useExistingPK || PrefC.RandomKeys)
            {
                command += "AutomationConditionNum,";
            }
            command += "AutomationNum,CompareField,Comparison,CompareString) VALUES(";
            if (useExistingPK || PrefC.RandomKeys)
            {
                command += POut.Long(automationCondition.AutomationConditionNum) + ",";
            }
            command +=
                POut.Long(automationCondition.AutomationNum) + ","
                + POut.Int((int)automationCondition.CompareField) + ","
                + POut.Int((int)automationCondition.Comparison) + ","
                + "'" + POut.String(automationCondition.CompareString) + "')";
            if (useExistingPK || PrefC.RandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                automationCondition.AutomationConditionNum = Db.NonQ(command, true, "AutomationConditionNum", "automationCondition");
            }
            return(automationCondition.AutomationConditionNum);
        }
コード例 #8
0
ファイル: AutomationL.cs プロジェクト: ChemBrain/OpenDental
        private static bool LabresultComparison(AutomationCondition autoCond, long patNum)
        {
            List <LabResult> listResults = LabResults.GetAllForPatient(patNum);

            switch (autoCond.Comparison)
            {
            case AutoCondComparison.Equals:
                for (int i = 0; i < listResults.Count; i++)
                {
                    if (listResults[i].TestName == autoCond.CompareString)
                    {
                        return(true);
                    }
                }
                break;

            case AutoCondComparison.Contains:
                for (int i = 0; i < listResults.Count; i++)
                {
                    if (listResults[i].TestName.ToLower().Contains(autoCond.CompareString.ToLower()))
                    {
                        return(true);
                    }
                }
                break;
            }
            return(false);
        }
コード例 #9
0
        ///<summary>Inserts one AutomationCondition into the database.  Provides option to use the existing priKey.  Doesn't use the cache.</summary>
        public static long InsertNoCache(AutomationCondition automationCondition, bool useExistingPK)
        {
            bool   isRandomKeys = Prefs.GetBoolNoCache(PrefName.RandomPrimaryKeys);
            string command      = "INSERT INTO automationcondition (";

            if (!useExistingPK && isRandomKeys)
            {
                automationCondition.AutomationConditionNum = ReplicationServers.GetKeyNoCache("automationcondition", "AutomationConditionNum");
            }
            if (isRandomKeys || useExistingPK)
            {
                command += "AutomationConditionNum,";
            }
            command += "AutomationNum,CompareField,Comparison,CompareString) VALUES(";
            if (isRandomKeys || useExistingPK)
            {
                command += POut.Long(automationCondition.AutomationConditionNum) + ",";
            }
            command +=
                POut.Long(automationCondition.AutomationNum) + ","
                + POut.Int((int)automationCondition.CompareField) + ","
                + POut.Int((int)automationCondition.Comparison) + ","
                + "'" + POut.String(automationCondition.CompareString) + "')";
            if (useExistingPK || isRandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                automationCondition.AutomationConditionNum = Db.NonQ(command, true, "AutomationConditionNum", "automationCondition");
            }
            return(automationCondition.AutomationConditionNum);
        }
コード例 #10
0
		///<summary>Updates one AutomationCondition in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.  Returns true if an update occurred.</summary>
		public static bool Update(AutomationCondition automationCondition,AutomationCondition oldAutomationCondition){
			string command="";
			if(automationCondition.AutomationNum != oldAutomationCondition.AutomationNum) {
				if(command!=""){ command+=",";}
				command+="AutomationNum = "+POut.Long(automationCondition.AutomationNum)+"";
			}
			if(automationCondition.CompareField != oldAutomationCondition.CompareField) {
				if(command!=""){ command+=",";}
				command+="CompareField = "+POut.Int   ((int)automationCondition.CompareField)+"";
			}
			if(automationCondition.Comparison != oldAutomationCondition.Comparison) {
				if(command!=""){ command+=",";}
				command+="Comparison = "+POut.Int   ((int)automationCondition.Comparison)+"";
			}
			if(automationCondition.CompareString != oldAutomationCondition.CompareString) {
				if(command!=""){ command+=",";}
				command+="CompareString = '"+POut.String(automationCondition.CompareString)+"'";
			}
			if(command==""){
				return false;
			}
			command="UPDATE automationcondition SET "+command
				+" WHERE AutomationConditionNum = "+POut.Long(automationCondition.AutomationConditionNum);
			Db.NonQ(command);
			return true;
		}
コード例 #11
0
ファイル: AutomationConditionCrud.cs プロジェクト: mnisl/OD
		///<summary>Inserts one AutomationCondition into the database.  Provides option to use the existing priKey.</summary>
		public static long Insert(AutomationCondition automationCondition,bool useExistingPK){
			if(!useExistingPK && PrefC.RandomKeys) {
				automationCondition.AutomationConditionNum=ReplicationServers.GetKey("automationcondition","AutomationConditionNum");
			}
			string command="INSERT INTO automationcondition (";
			if(useExistingPK || PrefC.RandomKeys) {
				command+="AutomationConditionNum,";
			}
			command+="AutomationNum,CompareField,Comparison,CompareString) VALUES(";
			if(useExistingPK || PrefC.RandomKeys) {
				command+=POut.Long(automationCondition.AutomationConditionNum)+",";
			}
			command+=
				     POut.Long  (automationCondition.AutomationNum)+","
				+    POut.Int   ((int)automationCondition.CompareField)+","
				+    POut.Int   ((int)automationCondition.Comparison)+","
				+"'"+POut.String(automationCondition.CompareString)+"')";
			if(useExistingPK || PrefC.RandomKeys) {
				Db.NonQ(command);
			}
			else {
				automationCondition.AutomationConditionNum=Db.NonQ(command,true);
			}
			return automationCondition.AutomationConditionNum;
		}
コード例 #12
0
ファイル: AutomationL.cs プロジェクト: ChemBrain/OpenDental
        private static bool NeedsSheet(AutomationCondition autoCond, long patNum)
        {
            List <Sheet> sheetList = Sheets.GetForPatientForToday(patNum);

            switch (autoCond.Comparison)             //Find out what operand to use.
            {
            case AutoCondComparison.Equals:
                //Loop through every sheet to find one that matches the condition.
                for (int i = 0; i < sheetList.Count; i++)
                {
                    if (sheetList[i].Description == autoCond.CompareString)                           //Operand based on AutoCondComparison.
                    {
                        return(true);
                    }
                }
                break;

            case AutoCondComparison.Contains:
                for (int i = 0; i < sheetList.Count; i++)
                {
                    if (sheetList[i].Description.ToLower().Contains(autoCond.CompareString.ToLower()))
                    {
                        return(true);
                    }
                }
                break;
            }
            return(false);
        }
コード例 #13
0
		///<summary>Updates one AutomationCondition in the database.</summary>
		public static void Update(AutomationCondition automationCondition){
			string command="UPDATE automationcondition SET "
				+"AutomationNum         =  "+POut.Long  (automationCondition.AutomationNum)+", "
				+"CompareField          =  "+POut.Int   ((int)automationCondition.CompareField)+", "
				+"Comparison            =  "+POut.Int   ((int)automationCondition.Comparison)+", "
				+"CompareString         = '"+POut.String(automationCondition.CompareString)+"' "
				+"WHERE AutomationConditionNum = "+POut.Long(automationCondition.AutomationConditionNum);
			Db.NonQ(command);
		}
コード例 #14
0
        public async Task <bool> Meet(AutomationCondition automationCondition, AutomationContext context, CancellationToken cancellationToken)
        {
            var condition = (FieldAutomationCondition)automationCondition;

            var entity = await _automationContextProvider.GetEntity(context, cancellationToken);

            var props = condition.Props;

            var result = false;

            // todo: move to automation context provider (?)
            var property = entity.GetType().GetProperty(props.Field);

            if (property != null)
            {
                var getMethod = property.GetGetMethod();

                if (getMethod != null)
                {
                    var value = Convert.ToString(getMethod.Invoke(entity, null));

                    var compareResult = string.Compare(value, props.Value, StringComparison.OrdinalIgnoreCase);

                    switch (props.Operator)
                    {
                    case AutomationConditionOperator.Equal:
                        result = compareResult == 0;
                        break;

                    case AutomationConditionOperator.NotEqual:
                        result = compareResult != 0;
                        break;

                    case AutomationConditionOperator.LessThan:
                        result = compareResult < 0;
                        break;

                    case AutomationConditionOperator.LessThanEqual:
                        result = compareResult <= 0;
                        break;

                    case AutomationConditionOperator.GreaterThan:
                        result = compareResult > 0;
                        break;

                    case AutomationConditionOperator.GreaterThanEqual:
                        result = compareResult >= 0;
                        break;

                    default:
                        throw new InvalidOperationException($"Operator {props.Operator} is not supported.");
                    }
                }
            }

            return(result);
        }
コード例 #15
0
		///<summary>Inserts one AutomationCondition into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
		public static long InsertNoCache(AutomationCondition automationCondition){
			if(DataConnection.DBtype==DatabaseType.MySql) {
				return InsertNoCache(automationCondition,false);
			}
			else {
				if(DataConnection.DBtype==DatabaseType.Oracle) {
					automationCondition.AutomationConditionNum=DbHelper.GetNextOracleKey("automationcondition","AutomationConditionNum"); //Cacheless method
				}
				return InsertNoCache(automationCondition,true);
			}
		}
コード例 #16
0
ファイル: AutomationL.cs プロジェクト: ChemBrain/OpenDental
 ///<summary>Returns true if at least one RxPat has a patient letter filled out.</summary>
 private static bool IsPatientInstructionPresent <T>(AutomationCondition autoCond, long patNum, T triggerObj)
 {
     try {
         List <RxPat> listRx = (List <RxPat>)(object) triggerObj;
         return(listRx.Any(x => !String.IsNullOrWhiteSpace(x.PatientInstruction)));
     }
     catch (Exception e) {
         e.DoNothing();
         return(false);
     }
 }
コード例 #17
0
ファイル: AutomationL.cs プロジェクト: ChemBrain/OpenDental
 ///<summary>Returns true if the patient is a RxPat and if IsControlled is true</summary>
 ///ONLY TO BE USED FOR RxCreate AUTOMATION TRIGGER
 private static bool IsControlledComparison <T>(AutomationCondition autoCond, long patNum, T triggerObj)
 {
     try {
         List <RxPat> listRx = (List <RxPat>)(object) triggerObj;
         return(listRx.Any(x => x.IsControlled));
     }
     catch (Exception e) {
         e.DoNothing();
         return(false);
     }
 }
コード例 #18
0
        public async Task <bool> Meet(AutomationCondition automationCondition, AutomationContext context, CancellationToken cancellationToken)
        {
            var condition = (GroupAutomationCondition)automationCondition;

            var props = condition.Props;

            if (props.Meet == AutomationConditionMeet.All)
            {
                return(await MeetAll(props.Conditions, context, cancellationToken));
            }

            return(await MeetAny(props.Conditions, context, cancellationToken));
        }
コード例 #19
0
		///<summary>Converts a DataTable to a list of objects.</summary>
		public static List<AutomationCondition> TableToList(DataTable table){
			List<AutomationCondition> retVal=new List<AutomationCondition>();
			AutomationCondition automationCondition;
			foreach(DataRow row in table.Rows) {
				automationCondition=new AutomationCondition();
				automationCondition.AutomationConditionNum= PIn.Long  (row["AutomationConditionNum"].ToString());
				automationCondition.AutomationNum         = PIn.Long  (row["AutomationNum"].ToString());
				automationCondition.CompareField          = (OpenDentBusiness.AutoCondField)PIn.Int(row["CompareField"].ToString());
				automationCondition.Comparison            = (OpenDentBusiness.AutoCondComparison)PIn.Int(row["Comparison"].ToString());
				automationCondition.CompareString         = PIn.String(row["CompareString"].ToString());
				retVal.Add(automationCondition);
			}
			return retVal;
		}
コード例 #20
0
ファイル: AutomationConditionCrud.cs プロジェクト: mnisl/OD
		///<summary>Converts a DataTable to a list of objects.</summary>
		public static List<AutomationCondition> TableToList(DataTable table){
			List<AutomationCondition> retVal=new List<AutomationCondition>();
			AutomationCondition automationCondition;
			for(int i=0;i<table.Rows.Count;i++) {
				automationCondition=new AutomationCondition();
				automationCondition.AutomationConditionNum= PIn.Long  (table.Rows[i]["AutomationConditionNum"].ToString());
				automationCondition.AutomationNum         = PIn.Long  (table.Rows[i]["AutomationNum"].ToString());
				automationCondition.CompareField          = (OpenDentBusiness.AutoCondField)PIn.Int(table.Rows[i]["CompareField"].ToString());
				automationCondition.Comparison            = (OpenDentBusiness.AutoCondComparison)PIn.Int(table.Rows[i]["Comparison"].ToString());
				automationCondition.CompareString         = PIn.String(table.Rows[i]["CompareString"].ToString());
				retVal.Add(automationCondition);
			}
			return retVal;
		}
コード例 #21
0
		///<summary>Returns true if Update(AutomationCondition,AutomationCondition) would make changes to the database.
		///Does not make any changes to the database and can be called before remoting role is checked.</summary>
		public static bool UpdateComparison(AutomationCondition automationCondition,AutomationCondition oldAutomationCondition) {
			if(automationCondition.AutomationNum != oldAutomationCondition.AutomationNum) {
				return true;
			}
			if(automationCondition.CompareField != oldAutomationCondition.CompareField) {
				return true;
			}
			if(automationCondition.Comparison != oldAutomationCondition.Comparison) {
				return true;
			}
			if(automationCondition.CompareString != oldAutomationCondition.CompareString) {
				return true;
			}
			return false;
		}
コード例 #22
0
ファイル: AutomationL.cs プロジェクト: ChemBrain/OpenDental
        private static bool GenderComparison(AutomationCondition autoCond, long patNum)
        {
            Patient pat = Patients.GetPat(patNum);

            switch (autoCond.Comparison)
            {
            case AutoCondComparison.Equals:
                return(pat.Gender.ToString().Substring(0, 1).ToLower() == autoCond.CompareString.ToLower());

            case AutoCondComparison.Contains:
                return(pat.Gender.ToString().Substring(0, 1).ToLower().Contains(autoCond.CompareString.ToLower()));

            default:
                return(false);
            }
        }
コード例 #23
0
ファイル: AutomationL.cs プロジェクト: ChemBrain/OpenDental
        private static bool AllergyComparison(AutomationCondition autoCond, long patNum)
        {
            List <AllergyDef> listAllergyDefs = AllergyDefs.GetAllergyDefs(patNum, false);

            switch (autoCond.Comparison)
            {
            case AutoCondComparison.Equals:
                return(listAllergyDefs.Any(x => x.Description == autoCond.CompareString));

            case AutoCondComparison.Contains:
                return(listAllergyDefs.Any(x => x.Description.ToLower().Contains(autoCond.CompareString.ToLower())));

            default:
                return(false);
            }
        }
コード例 #24
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <AutomationCondition> TableToList(DataTable table)
        {
            List <AutomationCondition> retVal = new List <AutomationCondition>();
            AutomationCondition        automationCondition;

            for (int i = 0; i < table.Rows.Count; i++)
            {
                automationCondition = new AutomationCondition();
                automationCondition.AutomationConditionNum = PIn.Long(table.Rows[i]["AutomationConditionNum"].ToString());
                automationCondition.AutomationNum          = PIn.Long(table.Rows[i]["AutomationNum"].ToString());
                automationCondition.CompareField           = (AutoCondField)PIn.Int(table.Rows[i]["CompareField"].ToString());
                automationCondition.Comparison             = (AutoCondComparison)PIn.Int(table.Rows[i]["Comparison"].ToString());
                automationCondition.CompareString          = PIn.String(table.Rows[i]["CompareString"].ToString());
                retVal.Add(automationCondition);
            }
            return(retVal);
        }
コード例 #25
0
ファイル: AutomationL.cs プロジェクト: ChemBrain/OpenDental
        ///<summary>Returns false if the insurance plan is effective.  True if today is outside of the insurance effective date range.</summary>
        private static bool InsuranceNotEffectiveComparison(AutomationCondition autoCond, long patNum)
        {
            PatPlan patPlanCur = PatPlans.GetPatPlan(patNum, 1);

            if (patPlanCur == null)
            {
                return(false);
            }
            InsSub insSubCur = InsSubs.GetOne(patPlanCur.InsSubNum);

            if (insSubCur == null)
            {
                return(false);
            }
            if (DateTime.Today >= insSubCur.DateEffective && DateTime.Today <= insSubCur.DateTerm)
            {
                return(false);               //Allen - Not not effective
            }
            return(true);
        }
コード例 #26
0
ファイル: AutomationL.cs プロジェクト: ChemBrain/OpenDental
        ///<summary>Returns true if the patient's billing type matches the autocondition billing type.</summary>
        private static bool BillingTypeComparison(AutomationCondition autoCond, long patNum)
        {
            Patient pat         = Patients.GetPat(patNum);
            Def     patBillType = Defs.GetDef(DefCat.BillingTypes, pat.BillingType);

            if (patBillType == null)
            {
                return(false);
            }
            switch (autoCond.Comparison)
            {
            case AutoCondComparison.Equals:
                return(patBillType.ItemName.ToLower() == autoCond.CompareString.ToLower());

            case AutoCondComparison.Contains:
                return(patBillType.ItemName.ToLower().Contains(autoCond.CompareString.ToLower()));

            default:
                return(false);
            }
        }
コード例 #27
0
        private static bool AgeComparison(AutomationCondition autoCond, long patNum)
        {
            Patient pat = Patients.GetPat(patNum);
            int     age = pat.Age;

            switch (autoCond.Comparison)
            {
            case AutoCondComparison.Equals:
                return(age == PIn.Int(autoCond.CompareString));

            case AutoCondComparison.Contains:
                return(age.ToString().Contains(autoCond.CompareString));

            case AutoCondComparison.GreaterThan:
                return(age > PIn.Int(autoCond.CompareString));

            case AutoCondComparison.LessThan:
                return(age < PIn.Int(autoCond.CompareString));

            default:
                return(false);
            }
        }
コード例 #28
0
 ///<summary>Inserts one AutomationCondition into the database.  Returns the new priKey.</summary>
 public static long Insert(AutomationCondition automationCondition)
 {
     return(Insert(automationCondition, false));
 }
コード例 #29
0
ファイル: AutomationConditionCrud.cs プロジェクト: mnisl/OD
		///<summary>Updates one AutomationCondition in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.  Returns true if an update occurred.</summary>
		public static bool Update(AutomationCondition automationCondition,AutomationCondition oldAutomationCondition){
			string command="";
			if(automationCondition.AutomationNum != oldAutomationCondition.AutomationNum) {
				if(command!=""){ command+=",";}
				command+="AutomationNum = "+POut.Long(automationCondition.AutomationNum)+"";
			}
			if(automationCondition.CompareField != oldAutomationCondition.CompareField) {
				if(command!=""){ command+=",";}
				command+="CompareField = "+POut.Int   ((int)automationCondition.CompareField)+"";
			}
			if(automationCondition.Comparison != oldAutomationCondition.Comparison) {
				if(command!=""){ command+=",";}
				command+="Comparison = "+POut.Int   ((int)automationCondition.Comparison)+"";
			}
			if(automationCondition.CompareString != oldAutomationCondition.CompareString) {
				if(command!=""){ command+=",";}
				command+="CompareString = '"+POut.String(automationCondition.CompareString)+"'";
			}
			if(command==""){
				return false;
			}
			command="UPDATE automationcondition SET "+command
				+" WHERE AutomationConditionNum = "+POut.Long(automationCondition.AutomationConditionNum);
			Db.NonQ(command);
			return true;
		}
コード例 #30
0
ファイル: AutomationConditionCrud.cs プロジェクト: mnisl/OD
		///<summary>Updates one AutomationCondition in the database.</summary>
		public static void Update(AutomationCondition automationCondition){
			string command="UPDATE automationcondition SET "
				+"AutomationNum         =  "+POut.Long  (automationCondition.AutomationNum)+", "
				+"CompareField          =  "+POut.Int   ((int)automationCondition.CompareField)+", "
				+"Comparison            =  "+POut.Int   ((int)automationCondition.Comparison)+", "
				+"CompareString         = '"+POut.String(automationCondition.CompareString)+"' "
				+"WHERE AutomationConditionNum = "+POut.Long(automationCondition.AutomationConditionNum);
			Db.NonQ(command);
		}
コード例 #31
0
ファイル: AutomateDbGenerator.cs プロジェクト: montr/montr
 public Task <bool> Meet(AutomationCondition automationCondition, AutomationContext context, CancellationToken cancellationToken)
 {
     return(Task.FromResult(false));
 }
コード例 #32
0
        private async Task <bool> MeetCondition(AutomationCondition condition, AutomationContext context, CancellationToken cancellationToken)
        {
            var provider = _providerRegistry.GetConditionProvider(condition.Type);

            return(await provider.Meet(condition, context, cancellationToken));
        }