/// <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); }
/// <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); } } } }