Exemple #1
0
 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());
         }
 }