public ProcessInformation Get(string id) { using (var connection = _database.GetOpenConnection()) { var sql = $"SELECT * FROM {ProcessInformationTable.TableName} Where Id=@id "; var model = connection.Query <ProcessInformationModel>(sql, new { id }).FirstOrDefault(); return(model?.ToDomain()); } }
public IList <Job> Get() { using (var connection = _database.GetOpenConnection()) { var jobModels = connection.Query <JobModel>("SELECT * FROM " + JobTable.TableName).ToList(); var jobs = jobModels.Select(model => model.ToDomain(_configurationMapper)); return(jobs.ToList()); } }
public void SaveState(State state) { using (var connection = _database.GetOpenConnection()) using (var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted)) { var stateModels = state.ToModels(); var existingStateModels = connection.Query <StateEntryModel>( string.Format("SELECT * FROM {0} WHERE StateName =@stateName", StateEntryTable.TableName), new { stateName = state.Name }, transaction).ToList(); var newStates = stateModels.Where(s => existingStateModels.All(x => x.ParameterName != s.ParameterName)); if (newStates.Any()) { connection.Insert(newStates, transaction); } if (existingStateModels.Any()) { foreach (var existingState in existingStateModels) { var newState = stateModels.FirstOrDefault(x => x.ParameterName == existingState.ParameterName && x.ParameterValue != existingState.ParameterValue); if (newState != null) { existingState.ParameterValue = newState.ParameterValue; connection.Update(existingState, transaction); } } } transaction.Commit(); } }
public IList <Script> GetScripts() { using (var conn = _database.GetOpenConnection()) { var models = conn.Query <ScriptModel>(String.Format("SELECT * FROM {0}", ScriptsTable.TableName)); return(models.Select(model => model.ToDomain( GetScripts(model.ImportedScriptNamesCsv.FromCsvArray <string>()))) .ToList()); } }
/// <summary> /// Returns the next (if available) Task. The task will be "checked out" and needs to be /// "checked in" when done with /// </summary> /// <param name="owner">Name of the owning job/category whose task to get</param> /// <returns>Null if no task for this owner exist</returns> public WorkTask GetNextTask(string owner) { using (var connection = _database.GetOpenConnection()) using (var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted)) { var model = connection.Query <WorkTaskModel>( string.Format("UPDATE TOP(1) {0} SET CheckedOut=1 OUTPUT DELETED.* WHERE Owner=@owner AND CheckedOut=0", WorkTaskTable.TableName), new { owner }, transaction).FirstOrDefault(); if (model == null) { return(null); } transaction.Commit(); return(model.ToDomain()); } }