public void SerializesTansactionJournal()
        {
            var journal = new TransactionJournal();

            journal.Entries.Add(new JournalEntry
            {
                Address    = 1,
                Data       = new byte[] { 2, 3, 4 },
                Stamp      = 5,
                StreamName = "TestStream 1"
            });

            journal.Entries.Add(new JournalEntry
            {
                Address    = 6,
                Data       = new byte[] { 7, 8, 9 },
                Stamp      = 10,
                StreamName = "TestStream 2"
            });

            var deserialized = _serializer.Deserialize(_serializer.Serialize(journal));

            Assert.AreEqual(2, deserialized.Entries.Count);

            Assert.AreEqual(1, deserialized.Entries[0].Address);
            Assert.AreEqual(new byte[] { 2, 3, 4 }, deserialized.Entries[0].Data);
            Assert.AreEqual(5, deserialized.Entries[0].Stamp);
            Assert.AreEqual("TestStream 1", deserialized.Entries[0].StreamName);

            Assert.AreEqual(6, deserialized.Entries[1].Address);
            Assert.AreEqual(new byte[] { 7, 8, 9 }, deserialized.Entries[1].Data);
            Assert.AreEqual(10, deserialized.Entries[1].Stamp);
            Assert.AreEqual("TestStream 2", deserialized.Entries[1].StreamName);
        }
Exemple #2
0
        public async Task <TransactionResponse> CancelTransaction(TransactionRequest req)
        {
            TransactionResponse response = new TransactionResponse();

            if (db != null)
            {
                try
                {
                    Transaction model = await db.Transaction.Where(x => x.RowStatus == true && x.Id == req.ID).FirstOrDefaultAsync();

                    if (model != null)
                    {
                        var query     = db.TransactionLevel.Where(x => x.RowStatus == true && model.TransactionLevelId == x.Id).FirstOrDefault();
                        var findLevel = await(from level in db.TransactionLevel
                                              join status in db.TransactionStatus
                                              on level.TransactionStatusId equals status.Id
                                              where status.Name.Contains("Cancel") && status.RowStatus == true && level.RowStatus == true &&
                                              level.Name == query.Name
                                              select level).FirstOrDefaultAsync();



                        model.TransactionLevelId = findLevel.Id;
                        model.Modified           = DateTime.Now;
                        model.ModifiedBy         = req.ModifiedBy;

                        TransactionJournal journal = new TransactionJournal();
                        journal.TransactionId      = model.Id;
                        journal.BuyerId            = model.BuyerId;
                        journal.SellerId           = model.SellerId;
                        journal.NegoBarangId       = model.NegoBarangId;
                        journal.TransactionLevelId = model.TransactionLevelId;
                        journal.Created            = model.Created;
                        journal.CreatedBy          = model.CreatedBy;
                        journal.RowStatus          = true;

                        await db.TransactionJournal.AddAsync(journal);

                        await db.SaveChangesAsync();

                        response.Message = "Data has been Saved";
                    }
                    else
                    {
                        response.IsSuccess = false;
                        response.Message   = "Data Not Found";
                    }
                }
                catch (Exception ex)
                {
                    response.Message   = ex.ToString();
                    response.IsSuccess = false;
                }
            }
            return(response);
        }
Exemple #3
0
        public async Task <TransactionResponse> SubmitBuy(long id, long nominal, string username)
        {
            TransactionResponse response = new TransactionResponse();
            NegoBarang          nego     = new NegoBarang()
            {
                BarangId = id, TypePenawaran = "ask", Harga = nominal
            };
            NegoBarang ResultNego = await INego.GetNegoBarang(nego);

            UserProfile usrBuyer = await IAuth.GetUserProfileByEmail(username);

            Transaction tran = new Transaction()
            {
                BuyerId            = usrBuyer.Id,
                SellerId           = ResultNego.UserProfileId,
                NegoBarangId       = ResultNego.Id,
                TransactionLevelId = 1,

                CreatedBy = username,
                Created   = DateTime.Now,
                RowStatus = true
            };

            long TransID = await dep.SaveTransaction(tran);

            if (TransID < 1)
            {
                response.Message   = "Failed When Save Transaction";
                response.IsSuccess = false;
            }
            else
            {
                TransactionJournal journal = new TransactionJournal()
                {
                    TransactionId      = tran.Id,
                    BuyerId            = tran.BuyerId,
                    SellerId           = tran.SellerId,
                    NegoBarangId       = tran.NegoBarangId,
                    TransactionLevelId = tran.TransactionLevelId,

                    Created   = tran.Created,
                    CreatedBy = tran.CreatedBy,
                    RowStatus = tran.RowStatus,
                };
                long JournalID = await IJournal.SaveTransactionJournal(journal);

                if (JournalID < 1)
                {
                    log.Error("Failed when insert TransactionJournal, TransactionID = " + tran.Id);
                }
                response.Message   = "Transaction Success.";
                response.IsSuccess = true;
            }
            return(response);
        }
        public async Task <long> SaveTransactionJournal(TransactionJournal model)
        {
            if (db != null)
            {
                await db.TransactionJournal.AddAsync(model);

                await db.SaveChangesAsync();

                return(model.Id);
            }

            return(0);
        }
