本文整理汇总了C#中Rock.Model.BinaryFileService.Queryable方法的典型用法代码示例。如果您正苦于以下问题:C# BinaryFileService.Queryable方法的具体用法?C# BinaryFileService.Queryable怎么用?C# BinaryFileService.Queryable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Rock.Model.BinaryFileService
的用法示例。
在下文中一共展示了BinaryFileService.Queryable方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FormatValue
/// <summary>
/// Returns the field's current value(s)
/// </summary>
/// <param name="parentControl">The parent control.</param>
/// <param name="value">Information about the value</param>
/// <param name="configurationValues">The configuration values.</param>
/// <param name="condensed">Flag indicating if the value should be condensed (i.e. for use in a grid column)</param>
/// <returns></returns>
public override string FormatValue( Control parentControl, string value, Dictionary<string, ConfigurationValue> configurationValues, bool condensed )
{
var binaryFileGuid = value.AsGuidOrNull();
if ( binaryFileGuid.HasValue )
{
var binaryFileService = new BinaryFileService( new RockContext() );
var binaryFileInfo = binaryFileService.Queryable().Where( a => a.Guid == binaryFileGuid.Value )
.Select( s => new
{
s.FileName,
s.MimeType,
s.Guid
} )
.FirstOrDefault();
if ( binaryFileInfo != null )
{
if ( condensed )
{
return binaryFileInfo.FileName;
}
else
{
var filePath = System.Web.VirtualPathUtility.ToAbsolute( "~/GetFile.ashx" );
// NOTE: Flash and Silverlight might crash if we don't set width and height. However, that makes responsive stuff not work
string htmlFormat = @"
<video
src='{0}?guid={1}'
class='js-media-video'
type='{2}'
controls='controls'
style='width:100%;height:100%;'
width='100%'
height='100%'
preload='auto'
>
</video>
<script>
Rock.controls.mediaPlayer.initialize();
</script>
";
var html = string.Format( htmlFormat, filePath, binaryFileInfo.Guid, binaryFileInfo.MimeType );
return html;
}
}
}
// value or binaryfile was null
return null;
}
示例2: FormatValue
/// <summary>
/// Returns the field's current value(s)
/// </summary>
/// <param name="parentControl">The parent control.</param>
/// <param name="value">Information about the value</param>
/// <param name="configurationValues">The configuration values.</param>
/// <param name="condensed">Flag indicating if the value should be condensed (i.e. for use in a grid column)</param>
/// <returns></returns>
public override string FormatValue( Control parentControl, string value, Dictionary<string, ConfigurationValue> configurationValues, bool condensed )
{
var binaryFileGuid = value.AsGuidOrNull();
if ( binaryFileGuid.HasValue )
{
var binaryFileService = new BinaryFileService( new RockContext() );
var binaryFileInfo = binaryFileService.Queryable().Where( a => a.Guid == binaryFileGuid.Value )
.Select( s => new
{
s.FileName,
s.MimeType,
s.Guid
} )
.FirstOrDefault();
if ( binaryFileInfo != null )
{
if ( condensed )
{
return binaryFileInfo.FileName;
}
else
{
var filePath = System.Web.VirtualPathUtility.ToAbsolute( "~/GetFile.ashx" );
string htmlFormat = @"
<audio
src='{0}?guid={1}'
class='img img-responsive js-media-audio'
type='{2}'
controls
>
</audio>
<script>
Rock.controls.mediaPlayer.initialize();
</script>
";
var html = string.Format( htmlFormat, filePath, binaryFileInfo.Guid, binaryFileInfo.MimeType );
return html;
}
}
}
// value or binaryfile was null
return null;
}
示例3: CleanupTemporaryBinaryFiles
/// <summary>
/// Cleanups the temporary binary files.
/// </summary>
private void CleanupTemporaryBinaryFiles()
{
var binaryFileRockContext = new Rock.Data.RockContext();
// clean out any temporary binary files
BinaryFileService binaryFileService = new BinaryFileService( binaryFileRockContext );
foreach ( var binaryFile in binaryFileService.Queryable().Where( bf => bf.IsTemporary == true ).ToList() )
{
if ( binaryFile.ModifiedDateTime < RockDateTime.Now.AddDays( -1 ) )
{
binaryFileService.Delete( binaryFile );
binaryFileRockContext.SaveChanges();
}
}
}
示例4: BindGrid
/// <summary>
/// Binds the grid.
/// </summary>
private void BindGrid()
{
Guid binaryFileTypeGuid = binaryFileType != null ? binaryFileType.Guid : Guid.NewGuid();
var binaryFileService = new BinaryFileService( new RockContext() );
var queryable = binaryFileService.Queryable().Where( f => f.BinaryFileType.Guid == binaryFileTypeGuid );
bool includeTemp = false;
if (!bool.TryParse( fBinaryFile.GetUserPreference( "Include Temporary" ), out includeTemp ) || !includeTemp)
{
queryable = queryable.Where( f => f.IsTemporary == false );
}
var sortProperty = gBinaryFile.SortProperty;
string name = fBinaryFile.GetUserPreference( "File Name" );
if ( !string.IsNullOrWhiteSpace( name ) )
{
queryable = queryable.Where( f => f.FileName.Contains( name ) );
}
string type = fBinaryFile.GetUserPreference( "Mime Type" );
if ( !string.IsNullOrWhiteSpace( type ) )
{
queryable = queryable.Where( f => f.MimeType.Contains( name ) );
}
if ( sortProperty != null )
{
gBinaryFile.DataSource = queryable.Sort( sortProperty ).ToList();
}
else
{
gBinaryFile.DataSource = queryable.OrderBy( d => d.FileName ).ToList();
}
gBinaryFile.DataBind();
}
示例5: BindGrid
/// <summary>
/// Binds the grid.
/// </summary>
private void BindGrid()
{
Guid binaryFileTypeGuid = Rock.SystemGuid.BinaryFiletype.EXTERNAL_FILE.AsGuid();
var binaryFileService = new BinaryFileService();
var queryable = binaryFileService.Queryable().Where( f => f.BinaryFileType.Guid == binaryFileTypeGuid );
var sortProperty = gBinaryFile.SortProperty;
List<BinaryFile> list;
if ( sortProperty != null )
{
list = queryable.Sort( sortProperty ).ToList();
}
else
{
list = queryable.OrderBy( d => d.FileName ).ToList();
}
foreach ( var item in list )
{
item.LoadAttributes();
}
gBinaryFile.DataSource = list;
gBinaryFile.DataBind();
}
示例6: BindGrid
/// <summary>
/// Binds the grid.
/// </summary>
private void BindGrid()
{
RockContext rockContext = new RockContext();
BinaryFileTypeService binaryFileTypeService = new BinaryFileTypeService( rockContext );
BinaryFileService binaryFileService = new BinaryFileService( rockContext );
SortProperty sortProperty = gBinaryFileType.SortProperty;
// join so we can both get BinaryFileCount quickly and be able to sort by it (having SQL do all the work)
var qry = from ft in binaryFileTypeService.Queryable()
join bf in binaryFileService.Queryable().GroupBy( b => b.BinaryFileTypeId )
on ft.Id equals bf.Key into joinResult
from x in joinResult.DefaultIfEmpty()
select new
{
ft.Id,
ft.Name,
ft.Description,
BinaryFileCount = x.Key == null ? 0 : x.Count(),
StorageEntityType = ft.StorageEntityType != null ? ft.StorageEntityType.FriendlyName : string.Empty,
ft.IsSystem,
ft.AllowCaching,
RequiresViewSecurity = ft.RequiresViewSecurity
};
if ( sortProperty != null )
{
gBinaryFileType.DataSource = qry.Sort( sortProperty ).ToList();
}
else
{
gBinaryFileType.DataSource = qry.OrderBy( p => p.Name ).ToList();
}
gBinaryFileType.EntityTypeId = EntityTypeCache.Read<Rock.Model.BinaryFileType>().Id;
gBinaryFileType.DataBind();
}
示例7: CreateGroupTypeEditorControls
/// <summary>
/// Creates the group type editor controls.
/// </summary>
/// <param name="groupType">Type of the group.</param>
/// <param name="parentControl">The parent control.</param>
/// <param name="rockContext">The rock context.</param>
/// <param name="createExpanded">if set to <c>true</c> [create expanded].</param>
private void CreateGroupTypeEditorControls( GroupType groupType, Control parentControl, RockContext rockContext, bool createExpanded = false )
{
CheckinGroupTypeEditor groupTypeEditor = new CheckinGroupTypeEditor();
groupTypeEditor.ID = "GroupTypeEditor_" + groupType.Guid.ToString( "N" );
groupTypeEditor.SetGroupType( groupType.Id, groupType.Guid, groupType.Name, groupType.InheritedGroupTypeId );
groupTypeEditor.AddGroupClick += groupTypeEditor_AddGroupClick;
groupTypeEditor.AddGroupTypeClick += groupTypeEditor_AddGroupTypeClick;
groupTypeEditor.DeleteCheckinLabelClick += groupTypeEditor_DeleteCheckinLabelClick;
groupTypeEditor.AddCheckinLabelClick += groupTypeEditor_AddCheckinLabelClick;
groupTypeEditor.DeleteGroupTypeClick += groupTypeEditor_DeleteGroupTypeClick;
groupTypeEditor.CheckinLabels = null;
if ( createExpanded )
{
groupTypeEditor.Expanded = true;
}
if ( GroupTypeCheckinLabelAttributesState.ContainsKey( groupType.Guid ) )
{
groupTypeEditor.CheckinLabels = GroupTypeCheckinLabelAttributesState[groupType.Guid];
}
if ( groupTypeEditor.CheckinLabels == null )
{
// load CheckInLabels from Database if they haven't been set yet
groupTypeEditor.CheckinLabels = new List<CheckinGroupTypeEditor.CheckinLabelAttributeInfo>();
groupType.LoadAttributes( rockContext );
List<string> labelAttributeKeys = CheckinGroupTypeEditor.GetCheckinLabelAttributes( groupType.Attributes, rockContext ).Select( a => a.Key ).ToList();
BinaryFileService binaryFileService = new BinaryFileService( rockContext );
foreach ( string key in labelAttributeKeys )
{
var attributeValue = groupType.GetAttributeValue( key );
Guid binaryFileGuid = attributeValue.AsGuid();
var fileName = binaryFileService.Queryable().Where( a => a.Guid == binaryFileGuid ).Select( a => a.FileName ).FirstOrDefault();
if ( fileName != null )
{
groupTypeEditor.CheckinLabels.Add( new CheckinGroupTypeEditor.CheckinLabelAttributeInfo { AttributeKey = key, BinaryFileGuid = binaryFileGuid, FileName = fileName } );
}
}
}
parentControl.Controls.Add( groupTypeEditor );
// get the GroupType from the control just in case the InheritedFrom changed
var childGroupGroupType = groupTypeEditor.GetCheckinGroupType( rockContext );
foreach ( var childGroup in groupType.Groups.OrderBy( a => a.Order ).ThenBy( a => a.Name ) )
{
childGroup.GroupType = childGroupGroupType;
CreateGroupEditorControls( childGroup, groupTypeEditor, rockContext, false );
}
foreach ( var childGroupType in groupType.ChildGroupTypes
.Where( t => t.Guid != groupType.Guid )
.OrderBy( a => a.Order )
.ThenBy( a => a.Name ) )
{
CreateGroupTypeEditorControls( childGroupType, groupTypeEditor, rockContext );
}
}
示例8: lbSave_Click
/// <summary>
/// Handles the Click event of the lbSave control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
protected void lbSave_Click( object sender, EventArgs e )
{
var rockContext = new RockContext();
var txnService = new FinancialTransactionService( rockContext );
var txnDetailService = new FinancialTransactionDetailService( rockContext );
var txnImageService = new FinancialTransactionImageService( rockContext );
var binaryFileService = new BinaryFileService( rockContext );
FinancialTransaction txn = null;
int? txnId = hfTransactionId.Value.AsIntegerOrNull();
int? batchId = hfBatchId.Value.AsIntegerOrNull();
if ( txnId.HasValue )
{
txn = txnService.Get( txnId.Value );
}
if ( txn == null && batchId.HasValue )
{
txn = new FinancialTransaction();
txnService.Add( txn );
txn.BatchId = batchId.Value;
}
if ( txn != null )
{
txn.AuthorizedPersonId = ppAuthorizedPerson.PersonId;
txn.TransactionDateTime = dtTransactionDateTime.SelectedDateTime;
txn.TransactionTypeValueId = ddlTransactionType.SelectedValue.AsInteger();
txn.SourceTypeValueId = ddlSourceType.SelectedValueAsInt();
Guid? gatewayGuid = cpPaymentGateway.SelectedValueAsGuid();
if ( gatewayGuid.HasValue )
{
var gatewayEntity = EntityTypeCache.Read( gatewayGuid.Value );
if ( gatewayEntity != null )
{
txn.GatewayEntityTypeId = gatewayEntity.Id;
}
else
{
txn.GatewayEntityTypeId = null;
}
}
else
{
txn.GatewayEntityTypeId = null;
}
txn.TransactionCode = tbTransactionCode.Text;
txn.CurrencyTypeValueId = ddlCurrencyType.SelectedValueAsInt();
txn.CreditCardTypeValueId = ddlCreditCardType.SelectedValueAsInt();
txn.Summary = tbSummary.Text;
if ( !Page.IsValid || !txn.IsValid )
{
return;
}
foreach ( var txnDetail in TransactionDetailsState )
{
if ( !txnDetail.IsValid )
{
return;
}
}
foreach ( var txnImage in TransactionImagesState )
{
if ( !txnImage.IsValid )
{
return;
}
}
rockContext.WrapTransaction( () =>
{
// Save the transaction
rockContext.SaveChanges();
// Delete any transaction details that were removed
var txnDetailsInDB = txnDetailService.Queryable().Where( a => a.TransactionId.Equals( txn.Id ) ).ToList();
var deletedDetails = from txnDetail in txnDetailsInDB
where !TransactionDetailsState.Select( d => d.Guid ).Contains( txnDetail.Guid )
select txnDetail;
deletedDetails.ToList().ForEach( txnDetail =>
{
txnDetailService.Delete( txnDetail );
} );
rockContext.SaveChanges();
// Save Transaction Details
foreach ( var editorTxnDetail in TransactionDetailsState )
//.........这里部分代码省略.........
示例9: GetAttachments
/// <summary>
/// Creates the attachment list.
/// </summary>
private Dictionary<int, string> GetAttachments()
{
var attachments = new Dictionary<int, string>();
var service = new BinaryFileService();
foreach ( string FileId in hfAttachments.Value.SplitDelimitedValues() )
{
int binaryFileId = int.MinValue;
if ( int.TryParse( FileId, out binaryFileId ) )
{
string fileName = service.Queryable()
.Where( f => f.Id == binaryFileId )
.Select( f => f.FileName )
.FirstOrDefault();
if ( fileName != null )
{
attachments.Add( binaryFileId, fileName );
}
}
}
return attachments;
}
示例10: SelectArea
private void SelectArea( Guid? groupTypeGuid )
{
hfIsDirty.Value = "false";
checkinArea.Visible = false;
checkinGroup.Visible = false;
btnSave.Visible = false;
if ( groupTypeGuid.HasValue )
{
using ( var rockContext = new RockContext() )
{
var groupTypeService = new GroupTypeService( rockContext );
var groupType = groupTypeService.Get( groupTypeGuid.Value );
if ( groupType != null )
{
_currentGroupTypeGuid = groupType.Guid;
checkinArea.SetGroupType( groupType, rockContext );
checkinArea.CheckinLabels = new List<CheckinArea.CheckinLabelAttributeInfo>();
groupType.LoadAttributes( rockContext );
List<string> labelAttributeKeys = CheckinArea.GetCheckinLabelAttributes( groupType.Attributes )
.OrderBy( a => a.Value.Order )
.Select( a => a.Key ).ToList();
BinaryFileService binaryFileService = new BinaryFileService( rockContext );
foreach ( string key in labelAttributeKeys )
{
var attributeValue = groupType.GetAttributeValue( key );
Guid binaryFileGuid = attributeValue.AsGuid();
var fileName = binaryFileService.Queryable().Where( a => a.Guid == binaryFileGuid ).Select( a => a.FileName ).FirstOrDefault();
if ( fileName != null )
{
checkinArea.CheckinLabels.Add( new CheckinArea.CheckinLabelAttributeInfo { AttributeKey = key, BinaryFileGuid = binaryFileGuid, FileName = fileName } );
}
}
checkinArea.Visible = true;
btnSave.Visible = true;
}
else
{
_currentGroupTypeGuid = null;
}
}
}
else
{
_currentGroupTypeGuid = null;
}
BuildRows();
}
示例11: groupTypeEditor_AddCheckinLabelClick
/// <summary>
/// Handles the AddCheckinLabelClick event of the groupTypeEditor control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
protected void groupTypeEditor_AddCheckinLabelClick( object sender, EventArgs e )
{
CheckinGroupTypeEditor checkinGroupTypeEditor = sender as CheckinGroupTypeEditor;
// set a hidden field value for the GroupType Guid so we know which GroupType to add the label to
hfAddCheckinLabelGroupTypeGuid.Value = checkinGroupTypeEditor.GroupTypeGuid.ToString();
Guid binaryFileTypeCheckinLabelGuid = new Guid( Rock.SystemGuid.BinaryFiletype.CHECKIN_LABEL );
var binaryFileService = new BinaryFileService();
ddlCheckinLabel.Items.Clear();
var list = binaryFileService.Queryable().Where( a => a.BinaryFileType.Guid.Equals( binaryFileTypeCheckinLabelGuid ) ).OrderBy( a => a.FileName ).ToList();
foreach ( var item in list )
{
// add checkinlabels to dropdownlist if they aren't already a checkin label for this grouptype
if ( !checkinGroupTypeEditor.CheckinLabels.Select( a => a.BinaryFileId ).Contains( item.Id ) )
{
ddlCheckinLabel.Items.Add( new ListItem( item.FileName, item.Id.ToString() ) );
}
}
// only enable the Add button if there are labels that can be added
btnAddCheckinLabel.Enabled = ddlCheckinLabel.Items.Count > 0;
pnlCheckinLabelPicker.Visible = true;
pnlDetails.Visible = false;
}
示例12: Execute
/// <summary>
/// Job that executes routine Rock cleanup tasks
///
/// Called by the <see cref="IScheduler" /> when a
/// <see cref="ITrigger" /> fires that is associated with
/// the <see cref="IJob" />.
/// </summary>
public virtual void Execute( IJobExecutionContext context )
{
var rockContext = new Rock.Data.RockContext();
// get the job map
JobDataMap dataMap = context.JobDetail.JobDataMap;
// delete accounts that have not been confirmed in X hours
int? userExpireHours = dataMap.GetString( "HoursKeepUnconfirmedAccounts" ).AsIntegerOrNull();
if ( userExpireHours.HasValue )
{
DateTime userAccountExpireDate = RockDateTime.Now.Add( new TimeSpan( userExpireHours.Value * -1, 0, 0 ) );
var userLoginService = new UserLoginService(rockContext);
foreach ( var user in userLoginService.Queryable().Where( u => u.IsConfirmed == false && ( u.CreatedDateTime ?? DateTime.MinValue ) < userAccountExpireDate ).ToList() )
{
userLoginService.Delete( user );
}
rockContext.SaveChanges();
}
// purge exception log
int? exceptionExpireDays = dataMap.GetString( "DaysKeepExceptions" ).AsIntegerOrNull();
if ( exceptionExpireDays.HasValue )
{
DateTime exceptionExpireDate = RockDateTime.Now.Add( new TimeSpan( exceptionExpireDays.Value * -1, 0, 0, 0 ) );
ExceptionLogService exceptionLogService = new ExceptionLogService( rockContext );
foreach ( var exception in exceptionLogService.Queryable().Where( e => e.CreatedDateTime.HasValue && e.CreatedDateTime < exceptionExpireDate ).ToList() )
{
exceptionLogService.Delete( exception );
}
rockContext.SaveChanges();
}
// purge audit log
int? auditExpireDays = dataMap.GetString( "AuditLogExpirationDays" ).AsIntegerOrNull();
if ( auditExpireDays.HasValue )
{
DateTime auditExpireDate = RockDateTime.Now.Add( new TimeSpan( auditExpireDays.Value * -1, 0, 0, 0 ) );
AuditService auditService = new AuditService(rockContext);
foreach ( var audit in auditService.Queryable().Where( a => a.DateTime < auditExpireDate ).ToList() )
{
auditService.Delete( audit );
}
rockContext.SaveChanges();
}
// clean the cached file directory
// get the attributes
string cacheDirectoryPath = dataMap.GetString( "BaseCacheDirectory" );
int? cacheExpirationDays = dataMap.GetString( "DaysKeepCachedFiles" ).AsIntegerOrNull();
if ( cacheExpirationDays.HasValue )
{
DateTime cacheExpirationDate = RockDateTime.Now.Add( new TimeSpan( cacheExpirationDays.Value * -1, 0, 0, 0 ) );
// if job is being run by the IIS scheduler and path is not null
if ( context.Scheduler.SchedulerName == "RockSchedulerIIS" && !string.IsNullOrEmpty( cacheDirectoryPath ) )
{
// get the physical path of the cache directory
cacheDirectoryPath = System.Web.Hosting.HostingEnvironment.MapPath( cacheDirectoryPath );
}
// if directory is not blank and cache expiration date not in the future
if ( !string.IsNullOrEmpty( cacheDirectoryPath ) && cacheExpirationDate <= RockDateTime.Now )
{
// Clean cache directory
CleanCacheDirectory( cacheDirectoryPath, cacheExpirationDate );
}
}
// clean out any temporary binary files
BinaryFileService binaryFileService = new BinaryFileService(rockContext);
foreach ( var binaryFile in binaryFileService.Queryable().Where( bf => bf.IsTemporary == true ).ToList() )
{
if ( binaryFile.ModifiedDateTime < RockDateTime.Now.AddDays( -1 ) )
{
binaryFileService.Delete( binaryFile );
}
}
rockContext.SaveChanges();
// Add any missing person aliases
PersonService personService = new PersonService(rockContext);
foreach ( var person in personService.Queryable( "Aliases" )
.Where( p => !p.Aliases.Any() )
.Take( 300 ) )
//.........这里部分代码省略.........
示例13: OnCommunicationSave
/// <summary>
/// Called when [communication save].
/// </summary>
/// <param name="rockContext">The rock context.</param>
public override void OnCommunicationSave( RockContext rockContext )
{
var binaryFileIds = hfAttachments.Value.SplitDelimitedValues().AsIntegerList();
if ( binaryFileIds.Any() )
{
var binaryFileService = new BinaryFileService( rockContext );
foreach( var binaryFile in binaryFileService.Queryable()
.Where( f => binaryFileIds.Contains( f.Id ) ) )
{
binaryFile.IsTemporary = false;
}
}
}
示例14: Execute
/// <summary>
/// Job that executes routine Rock cleanup tasks
///
/// Called by the <see cref="IScheduler" /> when a
/// <see cref="ITrigger" /> fires that is associated with
/// the <see cref="IJob" />.
/// </summary>
public virtual void Execute(IJobExecutionContext context)
{
// get the job map
JobDataMap dataMap = context.JobDetail.JobDataMap;
// delete accounts that have not been confirmed in X hours
int userExpireHours = Int32.Parse( dataMap.GetString( "HoursKeepUnconfirmedAccounts" ) );
DateTime userAccountExpireDate = DateTime.Now.Add( new TimeSpan( userExpireHours * -1,0,0 ) );
var userLoginService = new UserLoginService();
foreach (var user in userLoginService.Queryable().Where(u => u.IsConfirmed == false && u.CreationDateTime < userAccountExpireDate).ToList() )
{
userLoginService.Delete( user, null );
userLoginService.Save( user, null );
}
// purge exception log
int exceptionExpireDays = Int32.Parse( dataMap.GetString( "DaysKeepExceptions" ) );
DateTime exceptionExpireDate = DateTime.Now.Add( new TimeSpan( exceptionExpireDays * -1, 0, 0, 0 ) );
ExceptionLogService exceptionLogService = new ExceptionLogService();
foreach ( var exception in exceptionLogService.Queryable().Where( e => e.ExceptionDateTime < exceptionExpireDate ).ToList() )
{
exceptionLogService.Delete( exception, null );
exceptionLogService.Save( exception, null );
}
// purge audit log
int auditExpireDays = Int32.Parse( dataMap.GetString( "AuditLogExpirationDays" ) );
DateTime auditExpireDate = DateTime.Now.Add( new TimeSpan( auditExpireDays * -1, 0, 0, 0 ) );
AuditService auditService = new AuditService();
foreach( var audit in auditService.Queryable().Where( a => a.DateTime < auditExpireDate ).ToList() )
{
auditService.Delete( audit, null );
auditService.Save( audit, null );
}
// clean the cached file directory
//get the attributes
string cacheDirectoryPath = dataMap.GetString( "BaseCacheDirectory" );
int cacheExpirationDays = int.Parse( dataMap.GetString( "DaysKeepCachedFiles" ) );
DateTime cacheExpirationDate = DateTime.Now.Add( new TimeSpan( cacheExpirationDays * -1, 0, 0, 0 ) );
//if job is being run by the IIS scheduler and path is not null
if ( context.Scheduler.SchedulerName == "RockSchedulerIIS" && !String.IsNullOrEmpty( cacheDirectoryPath ) )
{
//get the physical path of the cache directory
cacheDirectoryPath = System.Web.Hosting.HostingEnvironment.MapPath( cacheDirectoryPath );
}
//if directory is not blank and cache expiration date not in the future
if ( !String.IsNullOrEmpty( cacheDirectoryPath ) && cacheExpirationDate <= DateTime.Now )
{
//Clean cache directory
CleanCacheDirectory( cacheDirectoryPath, cacheExpirationDate );
}
// clean out any temporary binary files
BinaryFileService binaryFileService = new BinaryFileService();
foreach( var binaryFile in binaryFileService.Queryable().Where( bf => bf.IsTemporary == true ).ToList() )
{
if ( binaryFile.LastModifiedDateTime < DateTime.Now.AddDays(-1) )
{
binaryFileService.Delete( binaryFile, null );
binaryFileService.Save( binaryFile, null );
}
}
}
示例15: lbSave_Click
//.........这里部分代码省略.........
nbErrorMessage.Visible = true;
return;
}
if ( cbIsRefund.Checked )
{
if ( txn.RefundDetails != null )
{
txn.RefundDetails = new FinancialTransactionRefund();
}
txn.RefundDetails.RefundReasonValueId = ddlRefundReasonEdit.SelectedValueAsId();
txn.RefundDetails.RefundReasonSummary = tbRefundSummaryEdit.Text;
}
if ( !Page.IsValid || !txn.IsValid )
{
return;
}
foreach ( var txnDetail in TransactionDetailsState )
{
if ( !txnDetail.IsValid )
{
return;
}
}
rockContext.WrapTransaction( () =>
{
// Save the transaction
rockContext.SaveChanges();
// Delete any transaction details that were removed
var txnDetailsInDB = txnDetailService.Queryable().Where( a => a.TransactionId.Equals( txn.Id ) ).ToList();
var deletedDetails = from txnDetail in txnDetailsInDB
where !TransactionDetailsState.Select( d => d.Guid ).Contains( txnDetail.Guid )
select txnDetail;
deletedDetails.ToList().ForEach( txnDetail =>
{
if ( batchId.HasValue )
{
History.EvaluateChange( changes, txnDetail.Account != null ? txnDetail.Account.Name : "Unknown", txnDetail.Amount.FormatAsCurrency(), string.Empty );
}
txnDetailService.Delete( txnDetail );
} );
// Save Transaction Details
foreach ( var editorTxnDetail in TransactionDetailsState )
{
string oldAccountName = string.Empty;
string newAccountName = string.Empty;
decimal oldAmount = 0.0M;
decimal newAmount = 0.0M;
// Add or Update the activity type
var txnDetail = txn.TransactionDetails.FirstOrDefault( d => d.Guid.Equals( editorTxnDetail.Guid ) );
if ( txnDetail != null )
{
oldAccountName = AccountName( txnDetail.AccountId );
oldAmount = txnDetail.Amount;
}
else
{
txnDetail = new FinancialTransactionDetail();
txnDetail.Guid = editorTxnDetail.Guid;
txn.TransactionDetails.Add( txnDetail );