示例#1
0
        /// <summary>
        /// Inserts process report.
        /// </summary>
        /// <param name="dto">The DTO object.</param>
        /// <exception cref="System.ArgumentNullException">The input DTO is null.</exception>
        public void InsertProcessReport(ProcessReportEditDto dto)
        {
            if (dto == null) throw new ArgumentNullException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto"));

            const string Sql =
                @"
INSERT INTO [dbo].[Reports]
(
     [Guid]
    ,[ProcessId]
    ,[LastModifiedOn]
    ,[Title]
    ,[Description]
    ,[FileName]
    ,[DisplayToUsers]
    ,[Visibility]
    ,[IsSecured]
)
VALUES
(
     @guid
    ,@processId
    ,GETDATE()
    ,@title
    ,@description
    ,@fileName
    ,@displayToUsers
    ,@visibility
    ,@isSecured
);
SELECT [Id]
FROM   [dbo].[Reports]
WHERE  [Id] = SCOPE_IDENTITY();";

            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("@guid", dto.Guid);
                    cmd.Parameters.AddWithValue("@processId", dto.ProcessId);
                    cmd.Parameters.AddWithValue("@title", dto.Title);
                    cmd.Parameters.AddWithValue("@description", dto.Description);
                    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);

                    dto.Id = (int)cmd.ExecuteScalar();
                }
            }
        }
示例#2
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);
        }
示例#3
0
        /// <summary>
        /// Read reports.
        /// </summary>
        /// <param name="process">The process.</param>
        /// <param name="sr">The reader.</param>
        private static void ReadReports(ProcessEditDto process, SafeDataReader sr)
        {
            sr.NextResult();

            while (sr.Read())
            {
                var reportDto = new ProcessReportEditDto
                {
                    Id = sr.GetInt32(0),
                    Guid = sr.GetGuid(1),
                    Title = sr.GetString(2),
                    Description = sr.GetString(3),
                    FileName = sr.GetString(4),
                    DisplayToUsers = sr.GetBoolean(5),
                    Visibility = (ReportVisibility)Enum.Parse(typeof(ReportVisibility), sr.GetString(6), true),
                    IsSecured = sr.GetBoolean(7)
                };

                process.ReportList.Add(reportDto);
            }

            ReadReportSecurityConfigurations(process, sr);
        }