public ActionResult FetchTransactions(TransactionSearchCriteria searchCriteria) { List <Transaction> transactions = GetTransactions(searchCriteria); Chart(transactions); return(View("Transactions", new UserTransactionViewModel(transactions, SearchPeriod.Weekly))); }
public List <Transaction> GetTransactions(TransactionSearchCriteria searchCriteria) { ExpenseTrackerServiceClient client = new ExpenseTrackerServiceClient(); using (new System.ServiceModel.OperationContextScope(client.InnerChannel)) { AddAuthTokenHeader(); return(Mapper.Map <List <Transaction> >(client.GetTransactions(Mapper.Map <TransactionSearchCriteriaDTO>(searchCriteria)))); } }
public ActionResult Index() { TransactionSearchCriteria searchCriteria = new TransactionSearchCriteria { StartDate = DateTime.Now.StartOfWeek(), EndDate = DateTime.Now, SearchPeriod = SearchPeriod.Weekly }; List <Transaction> transactions = GetTransactions(searchCriteria); Chart(transactions); return(View(new UserTransactionViewModel(transactions, SearchPeriod.Weekly))); }
/// <summary> /// Searches for transactions that match the given criteria in AX. /// </summary> /// <param name="currentChannelId">The current channel identifier.</param> /// <param name="criteria">Search criteria.</param> /// <param name="settings">The query result settings.</param> /// <returns>A collection of transactions.</returns> public IEnumerable <Transaction> SearchJournalTransactions(long currentChannelId, TransactionSearchCriteria criteria, QueryResultSettings settings) { ThrowIf.Null(criteria, "criteria"); ThrowIf.Null(settings, "settings"); var headQuarterCritera = new AxTransactionSearchCriteria(); headQuarterCritera.BarCode = criteria.Barcode; headQuarterCritera.ChannelReferenceId = criteria.ChannelReferenceId; headQuarterCritera.CurrentChannelId = currentChannelId; headQuarterCritera.CustomerAccountNumber = criteria.CustomerAccountNumber; headQuarterCritera.CustomerFirstName = criteria.CustomerFirstName; headQuarterCritera.CustomerLastName = criteria.CustomerLastName; headQuarterCritera.IncludeDetails = false; headQuarterCritera.ItemId = criteria.ItemId; headQuarterCritera.PagingInfo = settings.Paging; headQuarterCritera.ReceiptId = criteria.ReceiptId; headQuarterCritera.ReceiptEmailAddress = criteria.ReceiptEmailAddress; headQuarterCritera.SerialNumber = criteria.SerialNumber; headQuarterCritera.SalesId = criteria.SalesId; headQuarterCritera.StaffId = criteria.StaffId; headQuarterCritera.StoreId = criteria.StoreId; headQuarterCritera.TerminalId = criteria.TerminalId; headQuarterCritera.TransactionIds.AddRange(criteria.TransactionIds); headQuarterCritera.StartDateTime = criteria.StartDateTime.HasValue ? criteria.StartDateTime.Value.UtcDateTime.ToString("s") : string.Empty; headQuarterCritera.EndDateTime = criteria.EndDateTime.HasValue ? criteria.EndDateTime.Value.UtcDateTime.ToString("s") : string.Empty; try { if (!MethodsNotFoundInAx.Value.ContainsKey(SearchJournalTransactionsMethodName)) { ReadOnlyCollection <object> transactionData = null; transactionData = this.InvokeMethod( SearchJournalTransactionsMethodName, SerializationHelper.SerializeObjectToXml(headQuarterCritera)); // No matching orders were found. if (transactionData == null) { return(Enumerable.Empty <Transaction>()); } if (transactionData.Count != 1) { throw new InvalidOperationException( "TransactionServiceClient.SearchJournalTransactions returned an invalid result."); } // Parse transactions from results, the last value is the items for all transactions string transactionsXml = (string)transactionData[0]; var salesTransactions = SerializationHelper.DeserializeObjectDataContractFromXml <SalesTransaction[]>(transactionsXml); var transactions = ConvertToTransactions(salesTransactions); return(transactions); } } catch (Exception) { if (!MethodsNotFoundInAx.Value.ContainsKey(SearchJournalTransactionsMethodName)) { throw; } // Need to trigger fallback logic. } // Fallback to existing SearchOrders() call to meet SE deployment requirement. var orderSearchCriteria = new SalesOrderSearchCriteria(); orderSearchCriteria.Barcode = criteria.Barcode; orderSearchCriteria.ChannelReferenceId = criteria.ChannelReferenceId; orderSearchCriteria.CustomerAccountNumber = criteria.CustomerAccountNumber; orderSearchCriteria.CustomerFirstName = criteria.CustomerFirstName; orderSearchCriteria.CustomerLastName = criteria.CustomerLastName; orderSearchCriteria.IncludeDetails = false; orderSearchCriteria.ItemId = criteria.ItemId; orderSearchCriteria.ReceiptId = criteria.ReceiptId; orderSearchCriteria.ReceiptEmailAddress = criteria.ReceiptEmailAddress; orderSearchCriteria.SerialNumber = criteria.SerialNumber; orderSearchCriteria.StaffId = criteria.StaffId; orderSearchCriteria.StoreId = criteria.StoreId; orderSearchCriteria.TerminalId = criteria.TerminalId; orderSearchCriteria.SalesTransactionTypeValues = new[] { (int)TransactionType.BankDrop, (int)TransactionType.Payment, (int)TransactionType.TenderDeclaration, (int)TransactionType.SalesOrder, (int)TransactionType.SalesInvoice, (int)TransactionType.BankDrop, (int)TransactionType.SafeDrop, (int)TransactionType.IncomeExpense, (int)TransactionType.CustomerOrder }; orderSearchCriteria.SearchType = OrderSearchType.SalesTransaction; orderSearchCriteria.TransactionStatusTypes = new[] { TransactionStatus.Normal, TransactionStatus.Posted }; orderSearchCriteria.StartDateTime = criteria.StartDateTime; orderSearchCriteria.EndDateTime = criteria.EndDateTime; orderSearchCriteria.SalesId = criteria.SalesId; var maxNumberOfResults = settings.Paging.Top + settings.Paging.Skip; var orders = this.SearchOrders(orderSearchCriteria, maxNumberOfResults); return(ConvertToTransactions(orders.Results)); }
public Task <PagedResult <Transaction> > SearchJournalTransactions(TransactionSearchCriteria searchCriteria, QueryResultSettings queryResultSettings) { return(Task.Run(() => Runtime.Client.StoreOperationsManager.Create(CommerceRuntimeManager.Runtime).SearchJournalTransactions(searchCriteria, queryResultSettings))); }
private List <Transaction> GetTransactions(TransactionSearchCriteria searchCriteria) { UserBuilder user = new UserBuilder(AuthToken); return(user.GetTransactions(searchCriteria)); }
private static PagedResult <Transaction> SearchJournalTransactionsRemotely(TransactionSearchCriteria criteria, QueryResultSettings settings, RequestContext context) { var remoteSearchRequest = new SearchJournalTransactionsRealtimeRequest(criteria, settings); SearchJournalTransactionsRealtimeResponse journalTransactionsServiceResponse = context.Execute <SearchJournalTransactionsRealtimeResponse>(remoteSearchRequest); return(journalTransactionsServiceResponse.Transactions); }
private static PagedResult <Transaction> SearchJournalTransactionsLocally(TransactionSearchCriteria criteria, QueryResultSettings settings, RequestContext context) { var searchTransactionsDataRequest = new SearchJournalTransactionsDataRequest(criteria, settings); EntityDataServiceResponse <Transaction> searchJournalTransactions = context.Runtime .Execute <EntityDataServiceResponse <Transaction> >(searchTransactionsDataRequest, context); return(searchJournalTransactions.PagedEntityCollection); }