/// <summary> /// Inserts process report security configuration. /// </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 InsertProcessReportSecurityConfiguration(ProcessReportSecurityConfigurationDto dto) { if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CommandText = @" INSERT INTO [dbo].[ProcessReportSecurityConfigurations] ( [LastModifiedOn] ,[Guid] ,[ReportId] ,[RoleId] ,[BusinessUnitId] ,[Name] ) VALUES ( GETDATE() ,@guid ,@reportId ,@roleId ,@businessUnitId ,@name ); SET @id = SCOPE_IDENTITY();"; using (var cmd = new SqlCommand(CommandText)) { var idParam = cmd.Parameters.Add("@id", SqlDbType.Int); idParam.Direction = ParameterDirection.Output; cmd.Parameters.AddWithValue("@guid", dto.Guid); cmd.Parameters.AddWithValue("@reportId", dto.ReportId); cmd.Parameters.AddWithValue("@roleId", dto.RoleId); cmd.Parameters.AddWithValue("@businessUnitId", dto.BusinessUnitId); cmd.Parameters.AddWithValue("@name", dto.Name); var rowsAffected = Database.Execute(cmd); if (rowsAffected == 0) { throw new DBConcurrencyException(Resources.StaleDataException); } dto.Id = (int)idParam.Value; } }
/// <summary> /// Updates process report security configuration. /// </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 UpdateProcessReportSecurityConfiguration(ProcessReportSecurityConfigurationDto dto) { if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CommandText = @" UPDATE [dbo].[ProcessReportSecurityConfigurations] SET [LastModifiedOn] = GETDATE() ,[Guid] = @guid ,[ReportId] = @reportId ,[RoleId] = @roleId ,[BusinessUnitId] = @businessUnitId ,[Name] = @name WHERE [Id] = @id;"; using (var cmd = new SqlCommand(CommandText)) { cmd.Parameters.AddWithValue("@id", dto.Id); cmd.Parameters.AddWithValue("@guid", dto.Guid); cmd.Parameters.AddWithValue("@reportId", dto.ReportId); cmd.Parameters.AddWithValue("@roleId", dto.RoleId); cmd.Parameters.AddWithValue("@businessUnitId", dto.BusinessUnitId); cmd.Parameters.AddWithValue("@name", dto.Name); var rowsAffected = Database.Execute(cmd); if (rowsAffected == 0) { throw new DBConcurrencyException(Resources.StaleDataException); } } }
/// <summary> /// Reads report security configurations. /// </summary> /// <param name="process">The process.</param> /// <param name="sr">The reader.</param> private static void ReadReportSecurityConfigurations(ProcessEditDto process, SafeDataReader sr) { sr.NextResult(); int? reportId = null; ProcessReportEditDto report = null; while (sr.Read()) { var config = new ProcessReportSecurityConfigurationDto { Id = sr.GetInt(0), Guid = sr.GetGuid(1), ReportId = sr.GetInt(2), RoleId = sr.GetInt(3), BusinessUnitId = sr.GetInt(4), Name = sr.GetString(5) }; if (config.ReportId != reportId) { report = process.ReportList.First(r => r.Id == config.ReportId); reportId = config.ReportId; } report.SecurityConfigurations.Add(config); } }