Example #1
0
        public void CorrelationData_ToTransactionData_ShouldReturnSameData()
        {
            try
            {
                Correlation = new Correlation(new MemoryCorrelationHandler(), CallContextManagerInstance, MachineInformation);
                Correlation.CorrelationStart(null);

                CorrelationData data        = Correlation.CurrentCorrelation;
                TransactionData transaction = data.ToTransactionData();

                Assert.True(data.CallDepth == transaction.CallDepth, "Call depth properties should be equal.");
                Assert.True(data.EventSequenceNumber == transaction.EventSequenceNumber, "EventSequenceNumber properties should be equal.");
                Assert.True(data.TransactionId == transaction.TransactionId, "TransactionId properties should be equal.");
                Assert.True(data.UserHash == transaction.UserHash, "UserHash properties should be equal.");
                Assert.True(data.VisibleId == transaction.CorrelationId, "VisibleId and CorrelationId properties should be equal.");
            }
            finally
            {
                EndRequest();
            }
        }
Example #2
0
 void CorrectOnOneTransactionTypeExists()
 {
     if (CurrentPriceIndex == -1 && transactions.Count != 0)
     {
         int    lastIndex       = transactions.Count - 1;
         string transantionType = transactions[0].Bid == 0 ? "Bid" : "Ask";
         int    volume          = transactions[lastIndex].Volume + 5;
         double price;
         if (comparer.GetType() == typeof(PriceAscedingComparer))
         {
             price = IsDownMoving(transantionType) ? transactions[lastIndex].Price + 0.5 : transactions[0].Price - 0.5;
         }
         else
         {
             price = IsDownMoving(transantionType) ? transactions[lastIndex].Price - 0.5 : transactions[0].Price + 0.5;
         }
         TransactionData tdvm = new TransactionData(transantionType, volume, price);
         transactions.Add(tdvm);
         CurrentPriceIndex = transactions.IndexOf(tdvm);
     }
 }
Example #3
0
        public bool addTransaction(TransactionData transaction)
        {
            MySQLSuperManager dbm = GetLockedConnection();

            try {
                return(dbm.Manager.addTransaction(transaction));
            }
#pragma warning disable CS0168 // Variable ist deklariert, wird jedoch niemals verwendet
            catch (MySql.Data.MySqlClient.MySqlException e) {
#pragma warning restore CS0168 // Variable ist deklariert, wird jedoch niemals verwendet
                dbm.Manager.Reconnect();
                return(dbm.Manager.addTransaction(transaction));
            }
            catch (Exception e) {
                m_log.Error(e.ToString());
                return(false);
            }
            finally {
                dbm.Release();
            }
        }
Example #4
0
        public static int LoadTransactionData(string filepath, char separator = ',', bool hasHeader = true)
        {
            using StreamReader reader = new StreamReader(filepath);
            if (hasHeader)
            {
                reader.ReadLine();
            }

            int count = 0;
            List <TransactionData> data = new List <TransactionData>();

            while (!reader.EndOfStream)
            {
                string line = reader.ReadLine();
                data.Add(TransactionData.Parse(line, separator));
                ++count;
            }

            Transactions = data;
            return(count);
        }
Example #5
0
        public void GetCurrentData(GameData data)
        {
            PlasticData plasticData = new PlasticData();

            data.PlasticData = _plastic.GetData(plasticData);

            TransactionData transactionData = new TransactionData();

            data.TransactionData = _transaction.GetData(transactionData);

            List <PickerData> pickerDatas = new List <PickerData>();

            for (int i = 0; i < _pickerList.Count; i++)
            {
                PickerData pickerData = new PickerData();

                pickerDatas.Add(_pickerList[i].GetData(pickerData));

                data.PickerDataList.Add(pickerDatas[i]);
            }
        }
