/// <summary> /// Retrieves publish history. /// </summary> /// <param name="processId">The process id.</param> /// <param name="numberOfRecords">The number of records.</param> /// <returns>The list of DTO objects.</returns> public IEnumerable<PublishHistoryDto> FetchPublishHistory(int processId, int numberOfRecords = 10) { const string Query = @" SELECT TOP (@count) Date , Id , IsSuccess , ProcessId , TimeToBuildClientLib , TimeToBuildServerLib , TimeToPublish , TimeToRegisterPublishedCopy , TimeToRetrieve , TimeToUpdateRuntime , TriggeredBy , TriggeredByProcess FROM dbo.PublishHistory WHERE ProcessId = @processId ORDER BY Date DESC "; var result = new List<PublishHistoryDto>(); using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false)) { var connection = ctx.Connection; using (var cmd = new SqlCommand(Query, connection)) { cmd.Parameters.AddWithValue("@count", numberOfRecords); cmd.Parameters.AddWithValue("@processId", processId); using (var reader = new SafeDataReader(cmd.ExecuteReader())) { { while (reader.Read()) { var item = new PublishHistoryDto { Date = reader.ReadDateTime(0), IsSuccess = reader.GetBool(2), ProcessId = reader.GetInt32(3), TimeToPublish = reader.GetInt64(6) }; result.Add(item); } } } } } return result; }
/// <summary> /// Logs publish history. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentNullException">The input DTO is null.</exception> public void LogPublishHistory(PublishHistoryDto dto) { if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string Query = @" INSERT dbo.PublishHistory ( ProcessId , Date , TimeToPublish , TimeToRetrieve , TriggeredBy , TimeToBuildClientLib , TimeToBuildServerLib , TimeToUpdateRuntime , TimeToRegisterPublishedCopy, IsSuccess, TriggeredByProcess, Log, ClientCode, ServerCode ) VALUES ( @processId , -- ProcessId - int @date , -- Date - datetime @timeToPublish , -- TimeToPublish - bigint @timeToRetrieve , -- TimeToRetrieve - bigint @triggeredBy , -- TriggeredBy - varchar(50) @timeToBuildClientLib , -- TimeToBuildClientLib - bigint @timeToBuildServerLib, -- TimeToBuildServerLib - bigint @timeToUpdateRuntime , -- TimeToUpdateRuntime - bigint @timeToRegisterPublishedCopy, -- TimeToRegisterPublishedCopy - bigint @isSuccess , -- IsSuccess - bit @triggeredByProcess, -- TriggeredByProcess @log, -- Log @clientCode, -- ClientCode @serverCode -- ServerCode )"; using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false)) { using (var cmd = new SqlCommand(Query, ctx.Connection)) { try { cmd.Parameters.AddWithValue("@processId", dto.ProcessId); cmd.Parameters.AddWithValue("@date", dto.Date ?? DateTime.Now); cmd.Parameters.AddWithValue("@timeToPublish", dto.TimeToPublish); cmd.Parameters.AddWithValue("@timeToRetrieve", dto.TimeToRetrieve); cmd.Parameters.AddWithValue("@triggeredBy", dto.TriggeredBy ?? string.Empty); cmd.Parameters.AddWithValue("@timeToBuildClientLib", dto.TimeToBuildClientLib); cmd.Parameters.AddWithValue("@timeToBuildServerLib", dto.TimeToBuildServerLib); cmd.Parameters.AddWithValue("@timeToUpdateRuntime", dto.TimeToUpdateRuntime); cmd.Parameters.AddWithValue("@timeToRegisterPublishedCopy", dto.TimeToRegisterPublishedCopy); cmd.Parameters.AddWithValue("@isSuccess", dto.IsSuccess); cmd.Parameters.AddWithValue("@triggeredByProcess", dto.TriggeredByProcess); cmd.Parameters.AddWithValue("@log", dto.Log ?? string.Empty); cmd.Parameters.AddWithValue("@clientCode", dto.ClientCode ?? string.Empty); cmd.Parameters.AddWithValue("@serverCode", dto.ServerCode ?? string.Empty); cmd.ExecuteNonQuery(); } catch (Exception ex) { Log4NetLogger.Instance.Log(LogSeverity.Warning, "LogPublishHistory", ex); } } } }