/// <summary> /// Updates reverse cross ref field. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentNullException"></exception> /// <exception cref="System.ArgumentException">The input DTO is null.</exception> public void UpdateReverseCrossRefField(ReverseCrossReferenceDisplayFieldDto dto) { if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CmdText = @" UPDATE [dbo].[ReverseCrossRefStepFields] SET [ReverseCrossRefStepId] = @stepId ,[DisplayFieldName] = @fieldName ,[FullPath] = @fullPath ,[Order] = @order ,[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("@guid", dto.Guid); cmd.ExecuteNonQuery(); } } }
/// <summary> /// Retrieves reverse 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="ReverseCrossRefRequiredStepDto" />.</returns> public ReverseCrossRefRequiredStepDto FetchReverseCrossRefRequiredStep(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].[GetReverseCrossRefRequiredStep] @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 ReverseCrossRefRequiredStepDto { Id = reader.GetInt32(0), FieldId = reader.GetInt32(1), ReverseCrossRefProcessId = reader.GetNullableInt(2), CrossRefFieldName = reader.GetString(3), DisplayFieldName = reader.GetString(4), DisplayMultiple = reader.GetBoolean(5) }; if (reader.NextResult()) { while (reader.Read()) { var df = new ReverseCrossReferenceDisplayFieldDto { Id = reader.GetInt32(0), DisplayName = reader.GetString(1), FullPath = reader.GetString(2), Order = reader.GetDouble(3) }; dto.SelectedDisplayFields.Add(df); } } return dto; } } } } return null; }
/// <summary> /// The insert reverse cross ref field. /// </summary> /// <param name="dto">The DTO object.</param> /// <exception cref="System.ArgumentNullException"></exception> /// <exception cref="System.ArgumentException">The input DTO is null.</exception> public void InsertReverseCrossRefField(ReverseCrossReferenceDisplayFieldDto dto) { if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CmdText = @" INSERT INTO [dbo].[ReverseCrossRefStepFields] ( [ReverseCrossRefStepId] ,[DisplayFieldName] ,[FullPath] ,[Order] ,[Guid] ) VALUES ( @stepId ,@fieldName ,@fullPath ,@order ,@guid ); SELECT [Id] FROM [dbo].[ReverseCrossRefStepFields] WHERE [Id] = SCOPE_IDENTITY()"; using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false)) { var cn = ctx.Connection; using (var cmd = new SqlCommand(CmdText, cn)) { 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("@guid", dto.Guid); dto.Id = (int)cmd.ExecuteScalar(); } } }