Exemple #5
0
        public async Task <TransactionResponse> AddPost(TransactionRequest model)
        {
            TransactionResponse response = new TransactionResponse();


            if (db != null)
            {
                try
                {
                    Transaction transaction = new Transaction();


                    transaction.BuyerId            = model.Buyer.ID;
                    transaction.SellerId           = model.Seller.ID;
                    transaction.NegoBarangId       = model.NegoBarang.ID;
                    transaction.TransactionLevelId = model.TrasanctionLevel.ID;
                    transaction.Created            = DateTime.Now;
                    transaction.CreatedBy          = model.CreatedBy;
                    transaction.RowStatus          = true;
                    await db.Transaction.AddAsync(transaction);


                    TransactionJournal journal = new TransactionJournal();
                    journal.TransactionId      = transaction.Id;
                    journal.BuyerId            = transaction.BuyerId;
                    journal.SellerId           = transaction.SellerId;
                    journal.NegoBarangId       = transaction.NegoBarangId;
                    journal.TransactionLevelId = transaction.TransactionLevelId;
                    journal.Created            = transaction.Created;
                    journal.CreatedBy          = transaction.CreatedBy;
                    journal.RowStatus          = true;

                    await db.TransactionJournal.AddAsync(journal);

                    await db.SaveChangesAsync();

                    response.Message = "Data has been saved!";
                }
                catch (Exception ex)
                {
                    response.IsSuccess = false;
                    response.Message   = ex.ToString();
                }
            }


            return(response);
        }
Exemple #6
0
        public async Task <TransactionResponse> ApproveTransaction(TransactionRequest req)
        {
            TransactionResponse response = new TransactionResponse();

            if (db != null)
            {
                try
                {
                    Transaction model = await db.Transaction.Where(x => x.RowStatus == true && x.Id == req.ID).FirstOrDefaultAsync();

                    if (model != null)
                    {
                        model.TransactionLevelId = req.TrasanctionLevel.ID;
                        model.Modified           = DateTime.Now;
                        model.ModifiedBy         = req.UserName;


                        TransactionJournal journal = new TransactionJournal();
                        journal.TransactionId      = model.Id;
                        journal.BuyerId            = model.BuyerId;
                        journal.SellerId           = model.SellerId;
                        journal.NegoBarangId       = model.NegoBarangId;
                        journal.TransactionLevelId = model.TransactionLevelId;
                        journal.Created            = DateTime.Now;
                        journal.CreatedBy          = req.UserName;
                        journal.RowStatus          = true;

                        await db.TransactionJournal.AddAsync(journal);

                        await db.SaveChangesAsync();

                        response.Message = "Data has been Saved";
                    }
                    else
                    {
                        response.IsSuccess = false;
                        response.Message   = "Data Not Found";
                    }
                }
                catch (Exception ex)
                {
                    response.Message   = ex.ToString();
                    response.IsSuccess = false;
                }
            }
            return(response);
        }
Exemple #7
0
        public async Task <TransactionResponse> SubmitSell(long id, long nominal, string username)
        {
            TransactionResponse response = new TransactionResponse();
            NegoBarang          nego     = new NegoBarang()
            {
                BarangId = id, TypePenawaran = "bid", Harga = nominal
            };
            NegoBarang ResultNego = await INego.GetNegoBarang(nego);

            UserProfile usrSell = await IAuth.GetUserProfileByEmail(username);

            UserDetail userDetail = await IAuth.GetUserDetailByID(usrSell.Id);

            if (userDetail == null)
            {
                response.IsSuccess = false;
                response.Message   = "Pastikan Anda adalah Seller yang terverifikasi";
                return(response);
            }
            if (userDetail.Description == null || userDetail.Description.ToLower() != "seller")
            {
                response.IsSuccess = false;
                response.Message   = "Pastikan Anda adalah Seller yang terverifikasi";
                return(response);
            }
            if (ResultNego == null)
            {
                response.Message   = "Failed When Save Transaction";
                response.IsSuccess = false;
                return(response);
            }
            Transaction tran = new Transaction()
            {
                BuyerId            = ResultNego.UserProfileId,
                SellerId           = usrSell.Id,
                NegoBarangId       = ResultNego.Id,
                TransactionLevelId = 1,

                CreatedBy = username,
                Created   = DateTime.Now,
                RowStatus = true
            };

            ResultNego.Modified       = DateTime.Now;
            ResultNego.ModifiedBy     = username;
            ResultNego.HasTransaction = true;

            long TransID = await dep.SaveTransaction(tran);

            if (TransID < 1)
            {
                response.Message   = "Failed When Save Transaction";
                response.IsSuccess = false;
            }
            else
            {
                TransactionJournal journal = new TransactionJournal()
                {
                    TransactionId      = tran.Id,
                    BuyerId            = tran.BuyerId,
                    SellerId           = tran.SellerId,
                    NegoBarangId       = tran.NegoBarangId,
                    TransactionLevelId = tran.TransactionLevelId,

                    Created   = tran.Created,
                    CreatedBy = tran.CreatedBy,
                    RowStatus = tran.RowStatus,
                };
                long JournalID = await IJournal.SaveTransactionJournal(journal);

                if (JournalID < 1)
                {
                    log.Error("Failed when insert TransactionJournal, TransactionID = " + tran.Id);
                }
                response.Message   = "Transaction Success.";
                response.IsSuccess = true;
            }
            INego.UpdatePost(ResultNego);
            return(response);
        }