/// <summary> /// Retrieves eSync pending republishes. /// </summary> /// <returns>The <see cref="IList" />.</returns> public IList<ESyncPendingRepublishDto> FetchESyncPendingRepublishes() { const string CommandText = @" SELECT [Id] ,[ProcessGuid] ,[ProcessSystemName] FROM [dbo].[ESyncPendingRepublishes];"; using (var cmd = new SqlCommand(CommandText)) { var result = new List<ESyncPendingRepublishDto>(); Database.GetDataReader( cmd, dr => { using (var reader = new SafeDataReader(dr)) { while (reader.Read()) { var dto = new ESyncPendingRepublishDto { Id = reader.GetInt32(0), ProcessGuid = reader.GetGuid(1), ProcessSystemName = reader.GetString(2) }; result.Add(dto); } } }); return result; } }
/// <summary> /// Adds eSync pending republish. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentNullException">The input DTO is null.</exception> public void AddESyncPendingRepublish(ESyncPendingRepublishDto dto) { if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CommandText = @" SELECT @id = [Id] FROM [dbo].[ESyncPendingRepublishes] WHERE [ProcessGuid] = @processGuid; IF ( @id IS NULL ) BEGIN INSERT INTO [dbo].[ESyncPendingRepublishes] ( [LastModifiedOn] , [ProcessGuid] , [ProcessSystemName] ) VALUES ( GETDATE() , @processGuid , @processSystemName ) SET @id = SCOPE_IDENTITY(); END ELSE BEGIN UPDATE [dbo].[ESyncPendingRepublishes] SET [LastModifiedOn] = GETDATE() WHERE [Id] = @id; END"; using (var cmd = new SqlCommand(CommandText)) { var idParam = cmd.Parameters.Add("@id", SqlDbType.Int); idParam.Direction = ParameterDirection.Output; cmd.Parameters.AddWithValue("@processGuid", dto.ProcessGuid); cmd.Parameters.AddWithValue("@processSystemName", dto.ProcessSystemName); var rowsAffected = Database.Execute(cmd); if (rowsAffected > 0) { dto.Id = (int)idParam.Value; } } }