public TransactionEdit CreateEditIsUserFlagged(IEnumerable <string> trasactionIds, bool?isUserFlagged) { var scopeFilter = new TransactionEdit.ScopeFilter(TransactionEdit.ScopeType.TransactionId, trasactionIds.ToArray(), null); var edit = AddEditForScope(scopeFilter.AsEnumerable()); edit.Values.IsFlagged = isUserFlagged.HasValue ? new Transaction.EditValue <bool>(isUserFlagged.Value) : Transaction.EditValue <bool> .VoidedEditValue; return(edit); }
public TransactionEdit CreateEditNote(IEnumerable <string> trasactionIds, string note) { var scopeFilter = new TransactionEdit.ScopeFilter(TransactionEdit.ScopeType.TransactionId, trasactionIds.ToArray(), null); var edit = AddEditForScope(scopeFilter.AsEnumerable()); edit.Values.Note = note != null ? new Transaction.EditValue <string>(note) : Transaction.EditValue <string> .VoidedEditValue; return(edit); }
private static bool FilterTransaction(TransactionEdit.ScopeFilter scopeFilter, Transaction transaction) { //TODO: remove re-prasing switch (scopeFilter.Type) { case TransactionEdit.ScopeType.All: return(true); case TransactionEdit.ScopeType.None: return(false); case TransactionEdit.ScopeType.EntityName: return(scopeFilter.Parameters.Any(p => string.Equals(transaction.EntityName, p, StringComparison.CurrentCultureIgnoreCase))); case TransactionEdit.ScopeType.EntityNameNormalized: return(scopeFilter.Parameters.Any(p => string.Equals(transaction.EntityNameNormalized, p, StringComparison.CurrentCultureIgnoreCase))); case TransactionEdit.ScopeType.TransactionId: return(scopeFilter.Parameters.Any(p => string.Equals(transaction.Id, p, StringComparison.Ordinal))); case TransactionEdit.ScopeType.EntityNameAnyTokens: return(scopeFilter.Parameters.Any(p => transaction.EntityNameTokens.Any(t => string.Equals(t, p, StringComparison.CurrentCultureIgnoreCase)))); case TransactionEdit.ScopeType.EntityNameAllTokens: return(scopeFilter.Parameters.All(p => transaction.EntityNameTokens.Any(t => string.Equals(t, p, StringComparison.CurrentCultureIgnoreCase)))); case TransactionEdit.ScopeType.AccountId: return(scopeFilter.Parameters.Any(p => string.Equals(transaction.AccountId, p, StringComparison.Ordinal))); case TransactionEdit.ScopeType.TransactionReason: return(scopeFilter.Parameters.Any(p => (TransactionReason)Enum.Parse(typeof(TransactionReason), p) == transaction.TransactionReason)); case TransactionEdit.ScopeType.AmountRange: var isNegativeAmount = Utils.ParseBool(scopeFilter.Parameters[2], null); if (isNegativeAmount) { return(transaction.Amount <= Decimal.Parse(scopeFilter.Parameters[0]) * -1 && transaction.Amount >= Decimal.Parse(scopeFilter.Parameters[1]) * -1); } else { return(transaction.Amount >= Decimal.Parse(scopeFilter.Parameters[0]) && transaction.Amount <= Decimal.Parse(scopeFilter.Parameters[1])); } default: throw new NotSupportedException("TransactionEdit.Scope value of {0} is not supported in FilterTransaction".FormatEx(scopeFilter.Type.ToString())); } }