/// <summary> /// Insert eSync process. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentNullException"></exception> /// <exception cref="System.ArgumentException">The input DTO is null.</exception> public void InsertESyncProcess(ESyncProcessDto dto) { if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string Sql = @" INSERT INTO [dbo].[SyncProcesses] ( [Guid] ,[LastModifiedOn] ,[ProcessId] ,[Name] ,[Description] ,[Action] ,[GenerateIndexes] ,[Definition] ) VALUES ( @guid ,GETDATE() ,@processId ,@name ,@description ,@action ,@generateIndexes ,@definition ); SELECT [Id] FROM [dbo].[SyncProcesses] WHERE [Id] = SCOPE_IDENTITY()"; using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false)) { var cn = ctx.Connection; if (cn.State != ConnectionState.Open) { cn.Open(); } using (var cmd = new SqlCommand(Sql, cn)) { cmd.Parameters.AddWithValue("@guid", dto.Guid); cmd.Parameters.AddWithValue("@processId", dto.ProcessId); cmd.Parameters.AddWithValue("@name", dto.Name); cmd.Parameters.AddWithValue("@description", dto.Description); cmd.Parameters.AddWithValue("@action", dto.Action.ToString()); cmd.Parameters.AddWithValue("@generateIndexes", dto.GenerateIndexes); cmd.Parameters.AddWithValue("@definition", dto.Definition); dto.Id = (int)cmd.ExecuteScalar(); } } }
/// <summary> /// Updates eSync process. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentException">The input DTO is null.</exception> /// <exception cref="System.Data.DBConcurrencyException">Indicates stale data.</exception> public void UpdateESyncProcess(ESyncProcessDto dto) { if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string Sql = @" UPDATE [dbo].[SyncProcesses] SET [Guid] = @guid ,[LastModifiedOn] = GETDATE() ,[ProcessId] = @processId ,[Name] = @name ,[Description] = @description ,[Action] = @action ,[GenerateIndexes] = @generateIndexes ,[Definition] = @definition WHERE [Id] = @id; "; using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false)) { var cn = ctx.Connection; if (cn.State != ConnectionState.Open) { cn.Open(); } using (var cmd = new SqlCommand(Sql, cn)) { cmd.Parameters.AddWithValue("@id", dto.Id); cmd.Parameters.AddWithValue("@guid", dto.Guid); cmd.Parameters.AddWithValue("@processId", dto.ProcessId); cmd.Parameters.AddWithValue("@name", dto.Name); cmd.Parameters.AddWithValue("@description", dto.Description); cmd.Parameters.AddWithValue("@action", dto.Action.ToString()); cmd.Parameters.AddWithValue("@generateIndexes", dto.GenerateIndexes); cmd.Parameters.AddWithValue("@definition", dto.Definition); var rowsAffected = cmd.ExecuteNonQuery(); if (rowsAffected == 0) { throw new DBConcurrencyException(Resources.StaleDataException); } } } }
/// <summary> /// The read eSync processes. /// </summary> /// <param name="process">The process.</param> /// <param name="sr">The reader.</param> private static void ReadESyncProcesses(ProcessEditDto process, SafeDataReader sr) { sr.NextResult(); while (sr.Read()) { var syncProcess = new ESyncProcessDto { Id = sr.GetInt(0), Guid = sr.GetGuid(1), Name = sr.GetString(2), Description = sr.GetString(3), Action = (ESyncAction)Enum.Parse(typeof(ESyncAction), sr.GetString(4), true), Definition = sr.GetString(5), PublishedCopyId = sr.GetNullableInt(6), GenerateIndexes = sr.GetBoolean("GenerateIndexes") }; process.ESyncProcessList.Add(syncProcess); } }