/// <summary> /// Updates cross ref field. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentException"></exception> /// <exception cref="System.ArgumentNullException">The input DTO is null.</exception> public void UpdateCrossRefField(CrossReferenceDisplayFieldDto dto) { if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CmdText = @" UPDATE [dbo].[CrossRefStepFields] SET [CrossRefStepId] = @stepId ,[FieldName] = @fieldName ,[FullPath] = @fullPath ,[Order] = @order ,[FieldGuid] = @fieldGuid ,[Guid] = @guid WHERE [Id] = @id; "; using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false)) { using (var cmd = new SqlCommand(CmdText, ctx.Connection)) { cmd.Parameters.AddWithValue("@id", dto.Id); cmd.Parameters.AddWithValue("@stepId", dto.StepId); cmd.Parameters.AddWithValue("@fieldName", dto.DisplayName); cmd.Parameters.AddWithValue("@fullPath", dto.FullPath); cmd.Parameters.AddWithValue("@order", dto.Order); cmd.Parameters.AddWithValue("@fieldGuid", dto.FieldGuid); cmd.Parameters.AddWithValue("@guid", dto.Guid); cmd.ExecuteNonQuery(); } } }
/// <summary> /// Retrieves cross ref required step. /// </summary> /// <param name="processName">The process name.</param> /// <param name="fieldName">The field name.</param> /// <param name="isPublishedCopy">The is published copy.</param> /// <returns>The <see cref="CrossRefRequiredStepDto" />.</returns> public CrossRefRequiredStepDto FetchCrossRefRequiredStep(string processName, string fieldName, bool isPublishedCopy = false) { const string CmdText = @" DECLARE @fieldId AS INT SELECT @fieldId = f.Id FROM [dbo].[Processes] p INNER JOIN [dbo].[Sections] s ON s.ProcessId = p.Id INNER JOIN [dbo].[Fields] f ON f.SectionId = s.Id WHERE p.[SystemName] = @processName AND p.IsRemoved = 0 AND p.IsPublishedCopy = @isPublishedCopy AND f.SystemName = @fieldName; EXEC [dbo].[GetCrossRefRequiredStep] @FieldId = @fieldId; "; using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false)) { using (var cmd = new SqlCommand(CmdText, ctx.Connection)) { cmd.Parameters.AddWithValue("@processName", processName); cmd.Parameters.AddWithValue("@fieldName", fieldName); cmd.Parameters.AddWithValue("@isPublishedCopy", isPublishedCopy); using (var reader = new SafeDataReader(cmd.ExecuteReader())) { if (reader.Read()) { var dto = new CrossRefRequiredStepDto { Id = reader.GetInt32(0), CrossRefProcessId = reader.GetNullableInt(1), FieldId = reader.GetInt32(2), DisplayFieldName = reader.GetString(3), AllowMultiple = reader.GetBoolean(4), EditViaSpreadsheet = reader.GetBoolean(5), MultiCrAllowLinkUnlink = reader.GetBoolean(6), MultiCrAllowAddNew = reader.GetBoolean(7), IsOwner = reader.GetBoolean(8), AllowRecentVersion = reader.GetBoolean(9), LinkFieldSystemName = reader.GetString(10) }; if (reader.NextResult()) { while (reader.Read()) { var df = new CrossReferenceDisplayFieldDto { Id = reader.GetInt32(0), DisplayName = reader.GetString(1), FullPath = reader.GetString(2), Order = reader.GetDouble(3), FieldGuid = reader.GetGuid(4) }; dto.DisplayFields.Add(df); } } return dto; } } } } return null; }
/// <summary> /// Insert cross ref field. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentNullException">The input DTO is null.</exception> public void InsertCrossRefField(CrossReferenceDisplayFieldDto dto) { if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CmdText = @" INSERT INTO [dbo].[CrossRefStepFields] ( [CrossRefStepId] ,[FieldName] ,[FullPath] ,[Order] ,[FieldGuid] ,[Guid] ) VALUES ( @stepId ,@fieldName ,@fullPath ,@order ,@fieldGuid ,@guid ); SELECT [Id] FROM [dbo].[CrossRefStepFields] WHERE [Id] = SCOPE_IDENTITY()"; using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false)) { using (var cmd = new SqlCommand(CmdText, ctx.Connection)) { cmd.Parameters.AddWithValue("@stepId", dto.StepId); cmd.Parameters.AddWithValue("@fieldName", dto.DisplayName); cmd.Parameters.AddWithValue("@fullPath", dto.FullPath); cmd.Parameters.AddWithValue("@order", dto.Order); cmd.Parameters.AddWithValue("@fieldGuid", dto.FieldGuid); cmd.Parameters.AddWithValue("@guid", dto.Guid); dto.Id = (int)cmd.ExecuteScalar(); } } }