Example #6
0
        public IHttpActionResult SaveTransaction(TransactionData transactionData)
        {
            var ua = UserAccess.GetUserAccess(User.Identity.Name);

            if (ua.current_access == UserAccess.access_type.no_access)
            {
                return(Unauthorized());
            }
            transactionData.created_by_ip_address = ((HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.UserHostAddress;
            transactionData.SetUserProperties(ua);

            if (!transactionData.ValidateTransaction(ua)) // add check for C transactionin this validation function
            {
                if (!transactionData.can_accept_deposit && transactionData.transaction_type == "D")
                {
                    return(Unauthorized());
                }

                if (transactionData.error_text.Length == 0)
                {
                    transactionData.error_text = "There was an issue with some of the data";
                }
                return(Ok(transactionData));
            }
            // TODO: new receipt needs to be a TransactionView
            var td = transactionData.SaveTransactionData();

            if (transactionData.transaction_id == -1)
            {
                new ErrorLog("Error saving the transaction", "transactionData.ErrorText: " + transactionData.error_text, "TransactionDataController.SaveTransaction() >> transactionData.SaveTransactionData()", "", "");
            }
            if (td)
            {
                return(Ok(TransactionData.GetTransactionData("TransactionDataController.Save()", transactionData.transaction_id, ua.employee_id, ua)));
            }
            else
            {
                return(Ok(transactionData));
            }
        }
Example #7
0
        public IHttpActionResult EditPaymentMethod(PaymentMethodData payment_method_data)
        {
            if (payment_method_data.payment_method_data_id == -1)
            {
                return(BadRequest());
            }
            var ua = UserAccess.GetUserAccess(User.Identity.Name);

            if (!TransactionData.ValidateEdit(payment_method_data.transaction_id, ua))
            {
                return(Unauthorized());
            }

            //var user_ip_address = ((HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.UserHostAddress;
            payment_method_data.SetUserName(ua.user_name);

            if (ua.current_access == UserAccess.access_type.no_access)
            {
                return(Unauthorized());
            }
            if (!payment_method_data.ValidateChange())
            {
                if (payment_method_data.error_text.Length == 0)
                {
                    return(Ok("There was an issue with validating the payment method."));
                }
            }
            else
            {
                payment_method_data.added_after_save = false;
                if (!payment_method_data.SavePaymentMethod())
                {
                    if (payment_method_data.error_text.Length == 0)
                    {
                        return(Ok("There was an issue editing the payment method."));
                    }
                }
            }
            return(Ok());
        }
        public void Given_AWatchedAddress_When_ATransactionIsReceived_ThenTransactionDataIsAddedToTheAddress()
        {
            // Arrange.
            DataFolder dataFolder = CreateDataFolder(this);

            // Create the wallet to watch.
            WatchOnlyWallet wallet = this.CreateAndPersistAWatchOnlyWallet(dataFolder);

            // Create the address to watch.
            Script newScript  = BitcoinAddress.Create("mnSmvy2q4dFNKQF18EBsrZrS7WEy6CieEE", Network.TestNet).ScriptPubKey;
            string newAddress = newScript.GetDestinationAddress(Network.TestNet).ToString();

            // Create a transaction to be received.
            string      transactionHex = "010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff230384041200fe0eb3a959fe1af507000963676d696e6572343208000000000000000000ffffffff02155e8b09000000001976a9144bfe90c8e6c6352c034b3f57d50a9a6e77a62a0788ac0000000000000000266a24aa21a9ed0bc6e4bfe82e04a1c52e66b72b199c5124794dd8c3c368f6ab95a0ba6cde277d0120000000000000000000000000000000000000000000000000000000000000000000000000";
            Transaction transaction    = Transaction.Load(transactionHex, Network.TestNet);

            // Act.
            var walletManager = new WatchOnlyWalletManager(DateTimeProvider.Default, this.LoggerFactory.Object, Network.TestNet, dataFolder);

            walletManager.Initialize();
            walletManager.WatchAddress("mnSmvy2q4dFNKQF18EBsrZrS7WEy6CieEE");
            walletManager.ProcessTransaction(transaction);

            // Assert.
            WatchOnlyWallet returnedWallet = walletManager.GetWatchOnlyWallet();

            Assert.NotNull(returnedWallet);

            WatchedAddress addressInWallet = returnedWallet.WatchedAddresses[newScript.ToString()];

            Assert.NotNull(addressInWallet);
            Assert.False(addressInWallet.Transactions.IsEmpty);
            Assert.Single(addressInWallet.Transactions);

            TransactionData transactionExpected = addressInWallet.Transactions.Single().Value;

            Assert.Equal(transactionHex, transactionExpected.Hex);
            Assert.Null(transactionExpected.BlockHash);
            Assert.Null(transactionExpected.MerkleProof);
        }
        public bool ValidateTransactionData(TransactionData transactionData)
        {
            if (transactionData.department_control_data.Count() == 0 && controls_dict.Count() == 0)
            {
                return(true);
            }
            // We treat the Data.TransactionData class as a department class because it has all of the
            // departmental data we'll need to validate

            // first we'll see if this department is active or not. If it's not, we shouldn't be allowing
            // data to be saved
            if (controls_dict.Count() == 0 && transactionData.department_control_data.Count() > 0)
            {
                transactionData.error_text = "There was an issue validating the department information";
                new ErrorLog(
                    "Error: Control dictionary is not being populated.",
                    "Cannot validate department controls",
                    "controls_dict.Count(): " + controls_dict.Count().ToString(),
                    "Transaction.Department.ValidateTransactionData()",
                    "");
            }


            if (!GetCachedDict()[transactionData.department_id].is_active)
            {
                transactionData.error_text = "Department is no longer active.";
                return(false);
            }

            // let's make sure the department controls are valid
            if (!ValidateDepartmentControls(transactionData))
            {
                transactionData.error_text = "There was an issue validating some of the data";
                return(false);
            }

            return(true);

            // if (!ValidatePaymentTypes(transactionData)) return transactionData;
        }
Example #10
0
        protected void HandleTransactionData(TransactionData data)
        {
            SaveContractDetailsIfNeeded <OptionContract>(data.GetContract());
            //_session.Evict(data);
            using (ITransaction transaction = _session.BeginTransaction())
            {
                var nmsg = $"Write Transaction {data.OptionKey}";
                int tdId = 0;
                try
                {
                    if (_session.Get <TransactionData>(data.Id) == null)
                    {
                        Logger.InfoFormat($"!@#$%^&* - Try to save new transaction:(Id={tdId}) '{data.OptionKey}'.");
                        tdId = (int)_session.Save(data);
                    }
                    else
                    {
                        tdId = data.Id;
                        Logger.InfoFormat($"!@#$%^&* - Try to Merge to existing transaction:(Id={tdId}) ==>'{data.OptionKey}'.");
                        _session.Merge(data);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Error($"!@#$%^&* - Trying save transaction:(Id={data.Id}) ==> '{data.OptionKey}'. was failed: {ex.Message}.", ex);
                }

                try
                {
                    transaction.Commit();
                    _transactionDataCommited = transaction.WasCommitted;
                    //var obj = _session.Load<TransactionData>(tdId);
                    //_session.Evict(obj);
                }
                catch (Exception exception)
                {
                    Logger.Error("!@#$%^&* - Could not write to DB (Id={tdId})", exception);
                }
            }
        }
Example #11
0
 internal static List <TransactionData> GetTransactionData()
 {
     using (var context = new AirportInventoryEntities())
     {
         var transactionList = context.Transactions.
                               Where(h => 1 == 1).ToList();
         List <TransactionData> allTransaction = new List <TransactionData>();
         string transactionType = "";
         if (transactionList != null)
         {
             foreach (var transaction in transactionList)
             {
                 if (transaction.Transaction_Type)
                 {
                     transactionType = "IN";
                 }
                 else
                 {
                     transactionType = "OUT";
                 }
                 TransactionData transactionData = new TransactionData()
                 {
                     transaction_id        = transaction.Transaction_Id,
                     transaction_date_time = transaction.Transaction_DateTime.ToString(),
                     aircraft_id           = transaction.Aircraft_Id,
                     airport_id            = transaction.Airport_Id,
                     transaction_type      = transactionType,
                     quantity = transaction.Quantity,
                     transaction_parent_id = transaction.Transaction_Parent_Id
                 };
                 allTransaction.Add(transactionData);
             }
             return(allTransaction);
         }
         else
         {
             return(null);
         }
     }
 }
Example #12
0
    public void LoadTransactionListFromFile()
    {
        transactionGameObjectDict = new Dictionary <string, TransactionSummaryGameObjectList>();
        TransactionData transactionData = new TransactionData();

        string[] splitMainePanelName = selectedMainPanelKey.Split('_');

        if (isOwnerSelected)
        {
            transactionSummaryDataList = transactionData.GetTransactionsSortedByOwner();
            headerPanelDate.GetComponent <Text>().text  = "Transaction Date: " + splitMainePanelName[1] + " " + splitMainePanelName[2] + " " + splitMainePanelName[3];
            headerPanelOwner.GetComponent <Text>().text = "Owner: " + splitMainePanelName[0];
        }
        else
        {
            transactionSummaryDataList = transactionData.GetTransactionsSortedByDate();
            headerPanelDate.GetComponent <Text>().text  = "Transaction Date: " + splitMainePanelName[0] + " " + splitMainePanelName[1] + " " + splitMainePanelName[2];
            headerPanelOwner.GetComponent <Text>().text = "Owner: " + splitMainePanelName[3];
        }

        displayTransactionDetails(false, "");
    }
        static async Task MakeTransaction(TransactionData transactionData)
        {
            var transactionType   = transactionData.Deposits > decimal.Zero ? TransactionType.Deposit : TransactionType.Withdrawal;
            var transactionAmount = transactionData.Deposits > decimal.Zero ? transactionData.Deposits : transactionData.Withdrawals;

            var transactionInput = new TransactionInput()
            {
                Date            = transactionData.Date,
                TransactionType = transactionType,
                Amount          = Convert.ToDecimal(transactionAmount),
                Description     = transactionData.TransactionDetails
            };

            var transactionResult = new TransactionResult();

            if (transactionType == TransactionType.Deposit)
            {
                transactionResult = await DepositAsync(transactionInput);
            }
            else if (transactionType == TransactionType.Withdrawal)
            {
                transactionResult = await WithdrawAsync(transactionInput);
            }

            if (transactionResult.IsSuccessful)
            {
                Console.WriteLine($"Status: {transactionResult.Message}");
                Console.WriteLine($"Account No: {transactionResult.AccountNumber}");
                Console.WriteLine($"Current Balance: {transactionResult.Balance}");
                Console.WriteLine($"Currency: {transactionResult.Currency}");
            }
            else
            {
                Console.WriteLine($"Status: Transaction failed");
                Console.WriteLine($"Message: {transactionResult.Message}");
            }

            Console.WriteLine();
        }
Example #14
0
        public void TestPurgeTransactionRecord()
        {
            RecoveryFileLogger logger = new RecoveryFileLogger();

            logger.Location = nonDefaultLogLocation;
            logger.Initialize(this.resourceManagerId.ToString());

            TransactionData transactionData01 = new TransactionData();

            logger.LogRecoveryInfo(transactionData01.Transaction, transactionData01.RecoveryData);
            TransactionData transactionData02 = new TransactionData();

            logger.LogRecoveryInfo(transactionData02.Transaction, transactionData02.RecoveryData);

            Assert.IsTrue(File.Exists(this.GetFilename(logger, transactionData01)), "Recovery File was not created");
            Assert.IsTrue(File.Exists(this.GetFilename(logger, transactionData02)), "Recovery File was not created");

            logger.Purge();

            this.AssertFileIsDeleted(this.GetFilename(logger, transactionData01), 1000);
            this.AssertFileIsDeleted(this.GetFilename(logger, transactionData02), 1000);
        }
Example #15
0
        bool UpdateNonStackable(TransactionData ns)
        {
            if (ns.amount_diff > 0)
            {
                context.tb_nonstackable_items.Add(new NonStackable
                {
                    owner_id = owner_id,
                    type     = ns.item_type
                });
            }
            else
            {
                context.tb_nonstackable_items.Remove(new NonStackable
                {
                    owner_id = owner_id,
                    type     = ns.item_type,
                    dbid     = ns.dbid
                });
            }

            return(true);
        }
        private void SaveTransaction()
        {
            if (TransactionAlreadySaved)
            {
                return;
            }
            //Create Transuction Data object and send it:
            var transaction = new TransactionData()
            {
                TransactionTime = DateTime.Now,
                OrderStatus     = OrderStatusData,
                Order           = OrderStatusData.Order,
                OptionData      = OptionData,
                OptionKey       = OptionData.OptionKey,
                Symbol          = UnlManager.Symbol,
                RequieredMargin = RequieredMargin,
            };

            //Update about the new transaction
            UnlManager.Distributer.Enqueue(transaction);
            TransactionAlreadySaved = true;
        }
        public async Task MoveCarouse__TransactionQueue_DeviceResponse_Positive()
        {
            //Assume
            IDeviceResponse expected = new DeviceResponse()
            {
                HasError = false
            };
            CarouselFactory carouselFactory    = new CarouselFactory();
            Utility         utility            = new Utility();
            CarouselManager objCarouselManager = new CarouselManager(_configuration, _logger.Object, carouselFactory, _socket.Object, _deviceResponse.Object);

            TransactionData data = CreateTransactionQueueData();
            await objCarouselManager.CreateCarousel(data);

            Slot slot = await utility.BuildStorageSpaceItem(data.Devices.FirstOrDefault(dev => dev.Type.Equals("Carousel"))?.StorageSpaces);

            //Act
            IDeviceResponse actual = await objCarouselManager.MoveCarousel(data, slot);

            //Assert
            Assert.Equal(expected.HasError, actual.HasError);
        }
Example #18
0
        /// <summary>
        ///     Determines whether or not the input's address exists in the wallet's set of addresses.
        /// </summary>
        /// <param name="addresses">The wallet's external and internal addresses.</param>
        /// <param name="txDictionary">The set of transactions to check against.</param>
        /// <param name="txIn">The input to check.</param>
        /// <returns><c>true</c>if the input's address exist in the wallet.</returns>
        bool IsTxInMine(IEnumerable <HdAddress> addresses, Dictionary <uint256, TransactionData> txDictionary, TxIn txIn)
        {
            TransactionData previousTransaction = null;

            txDictionary.TryGetValue(txIn.PrevOut.Hash, out previousTransaction);

            if (previousTransaction == null)
            {
                return(false);
            }

            var previousTx = this.blockStore.GetTransactionById(previousTransaction.Id);

            if (txIn.PrevOut.N >= previousTx.Outputs.Count)
            {
                return(false);
            }

            // We now need to check if the scriptPubkey is in our wallet.
            // See https://github.com/bitcoin/bitcoin/blob/011c39c2969420d7ca8b40fbf6f3364fe72da2d0/src/script/ismine.cpp
            return(IsAddressMine(addresses, previousTx.Outputs[txIn.PrevOut.N].ScriptPubKey));
        }
        /// <summary>
        ///     Returns spreading with custom date range
        /// </summary>
        /// <param name="startDate">minimum date</param>
        /// <param name="endDate">max date</param>
        /// <returns>List with statistic items.</returns>
        public static ObservableCollection <StatisticItem> GetSpreading(DateTime startDate, DateTime endDate)
        {
            if (AllTransaction == null)
            {
                TransactionData.LoadList();
            }

            if (AllCategories == null)
            {
                CateogryData.LoadList();
            }

            var transactionListFunc =
                new Func <List <FinancialTransaction> >(() =>
                                                        AllTransaction
                                                        .Where(x => x.Category != null)
                                                        .Where(x => x.Date >= startDate.Date && x.Date <= endDate.Date)
                                                        .Where(x => x.Type == (int)TransactionType.Spending)
                                                        .ToList());

            return(GetSpreadingStatisticItems(transactionListFunc));
        }
Example #20
0
        public void IsMothlyFeeAdded()
        {
            decimal fee1 = 0m;
            decimal fee2 = 0m;


            FeeCalculator    SUT         = new FeeCalculator();
            ITransactionData transaction = new TransactionData()
            {
                Date         = new DateTime(2020, 5, 25),
                MerchantName = "TELIA",
                Fee          = 1.2m
            };

            fee1 = SUT.AddMonthlyFee(transaction);

            transaction.Date = transaction.Date.AddMonths(1);
            transaction.Fee  = 1.2m;
            fee2             = SUT.AddMonthlyFee(transaction);

            Assert.AreEqual(fee1, fee2);


            // Test if monthly fee is added if the basic fee was 0 and now 1.2.
            SUT         = new FeeCalculator();
            transaction = new TransactionData()
            {
                Date         = new DateTime(2020, 5, 25),
                MerchantName = "TELIA",
                Fee          = 0
            };
            fee1 = SUT.AddMonthlyFee(transaction);
            Assert.AreEqual(0m, fee1);

            transaction.Fee  = 1.2m;
            transaction.Date = new DateTime(2020, 5, 26);
            fee2             = SUT.AddMonthlyFee(transaction);
            Assert.AreEqual(30.2m, (fee2 - fee1));
        }
        public async Task <TResult> ExecuteTransactionAsync <TResult>(TransactionData data, Action <BaseResult> baseResult = null)
        {
            var command = new HttpCommand(this)
            {
                Api    = CommandApi.Transaction,
                Method = HttpMethod.Post
            };

            if (data.Action != null)
            {
                data.Action = data.Action.Replace("\r\n", " ");
            }

            var result = await command.RequestGenericSingleResult <TResult, InheritedCommandResult <TResult> >(data).ConfigureAwait(false);

            if (baseResult != null)
            {
                baseResult(result.BaseResult);
            }

            return(result.Result);
        }
        private Transaction Map(DbDataReader reader)
        {
            TransactionData data = new TransactionData()
            {
                Id       = reader.GetGuid(0),
                Revision = reader.GetInt32(1),
                Created  = reader.GetDateTime(2),
                Expires  = reader.IsDBNull(3) ? default(DateTime?) : reader.GetFieldValue <DateTime>(3),
                Expired  = reader.IsDBNull(4) ? default(DateTime?) : reader.GetFieldValue <DateTime>(4),
                Payload  = reader.IsDBNull(5) ? null : JsonConvert.DeserializeObject <ExpandoObject>(reader.GetString(5)),
                Script   = reader.IsDBNull(6) ? null : reader.GetString(6)
            };
            Guid?pid = reader.IsDBNull(7) ? default(Guid?) : reader.GetFieldValue <Guid>(7);

            if (pid != null)
            {
                data.Parent = new TransactionRevision(pid.Value, reader.GetInt32(8));
            }

            data.Status = (TransactionStatus)reader.GetInt32(9);
            data.Error  = reader.IsDBNull(10) ? null : JsonConvert.DeserializeObject <ExpandoObject>(reader.GetString(10));
            return(new Transaction(data, this));
        }
Example #23
0
    public void Undo()
    {
        SwitchOffOtherFunctionality();
        if (UndoStack.state == TransactionData.States.spawned)
        {
            //delete
            print("delete-Undo");
            UndoStack._object.SetActive(false);
            redoStack       = UndoStack;
            redoStack.state = TransactionData.States.deleted;
        }
        else if (UndoStack.state == TransactionData.States.deleted)
        {
            //Spawn
            print("Spwan-Undo");
            UndoStack._object.SetActive(true);
            redoStack       = UndoStack;
            redoStack.state = TransactionData.States.spawned;
        }

        undoBtn.SetActive(false);
        redoBtn.SetActive(true);
    }
Example #24
0
        public Error(CapturedException capturedException, Transaction transaction, string parentId, IApmLogger loggerArg)
        {
            Timestamp = TimeUtils.TimestampNow();
            Id        = RandomGenerator.GenerateRandomBytesAsString(new byte[16]);

            Exception = capturedException;

            TraceId       = transaction.TraceId;
            TransactionId = transaction.Id;
            ParentId      = parentId;
            Transaction   = new TransactionData(transaction.IsSampled, transaction.Type);

            if (transaction.IsSampled)
            {
                Context = transaction.Context;
            }

            IApmLogger logger = loggerArg?.Scoped($"{nameof(Error)}.{Id}");

            logger.Trace()
            ?.Log("New Error instance created: {Error}. Time: {Time} (as timestamp: {Timestamp})",
                  this, TimeUtils.FormatTimestampForLog(Timestamp), Timestamp);
        }
 public void UpdateDocumentStatus(updateStatusRequest updateStatusRequest)
 {
     for (int i = 0; i < updateStatusRequest.transactionDataID.Count(); i++)
     {
         TransactionData transactionData =
             repository.Single <TransactionData>(o => o.TransGUID == updateStatusRequest.transactionDataID[i].TransGUID &&
                                                 o.DocumentNumber == updateStatusRequest.transactionDataID[i].DocumentNumber &&
                                                 o.Key1 == updateStatusRequest.transactionDataID[i].Key1 &&
                                                 o.Key2 == updateStatusRequest.transactionDataID[i].Key2 &&
                                                 o.Key3 == updateStatusRequest.transactionDataID[i].Key3);
         if (transactionData != null)
         {
             transactionData.RowStatus = updateStatusRequest.transactionDataID[i].TransStatus;
             EntityHelper.SetAuditForUpdate(transactionData, "SERA");
             repository.Update(transactionData);
             repository.UnitOfWork.SaveChanges();
         }
         else if (transactionData == null)
         {
             break;
         }
     }
 }
Example #26
0
        public IHttpActionResult GetAllTransactionData(
            int page_number = -1
            , string display_name_filter       = ""
            , string completed_filter          = ""
            , int department_id_filter         = -1
            , string transaction_type_filter   = ""
            , string transaction_number_filter = ""
            , bool has_been_modified           = false
            //,long transaction_id_filter = -1
            )
        {
            var ua = UserAccess.GetUserAccess(User.Identity.Name);

            if (ua.current_access == UserAccess.access_type.no_access)
            {
                return(Unauthorized());
            }

            var tr = TransactionData.GetTransactionList
                         (ua
                         , page_number
                         , display_name_filter
                         , completed_filter
                         , transaction_type_filter
                         , transaction_number_filter
                         , department_id_filter
                         , has_been_modified //   only true matters
                                             //  ,transaction_id_filter
                         );

            if (tr == null)
            {
                return(InternalServerError());
            }

            return(Ok(tr));
        }
Example #27
0
        public async Task GetCategoryStatisticByDateRangeTest()
        {
            var category1 = CategoryData.CreateCategory(Guid.NewGuid(), "Products", "Orange", Enums.CategoryType.Expenditure);
            var category2 = CategoryData.CreateCategory(Guid.NewGuid(), "Products", "Cheese", Enums.CategoryType.Expenditure);
            var startDate = new DateTime(2018, 1, 1);
            var endDate   = new DateTime(2018, 1, 2);

            var transaction0 = TransactionData.CreateTransaction(Guid.NewGuid(), startDate, 200, category1);
            var transaction1 = TransactionData.CreateTransaction(Guid.NewGuid(), endDate, 100, category2);
            var transaction2 = TransactionData.CreateTransaction(Guid.NewGuid(), new DateTime(2017, 1, 1));
            var transaction3 = TransactionData.CreateTransaction(Guid.NewGuid(), new DateTime(2019, 1, 1));

            await _transactionRepository.CreateAsync(transaction0);

            await _transactionRepository.CreateAsync(transaction1);

            await _transactionRepository.CreateAsync(transaction2);

            await _transactionRepository.CreateAsync(transaction3);

            var query = new CategoryStatisticQuery(
                new DateRangeQuery(new DateQuery(startDate), new DateQuery(endDate)),
                Enums.CategoryType.Expenditure);

            var statistic = await _statisticService.GetCategoryStatisticAsync(query);

            var expected = new CategoryStatistic(new[]
            {
                new CategoryStatisticItem(category1, 200),
                new CategoryStatisticItem(category2, 100)
            },
                                                 300);

            var actual = statistic;

            Assert.That(expected, Is.EqualTo(actual));
        }
Example #28
0
        public async Task FindByDateTest()
        {
            var date      = new DateTime(2018, 1, 1);
            var dateQuery = new DateQuery(date);

            var category = CategoryData.CreateCategory(Guid.NewGuid());

            var transaction1 = TransactionData.CreateTransaction(Guid.NewGuid(), date, category: category);
            var transaction2 = TransactionData.CreateTransaction(Guid.NewGuid(), date.AddDays(1), category: category);
            var transaction3 = TransactionData.CreateTransaction(Guid.NewGuid(), date.AddDays(2), category: category);
            var transaction4 = TransactionData.CreateTransaction(Guid.NewGuid(), date.AddDays(3), category: category);

            await CommitCreateAsync(category);

            await CommitCreateAsync(transaction1);
            await CommitCreateAsync(transaction2);
            await CommitCreateAsync(transaction3);
            await CommitCreateAsync(transaction4);

            var foundTransactions = await TransactionRepository.FindAsync(
                new TransactionQuery(new DateRangeQuery(dateQuery, dateQuery)));

            Assert.That(foundTransactions, Is.EquivalentTo(new[] { transaction1 }));
        }
Example #29
0
        public async Task FindByDateRange_WhenOutOfRange_Test()
        {
            var startDate = new DateTime(2018, 1, 1);
            var endDate   = new DateTime(2017, 1, 4);

            var category = CategoryData.CreateCategory(Guid.NewGuid());

            var transaction1 = TransactionData.CreateTransaction(Guid.NewGuid(), startDate, category: category);
            var transaction2 = TransactionData.CreateTransaction(Guid.NewGuid(), startDate.AddDays(1), category: category);
            var transaction3 = TransactionData.CreateTransaction(Guid.NewGuid(), startDate.AddDays(2), category: category);
            var transaction4 = TransactionData.CreateTransaction(Guid.NewGuid(), startDate.AddDays(3), category: category);

            await CommitCreateAsync(category);

            await CommitCreateAsync(transaction1);
            await CommitCreateAsync(transaction2);
            await CommitCreateAsync(transaction3);
            await CommitCreateAsync(transaction4);

            var dateRangeQuery    = new DateRangeQuery(new DateQuery(startDate), new DateQuery(endDate));
            var foundTransactions = await TransactionRepository.FindAsync(new TransactionQuery(dateRangeQuery));

            Assert.That(foundTransactions, Is.Empty);
        }
        private static void VerifyTransaction(CreateTransactionRequest request)
        {
            TransactionData transaction = new TransactionData
            {
                From         = request.From,
                To           = request.To,
                Value        = request.Value,
                Fee          = request.Fee,
                DateCreated  = request.DateCreated,
                Data         = request.Data,
                SenderPubKey = request.SenderPubKey
            };

            string transactionJson = JsonUtils.Serialize(transaction, false);

            byte[]     transactionDataHash = HashUtils.ComputeSha256(transactionJson.GetBytes());
            BigInteger r         = new BigInteger(request.SenderSignature[0], 16);
            BigInteger s         = new BigInteger(request.SenderSignature[1], 16);
            ECPoint    publicKey = EncryptionUtils.DecompressKey(request.SenderPubKey);

            bool valid = EncryptionUtils.VerifySignature(publicKey, r, s, transactionDataHash);

            Console.WriteLine("Signature valid: " + valid);
        }
Example #31
0
        public void AddTransaction(TransactionData transaction)
        {
            if (transaction == null)
            {
                throw new ArgumentNullException("transaction");
            }

            this.transactionAdditions.Add(new OrderedGuid
            {
                Guid = transaction.TransactionId,
                Order = this.orderIndex++,
            });
        }
        public void Serialize(TransactionData tran)
        {
            Serialize(Magic.TypeTransactionData);

            if (tran.Creates != null) {
                Serialize(tran.Creates.Count);
                for (int index = 0; index < tran.Creates.Count; index++)
                    Serialize(tran.Creates[index]);
            } else {
                Serialize(0);
            }

            if (tran.Updates != null) {
                Serialize(tran.Updates.Count);
                for (int index = 0; index < tran.Updates.Count; index++)
                    Serialize(tran.Updates[index]);
            } else {
                Serialize(0);
            }

            if (tran.Deletes != null) {
                Serialize(tran.Deletes.Count);
                for (int index = 0; index < tran.Deletes.Count; index++)
                    Serialize(tran.Deletes[index]);
            } else {
                Serialize(0);
            }
        }
 static public StringBuilder Serialize(StringBuilder sb, TransactionData tran)
 {
     sb.Append(TypeTransactionData);
     for (int index = 0; index < tran.creates.Count; index++)
         Serialize(sb, tran.creates[index]);
     for (int index = 0; index < tran.updates.Count; index++)
         Serialize(sb, tran.updates[index]);
     for (int index = 0; index < tran.deletes.Count; index++)
         Serialize(sb, tran.deletes[index]);
     sb.Append(' ');
     return sb;
 }
Example #34
0
 /// <remarks/>
 public void StopTransactionAsync(int transactionId, string idTag, System.DateTime timestamp, int meterStop, TransactionData[] transactionData)
 {
     this.StopTransactionAsync(transactionId, idTag, timestamp, meterStop, transactionData, null);
 }
Example #35
0
 /// <remarks/>
 public System.IAsyncResult BeginStopTransaction(int transactionId, string idTag, System.DateTime timestamp, int meterStop, TransactionData[] transactionData, System.AsyncCallback callback, object asyncState)
 {
     return this.BeginInvoke("StopTransaction", new object[] {
                 transactionId,
                 idTag,
                 timestamp,
                 meterStop,
                 transactionData}, callback, asyncState);
 }
Example #36
0
 /// <remarks/>
 public void StopTransactionAsync(int transactionId, string idTag, System.DateTime timestamp, int meterStop, TransactionData[] transactionData, object userState)
 {
     if ((this.StopTransactionOperationCompleted == null)) {
         this.StopTransactionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnStopTransactionOperationCompleted);
     }
     this.InvokeAsync("StopTransaction", new object[] {
                 transactionId,
                 idTag,
                 timestamp,
                 meterStop,
                 transactionData}, this.StopTransactionOperationCompleted, userState);
 }
Example #37
0
 public void AddTransaction(TransactionData transaction)
 {
 }
 static public bool IsTransactionDataEmpty(TransactionData td) {
     return (td.Updates == null || td.Updates.Count == 0)
         && (td.Creates == null || td.Creates.Count == 0)
         && (td.Deletes == null || td.Deletes.Count == 0)
         ;
 }