/// <summary> /// Updates state. /// </summary> /// <param name="dto">The DTO object.</param> /// <param name="locDto">The localization DTO object.</param> /// <exception cref="System.ArgumentNullException"></exception> /// <exception cref="System.Data.DBConcurrencyException">Indicates stale data.</exception> /// <exception cref="System.ArgumentException">The input DTO is null.</exception> public void UpdateStateWithLocalization(StateDto dto, StateLocalizationDto locDto) { if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); const string CmdText = @" UPDATE [dbo].[States] SET [ProcessId] = @ProcessId, [Color] = @Color, [DesignPositionLeft] = @DesignPositionLeft, [DesignPositionTop] = @DesignPositionTop, [DesignDecisionPositionLeft] = @DesignDecisionPositionLeft, [DesignDecisionPositionTop] = @DesignDecisionPositionTop, [Guid] = @Guid, [LastModifiedOn] = getdate() WHERE [Id] = @Id"; using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false)) { var cn = ctx.Connection; using (var cmd = new SqlCommand(CmdText, cn)) { cmd.Parameters.AddWithValue("@Id", dto.Id); cmd.Parameters.AddWithValue("@ProcessId", dto.ProcessId); cmd.Parameters.AddWithValue("@Color", dto.Color); cmd.Parameters.AddWithValue("@DesignPositionLeft", dto.DesignPositionLeft); cmd.Parameters.AddWithValue("@DesignPositionTop", dto.DesignPositionTop); cmd.Parameters.AddWithValue("@DesignDecisionPositionLeft", dto.DesignDecisionPositionLeft); cmd.Parameters.AddWithValue("@DesignDecisionPositionTop", dto.DesignDecisionPositionTop); cmd.Parameters.AddWithValue("@Guid", dto.Guid); var rowsAffetcted = cmd.ExecuteNonQuery(); if (rowsAffetcted == 0) { throw new DBConcurrencyException(Resources.StaleDataException); } } } UpdateStateLocalization(locDto); }
/// <summary> /// Updates the localization for process states. /// </summary> /// <param name="dto">The localization dto.</param> /// <exception cref="System.ArgumentException"></exception> /// <exception cref="System.Data.DBConcurrencyException"></exception> public void UpdateStateLocalization(StateLocalizationDto dto) { if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto")); using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false)) { var connection = ctx.Connection; const string commandText = @" IF EXISTS ( SELECT * FROM [dbo].[StateLocalizations] WHERE [LocalizationId] = @p_localizationId and [StateId] = @p_stateId) BEGIN UPDATE [dbo].[StateLocalizations] SET [LocalizationId] = @p_localizationId, [StateId] = @p_stateId, [GuidId] = @p_guidId, [Name] = @p_name, [Documentation] = @p_documentation WHERE [LocalizationId] = @p_localizationId and [StateId] = @p_stateId END ELSE INSERT INTO [dbo].[StateLocalizations] ( [LocalizationId], [StateId], [Name], [Documentation] ) VALUES ( @p_localizationId, @p_stateId, @p_name, @p_documentation)"; using (var command = new SqlCommand(commandText, connection)) { command.Parameters.AddWithValue("@p_localizationId", dto.LocalizationId); command.Parameters.AddWithValue("@p_stateId", dto.StateId); command.Parameters.AddWithValue("@p_guidId", dto.GuidId); command.Parameters.AddWithValue("@p_name", dto.Name); command.Parameters.AddWithValue("@p_documentation", dto.Documentation); var rowsAffetcted = command.ExecuteNonQuery(); if (rowsAffetcted == 0) { throw new DBConcurrencyException(Resources.StaleDataException); } } } }