Beispiel #1
0
        /// <summary>
        /// Updates process report.
        /// </summary>
        /// <param name="dto">The DTO object.</param>
        /// <param name="locDto">The localization DTO object.</param>
        /// <exception cref="System.ArgumentException">The input DTO is null.</exception>
        /// <exception cref="System.Data.DBConcurrencyException">Indicates stale data.</exception>
        public void UpdateProcessReportWithLocalization(ProcessReportEditDto dto, ProcessReportLocalizationDto locDto)
        {
            if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto"));

            const string Sql =
                @"
UPDATE [dbo].[Reports]
SET
     [Guid] = @guid
    ,[ProcessId] = @processId
    ,[LastModifiedOn] = GETDATE()
    ,[FileName] = @fileName
    ,[DisplayToUsers] = @displayToUsers
    ,[Visibility] = @visibility
    ,[IsSecured] = @isSecured
WHERE [Id] = @id;";

            using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false))
            {
                var cn = ctx.Connection;
                if (cn.State != ConnectionState.Open)
                {
                    cn.Open();
                }

                using (var cmd = new SqlCommand(Sql, cn))
                {
                    cmd.Parameters.AddWithValue("@id", dto.Id);
                    cmd.Parameters.AddWithValue("@guid", dto.Guid);
                    cmd.Parameters.AddWithValue("@processId", dto.ProcessId);
                    cmd.Parameters.AddWithValue("@fileName", dto.FileName);
                    cmd.Parameters.AddWithValue("@displayToUsers", dto.DisplayToUsers);
                    cmd.Parameters.AddWithValue("@visibility", dto.Visibility.ToString());
                    cmd.Parameters.AddWithValue("@isSecured", dto.IsSecured);

                    var rowsAffected = cmd.ExecuteNonQuery();

                    if (rowsAffected == 0)
                    {
                        throw new DBConcurrencyException(Resources.StaleDataException);
                    }
                }
            }

            UpdateProcessReportLocalization(locDto);
        }
Beispiel #2
0
        /// <summary>
        /// Updates the localization for process reports.
        /// </summary>
        /// <param name="dto">The localization dto.</param>
        /// <exception cref="System.ArgumentException"></exception>
        /// <exception cref="System.Data.DBConcurrencyException"></exception>
        public void UpdateProcessReportLocalization(ProcessReportLocalizationDto 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].[ReportLocalizations] 
            WHERE [LocalizationId] = @p_localizationId and [ReportId] = @p_reportId)
BEGIN
UPDATE  [dbo].[ReportLocalizations]
SET     [LocalizationId]    = @p_localizationId,
        [ReportId]          = @p_reportId,
        [GuidId]            = @p_guidId,
        [Title]             = @p_title,
        [Description]       = @p_description
WHERE   [LocalizationId] = @p_localizationId and [ReportId] = @p_reportId
END

ELSE

INSERT INTO [dbo].[ReportLocalizations]
  (
    [LocalizationId],
    [ReportId],
    [Title],
    [Description]
  )
VALUES
  (
    @p_localizationId,
    @p_reportId,
    @p_title,
    @p_description)";

                using (var command = new SqlCommand(commandText, connection))
                {
                    command.Parameters.AddWithValue("@p_localizationId", dto.LocalizationId);
                    command.Parameters.AddWithValue("@p_reportId", dto.ReportId);
                    command.Parameters.AddWithValue("@p_guidId", dto.GuidId);
                    command.Parameters.AddWithValue("@p_title", dto.Title);
                    command.Parameters.AddWithValue("@p_description", dto.Description);

                    var rowsAffetcted = command.ExecuteNonQuery();
                    if (rowsAffetcted == 0)
                    {
                        throw new DBConcurrencyException(Resources.StaleDataException);
                    }
                }
            }
        }