/// <summary> /// Inserts system field security config. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentNullException">Indicates stale data.</exception> /// <exception cref="System.Data.DBConcurrencyException">The input DTO is null.</exception> public void InsertSystemFieldSecurityConfig(ProcessSystemFieldSecurityConfigEditDto dto) { if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CommandText = @" INSERT INTO [dbo].[ProcessSecurityConfigSystemFields] ( [LastModifiedOn] ,[SecurityConfigId] ,[Guid] ,[FieldSystemName] ,[CanView] ,[CanEdit] ) VALUES ( GETDATE() ,@securityConfigId ,@guid ,@fieldSystemName ,@canView ,@canEdit ); 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("@securityConfigId", dto.SecurityConfigId); cmd.Parameters.AddWithValue("@guid", dto.Guid); cmd.Parameters.AddWithValue("@fieldSystemName", dto.FieldSystemName); cmd.Parameters.AddWithValue("@canView", dto.CanView); cmd.Parameters.AddWithValue("@canEdit", dto.CanEdit); var rowsAffetcted = Database.Execute(cmd); if (rowsAffetcted == 0) { throw new DBConcurrencyException(Resources.StaleDataException); } dto.Id = (int)idParam.Value; } }
/// <summary> /// Updates system field security config. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentNullException">The input DTO is null.</exception> public void UpdateSystemFieldSecurityConfig(ProcessSystemFieldSecurityConfigEditDto dto) { if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CommandText = @" UPDATE [dbo].[ProcessSecurityConfigSystemFields] SET [LastModifiedOn] = GETDATE() ,[SecurityConfigId] = @securityConfigId ,[Guid] = @guid ,[FieldSystemName] = @fieldSystemName ,[CanView] = @canView ,[CanEdit] = @canEdit WHERE [Id] = @id; "; using (var cmd = new SqlCommand(CommandText)) { cmd.Parameters.AddWithValue("@id", dto.Id); cmd.Parameters.AddWithValue("@securityConfigId", dto.SecurityConfigId); cmd.Parameters.AddWithValue("@guid", dto.Guid); cmd.Parameters.AddWithValue("@fieldSystemName", dto.FieldSystemName); cmd.Parameters.AddWithValue("@canView", dto.CanView); cmd.Parameters.AddWithValue("@canEdit", dto.CanEdit); Database.Execute(cmd); } }
/// <summary> /// The read security config system fields. /// </summary> /// <param name="sr">The reader.</param> /// <param name="process">The process.</param> private static void ReadSecurityConfigSystemFields(SafeDataReader sr, ProcessEditDto process) { sr.NextResult(); while (sr.Read()) { var systemFieldSecurityConfig = new ProcessSystemFieldSecurityConfigEditDto { Id = sr.GetInt(0), SecurityConfigId = sr.GetInt(1), Guid = sr.GetGuid(2), FieldSystemName = sr.GetString(3), CanView = sr.GetBoolean(4), CanEdit = sr.GetBoolean(5) }; var config = process.SecurityConfigs.FirstOrDefault(sc => sc.Id == systemFieldSecurityConfig.SecurityConfigId); if (config != null) { config.SecurityConfigSystemFields.Add(systemFieldSecurityConfig); } } }