/// <summary> /// Inserts process report. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentNullException">The input DTO is null.</exception> public void InsertProcessReport(ProcessReportEditDto dto) { if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string Sql = @" INSERT INTO [dbo].[Reports] ( [Guid] ,[ProcessId] ,[LastModifiedOn] ,[Title] ,[Description] ,[FileName] ,[DisplayToUsers] ,[Visibility] ,[IsSecured] ) VALUES ( @guid ,@processId ,GETDATE() ,@title ,@description ,@fileName ,@displayToUsers ,@visibility ,@isSecured ); SELECT [Id] FROM [dbo].[Reports] 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("@title", dto.Title); cmd.Parameters.AddWithValue("@description", dto.Description); cmd.Parameters.AddWithValue("@fileName", dto.FileName); cmd.Parameters.AddWithValue("@displayToUsers", dto.DisplayToUsers); cmd.Parameters.AddWithValue("@visibility", dto.Visibility.ToString()); cmd.Parameters.AddWithValue("@isSecured", dto.IsSecured); dto.Id = (int)cmd.ExecuteScalar(); } } }
/// <summary> /// Updates process report. /// </summary> /// <param name="dto">The DTO object.</param> /// <param name="locDto">The localization DTO object.</param> /// <exception cref="System.ArgumentException">The input DTO is null.</exception> /// <exception cref="System.Data.DBConcurrencyException">Indicates stale data.</exception> public void UpdateProcessReportWithLocalization(ProcessReportEditDto dto, ProcessReportLocalizationDto locDto) { if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string Sql = @" UPDATE [dbo].[Reports] SET [Guid] = @guid ,[ProcessId] = @processId ,[LastModifiedOn] = GETDATE() ,[FileName] = @fileName ,[DisplayToUsers] = @displayToUsers ,[Visibility] = @visibility ,[IsSecured] = @isSecured 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("@fileName", dto.FileName); cmd.Parameters.AddWithValue("@displayToUsers", dto.DisplayToUsers); cmd.Parameters.AddWithValue("@visibility", dto.Visibility.ToString()); cmd.Parameters.AddWithValue("@isSecured", dto.IsSecured); var rowsAffected = cmd.ExecuteNonQuery(); if (rowsAffected == 0) { throw new DBConcurrencyException(Resources.StaleDataException); } } } UpdateProcessReportLocalization(locDto); }
/// <summary> /// Read reports. /// </summary> /// <param name="process">The process.</param> /// <param name="sr">The reader.</param> private static void ReadReports(ProcessEditDto process, SafeDataReader sr) { sr.NextResult(); while (sr.Read()) { var reportDto = new ProcessReportEditDto { Id = sr.GetInt32(0), Guid = sr.GetGuid(1), Title = sr.GetString(2), Description = sr.GetString(3), FileName = sr.GetString(4), DisplayToUsers = sr.GetBoolean(5), Visibility = (ReportVisibility)Enum.Parse(typeof(ReportVisibility), sr.GetString(6), true), IsSecured = sr.GetBoolean(7) }; process.ReportList.Add(reportDto); } ReadReportSecurityConfigurations(process, sr); }