public static void delObject( string sessionGuid_in, string ip_forLogPurposes_in, long idAttachment_in, out int[] errors_out ) { List <int> _errorlist; Guid _sessionguid; Sessionuser _sessionuser; #region check... if (!SBO_CRD_Authentication.isSessionGuid_valid( sessionGuid_in, ip_forLogPurposes_in, out _sessionguid, out _sessionuser, out _errorlist, out errors_out )) { //// no need! //errors_out = _errors.ToArray(); return; } #endregion #region check Permissions... if ( !_sessionuser.hasPermission( false, PermissionType.News__delete_Approved, PermissionType.News__delete_Mine_notApproved ) ) { _errorlist.Add(ErrorType.news__lack_of_permissions_to_delete); errors_out = _errorlist.ToArray(); return; } #endregion #region check existence... SO_NWS_Attachment _attachment; if ( idAttachment_in <= 0 || ( (_attachment = DO_NWS_Attachment.getObject( idAttachment_in )) == null ) ) { _errorlist.Add(ErrorType.data__not_found); errors_out = _errorlist.ToArray(); return; } #endregion #region //check References . . . (no references to check) //if ( // (DO_NWS_ContentAuthor.getCount_inRecord_byAuthor( // idAttachment_in // ) > 0) //) { // _errors.Add(ErrorType.data__constraint_violation); // errors_out = _errors.ToArray(); // return; //} #endregion Exception _exception = null; #region DBConnection _con = DO__Utilities.DBConnection_createInstance(...); DBConnection _con = DO__Utilities.DBConnection_createInstance( DO__Utilities.DBServerType, DO__Utilities.DBConnectionstring, DO__Utilities.DBLogfile ); #endregion try { _con.Open(); _con.Transaction.Begin(); DO_NWS_Attachment.delObject( idAttachment_in, _con ); #region SBO_DIC_Dic.delObject(_con, _attachment.TX_Name); if (!_attachment.TX_Name_isNull) { SBO_DIC_Dic.delObject( _con, _attachment.TX_Name ); } #endregion #region SBO_DIC_Dic.delObject(_con, _attachment.TX_Description); if (!_attachment.TX_Description_isNull) { SBO_DIC_Dic.delObject( _con, _attachment.TX_Description ); } #endregion _errorlist.Add(ErrorType.news__attachment__successfully_deleted__WARNING); #region _con.Transaction.Commit(); if ( _con.IsOpen && _con.Transaction.InTransaction ) { _con.Transaction.Commit(); } #endregion } catch (Exception _ex) { #region _con.Transaction.Rollback(); if ( _con.IsOpen && _con.Transaction.InTransaction ) { _con.Transaction.Rollback(); } #endregion _exception = _ex; } finally { #region _con.Transaction.Terminate(); _con.Close(); _con.Dispose(); if (_con.IsOpen) { if (_con.Transaction.InTransaction) { _con.Transaction.Terminate(); } _con.Close(); } _con.Dispose(); #endregion } if (_exception != null) { #region SBO_LOG_Log.Log(ErrorType.data); OGen.NTier.Kick.Libraries.BusinessLayer.SBO_LOG_Log.log( _sessionuser, LogType.error, ErrorType.data, -1L, _sessionuser.IDApplication, "{0}", new string[] { _exception.Message } ); #endregion _errorlist.Add(ErrorType.data); } errors_out = _errorlist.ToArray(); }
public static void delObject( string sessionGuid_in, string ip_forLogPurposes_in, long idTag_in, out int[] errors_out ) { List <int> _errorlist; Guid _sessionguid; Sessionuser _sessionuser; #region check... if (!SBO_CRD_Authentication.isSessionGuid_valid( sessionGuid_in, ip_forLogPurposes_in, out _sessionguid, out _sessionuser, out _errorlist, out errors_out )) { //// no need! //errors_out = _errors.ToArray(); return; } #endregion #region check Permissions . . . if ( !_sessionuser.hasPermission( PermissionType.Tag__delete ) ) { _errorlist.Add(ErrorType.tag__lack_of_permissions_to_delete); errors_out = _errorlist.ToArray(); return; } #endregion #region check existence . . . SO_NWS_Tag _tag; if ( idTag_in <= 0 || ( (_tag = DO_NWS_Tag.getObject( idTag_in )) == null ) ) { _errorlist.Add(ErrorType.data__not_found); errors_out = _errorlist.ToArray(); return; } #endregion #region check Permissions . . . (more) if ( // is approved ( !_tag.IFUser__Approved_isNull || !_tag.Approved_date_isNull ) && // and no permission to approve !_sessionuser.hasPermission( PermissionType.Tag__approve ) ) { _errorlist.Add(ErrorType.tag__lack_of_permissions_to_delete_approved); errors_out = _errorlist.ToArray(); return; } #endregion #region check References . . . if ( (DO_NWS_ContentTag.getCount_inRecord_byTag( idTag_in ) > 0) || (DO_NWS_Tag.getCount_inRecord_byParent( idTag_in, _sessionuser.IDApplication // ToDos: here! this should not be needed! ) > 0) ) { _errorlist.Add(ErrorType.data__constraint_violation); errors_out = _errorlist.ToArray(); return; } #endregion Exception _exception = null; #region DBConnection _con = DO__Utilities.DBConnection_createInstance(...); DBConnection _con = DO__Utilities.DBConnection_createInstance( DO__Utilities.DBServerType, DO__Utilities.DBConnectionstring, DO__Utilities.DBLogfile ); #endregion try { _con.Open(); _con.Transaction.Begin(); DO_NWS_Tag.delObject( idTag_in, _con ); SBO_DIC_Dic.delObject( _con, _tag.TX_Name ); _errorlist.Add(ErrorType.tag__successfully_deleted__WARNING); #region _con.Transaction.Commit(); if ( _con.IsOpen && _con.Transaction.InTransaction ) { _con.Transaction.Commit(); } #endregion } catch (Exception _ex) { #region _con.Transaction.Rollback(); if ( _con.IsOpen && _con.Transaction.InTransaction ) { _con.Transaction.Rollback(); } #endregion _exception = _ex; } finally { #region _con.Transaction.Terminate(); _con.Close(); _con.Dispose(); if (_con.IsOpen) { if (_con.Transaction.InTransaction) { _con.Transaction.Terminate(); } _con.Close(); } _con.Dispose(); #endregion } if (_exception != null) { #region SBO_LOG_Log.Log(ErrorType.data); OGen.NTier.Kick.Libraries.BusinessLayer.SBO_LOG_Log.log( _sessionuser, LogType.error, ErrorType.data, -1L, _sessionuser.IDApplication, "{0}", new string[] { _exception.Message } ); #endregion _errorlist.Add(ErrorType.data); } errors_out = _errorlist.ToArray(); }