コード例 #1
0
ファイル: ProcessDAL.cs プロジェクト: mparsin/Elements
        /// <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;
            }
        }
コード例 #2
0
ファイル: ProcessDAL.cs プロジェクト: mparsin/Elements
        /// <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;
                }
            }
        }