internal static OracleDynamicParameters GetTextTemplateSaveUpdateQueryParams(TextTemplateDTO textTemplate) { OracleDynamicParameters dynamicParameters = new OracleDynamicParameters(); var isactive = textTemplate.IsActive ? 1 : 0; var isAttachPSSLink = textTemplate.AttachPSSLink ? 1 : 0; var isVideoAppoinment = textTemplate.IsVideoAppoinment ? 1 : 0; var levelOfCareParam = AssocativeArraysConverter .ConvertCollectionToPLSQLAssociativeArray(textTemplate.OfficialLevelOfCare, "p_offLevelOfCare"); var contactTypeParam = AssocativeArraysConverter .ConvertCollectionToPLSQLAssociativeArray(textTemplate.ContactType, "p_contactType"); dynamicParameters.AddDynamicParams(levelOfCareParam); dynamicParameters.AddDynamicParams(contactTypeParam); dynamicParameters.Add("p_oldSMSTextID", GuidConvert.ToRaw(textTemplate.TemplateGUID), OracleMappingType.Raw, ParameterDirection.Input); dynamicParameters.Add("p_ruleSetGuid", GuidConvert.ToRaw(textTemplate.RuleSetGUID), OracleMappingType.Raw, ParameterDirection.Input); dynamicParameters.Add("p_hospitalID", textTemplate.HospitalID, OracleMappingType.Long, ParameterDirection.Input); dynamicParameters.Add("p_departmentID", textTemplate.DepartmentID, OracleMappingType.Long, ParameterDirection.Input); dynamicParameters.Add("p_OPDID", textTemplate.OPDID, OracleMappingType.Long, ParameterDirection.Input); dynamicParameters.Add("p_locationID", textTemplate.LocationID, OracleMappingType.Long, ParameterDirection.Input); dynamicParameters.Add("p_sectionID", textTemplate.SectionID, OracleMappingType.Long, ParameterDirection.Input); dynamicParameters.Add("p_wardID", textTemplate.WardID, OracleMappingType.Long, ParameterDirection.Input); dynamicParameters.Add("p_SMSTextName", textTemplate.Name, OracleMappingType.Varchar2, ParameterDirection.Input); dynamicParameters.Add("p_SMSText", textTemplate.SMSText, OracleMappingType.Varchar2, ParameterDirection.Input); dynamicParameters.Add("p_SMSTextTempID", GuidConvert.ToRaw(textTemplate.GroupedTextGUID), OracleMappingType.Raw, ParameterDirection.Input); dynamicParameters.Add("p_validFrom", textTemplate.ValidFrom, OracleMappingType.Date, ParameterDirection.Input); dynamicParameters.Add("p_validTo", textTemplate.ValidTo, OracleMappingType.Date, ParameterDirection.Input); dynamicParameters.Add("p_isActive", isactive, OracleMappingType.Int16, ParameterDirection.Input); dynamicParameters.Add("p_sendPSSLink", isAttachPSSLink, OracleMappingType.Int16, ParameterDirection.Input); dynamicParameters.Add("p_isVideoCall", isVideoAppoinment, OracleMappingType.Int16, ParameterDirection.Input); dynamicParameters.Add("l_SMSTEXTID", null, OracleMappingType.Raw, ParameterDirection.ReturnValue, 16); return(dynamicParameters); }
public override void SetRangeInHash(string key, IEnumerable <KeyValuePair <string, string> > keyValuePairs) { if (key == null) { throw new ArgumentNullException(nameof(key)); } if (keyValuePairs == null) { throw new ArgumentNullException(nameof(keyValuePairs)); } _storage.UseTransaction(connection => { foreach (var keyValuePair in keyValuePairs) { var oracleDynamicParameters = new OracleDynamicParameters(); oracleDynamicParameters.AddDynamicParams(new { KEY = key, FIELD = keyValuePair.Key }); oracleDynamicParameters.Add("VALUE", keyValuePair.Value, OracleMappingType.NClob, ParameterDirection.Input); connection.Execute( @" MERGE INTO HF_HASH H USING (SELECT 1 FROM DUAL) SRC ON (H.KEY = :KEY AND H.FIELD = :FIELD) WHEN MATCHED THEN UPDATE SET VALUE = :VALUE WHEN NOT MATCHED THEN INSERT (ID, KEY, FIELD, VALUE) VALUES (HF_SEQUENCE.NEXTVAL, :KEY, :FIELD, :VALUE) ", oracleDynamicParameters); } }); }
public override void SetJobParameter(string id, string name, string value) { if (id == null) { throw new ArgumentNullException(nameof(id)); } if (name == null) { throw new ArgumentNullException(nameof(name)); } _storage.UseConnection(connection => { var oracleDynamicParameters = new OracleDynamicParameters(); oracleDynamicParameters.AddDynamicParams(new { JOB_ID = id, NAME = name }); oracleDynamicParameters.Add("VALUE", value, OracleMappingType.NClob, ParameterDirection.Input); connection.Execute( @" MERGE INTO HF_JOB_PARAMETER JP USING (SELECT 1 FROM DUAL) SRC ON (JP.NAME = :NAME AND JP.JOB_ID = :JOB_ID) WHEN MATCHED THEN UPDATE SET VALUE = :VALUE WHEN NOT MATCHED THEN INSERT (ID, JOB_ID, NAME, VALUE) VALUES (HF_SEQUENCE.NEXTVAL, :JOB_ID, :NAME, :VALUE) ", oracleDynamicParameters); }); }
public override void SetJobState(string jobId, IState state) { Logger.TraceFormat("SetJobState jobId={0}", jobId); AcquireStateLock(); AcquireJobLock(); var stateId = _storage.UseConnection(connection => connection.GetNextId()); var oracleDynamicParameters = new OracleDynamicParameters(); oracleDynamicParameters.AddDynamicParams(new { STATE_ID = stateId, JOB_ID = jobId, NAME = state.Name, REASON = state.Reason, CREATED_AT = DateTime.UtcNow, ID = jobId }); oracleDynamicParameters.Add("DATA", JobHelper.ToJson(state.SerializeData()), OracleMappingType.NClob, ParameterDirection.Input); QueueCommand(x => x.Execute( @" BEGIN INSERT INTO HF_JOB_STATE (ID, JOB_ID, NAME, REASON, CREATED_AT, DATA) VALUES (:STATE_ID, :JOB_ID, :NAME, :REASON, :CREATED_AT, :DATA); UPDATE HF_JOB SET STATE_ID = :STATE_ID, STATE_NAME = :NAME WHERE ID = :ID; END; ", oracleDynamicParameters)); }
public override void AddJobState(string jobId, IState state) { Logger.TraceFormat("AddJobState jobId={0}, state={1}", jobId, state); AcquireStateLock(); var oracleDynamicParameters = new OracleDynamicParameters(); oracleDynamicParameters.AddDynamicParams(new { JOB_ID = jobId, NAME = state.Name, REASON = state.Reason, CREATED_AT = DateTime.UtcNow }); oracleDynamicParameters.Add("DATA", JobHelper.ToJson(state.SerializeData()), OracleMappingType.NClob, ParameterDirection.Input); QueueCommand(x => x.Execute( " INSERT INTO HF_JOB_STATE (ID, JOB_ID, NAME, REASON, CREATED_AT, DATA) " + " VALUES (HF_SEQUENCE.NEXTVAL, :JOB_ID, :NAME, :REASON, :CREATED_AT, :DATA)", oracleDynamicParameters)); }
public override string CreateExpiredJob(Job job, IDictionary <string, string> parameters, DateTime createdAt, TimeSpan expireIn) { if (job == null) { throw new ArgumentNullException(nameof(job)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } var invocationData = InvocationData.Serialize(job); invocationData.Arguments = null; var arguments = InvocationData.Serialize(job); Logger.TraceFormat("CreateExpiredJob={0}", JobHelper.ToJson(invocationData)); return(_storage.UseConnection(connection => { var jobId = connection.GetNextJobId(); var oracleDynamicParameters = new OracleDynamicParameters(); oracleDynamicParameters.AddDynamicParams(new { ID = jobId, CREATED_AT = createdAt, EXPIRE_AT = createdAt.Add(expireIn) }); oracleDynamicParameters.Add("INVOCATION_DATA", JobHelper.ToJson(invocationData), OracleMappingType.NClob, ParameterDirection.Input); oracleDynamicParameters.Add("ARGUMENTS", arguments.Arguments, OracleMappingType.NClob, ParameterDirection.Input); connection.Execute( @" INSERT INTO HF_JOB (ID, INVOCATION_DATA, ARGUMENTS, CREATED_AT, EXPIRE_AT) VALUES (:ID, :INVOCATION_DATA, :ARGUMENTS, :CREATED_AT, :EXPIRE_AT) ", oracleDynamicParameters); if (parameters.Count > 0) { var parameterArray = new object[parameters.Count]; var parameterIndex = 0; foreach (var parameter in parameters) { var dynamicParameters = new OracleDynamicParameters(); dynamicParameters.AddDynamicParams(new { JOB_ID = jobId, NAME = parameter.Key }); dynamicParameters.Add("VALUE", parameter.Value, OracleMappingType.NClob, ParameterDirection.Input); parameterArray[parameterIndex++] = dynamicParameters; } connection.Execute(@"INSERT INTO HF_JOB_PARAMETER (ID, NAME, VALUE, JOB_ID) VALUES (HF_SEQUENCE.NEXTVAL, :NAME, :VALUE, :JOB_ID)", parameterArray); } return jobId.ToString(); })); }