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); }
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); }
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); }
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); }
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); }
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); }