Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
                    }
                }
            }
        }