private List <TransactionLink> ParseTransactionLinks(XElement root) { var result = new List <TransactionLink>(); var linksElement = root.Element(XmlParsersConfig.ElementLinks); var linkElements = linksElement.Elements(XmlParsersConfig.ElementTransactionLink); foreach (var xElement in linkElements) { var link = new TransactionLink() { Id = int.Parse(xElement.Attribute(XmlParsersConfig.AttributeId).Value), Type = (TransactionLinkType)Enum.Parse(typeof(TransactionLinkType), xElement.Attribute(XmlParsersConfig.AttributeType).Value), SourceTransactionKindId = int.Parse(xElement.Attribute(XmlParsersConfig.AttributeSourceTransactionId).Value), DestinationTransactionKindId = int.Parse(xElement.Attribute(XmlParsersConfig.AttributeDestinationTransactionId).Value), SourceCompletion = (TransactionCompletion)Enum.Parse(typeof(TransactionCompletion), xElement.Attribute(XmlParsersConfig.AttributeSourceCompletion).Value), DestinationCompletion = (TransactionCompletion)Enum.Parse(typeof(TransactionCompletion), xElement.Attribute(XmlParsersConfig.AttributeDestinationCompletion).Value), }; var sourceCardinalityElement = xElement.Element(XmlParsersConfig.ElementSourceCardinality); var destinationCardinalityElement = xElement.Element(XmlParsersConfig.ElementDestinationCardinality); var sourceCardinality = (TransactionLinkCardinality)Enum.Parse(typeof(TransactionLinkCardinality), sourceCardinalityElement.Attribute(XmlParsersConfig.AttributeCardinality).Value); var destinationCardinality = (TransactionLinkCardinality)Enum.Parse(typeof(TransactionLinkCardinality), sourceCardinalityElement.Attribute(XmlParsersConfig.AttributeCardinality).Value); link.SourceCardinality = sourceCardinality; link.DestinationCardinality = destinationCardinality; if (sourceCardinality == TransactionLinkCardinality.Interval) { var intervalElement = sourceCardinalityElement.Element(XmlParsersConfig.ElementInterval); var min = int.Parse(intervalElement.Attribute(XmlParsersConfig.AttributeMin).Value); var max = int.Parse(intervalElement.Attribute(XmlParsersConfig.AttributeMax).Value); link.SourceCardinalityInterval = new CardinalityInterval(min, max); } if (destinationCardinality == TransactionLinkCardinality.Interval) { var intervalElement = destinationCardinalityElement.Element(XmlParsersConfig.ElementInterval); var min = int.Parse(intervalElement.Attribute(XmlParsersConfig.AttributeMin).Value); var max = int.Parse(intervalElement.Attribute(XmlParsersConfig.AttributeMax).Value); link.DestinationCardinalityInterval = new CardinalityInterval(min, max); } result.Add(link); } return(result); }
private List <TransactionKind> GetTransactionDefinitions(ProcessKind process) { var t1 = new TransactionKind("T1", "Rental contracting", process.Id, actorRenter.Id, actorRentalContracter.Id); var t2 = new TransactionKind("T2", "Rental payment", process.Id, actorRentalContracter.Id, actorRenter.Id); var t3 = new TransactionKind("T3", "Car pick up", process.Id, actorDriver.Id, actorCarIssuer.Id); var t4 = new TransactionKind("T4", "Car drop off", process.Id, actorCarIssuer.Id, actorDriver.Id); var t5 = new TransactionKind("T5", "Penalty payment", process.Id, actorCarIssuer.Id, actorDriver.Id); t1.AddChild(t2); t3.AddChild(t4); t3.AddChild(t5); process.AddTransactionLink(t1, t2, TransactionCompletion.Requested, TransactionCompletion.Promised, TransactionLinkType.Response); process.AddTransactionLink(t2, t1, TransactionCompletion.Promised, TransactionCompletion.Promised, TransactionLinkType.Waiting); process.AddTransactionLink(t2, t1, TransactionCompletion.Accepted, TransactionCompletion.Executed, TransactionLinkType.Waiting); process.AddTransactionLink(t3, t4, TransactionCompletion.Promised, TransactionCompletion.Requested, TransactionLinkType.Response); process.AddTransactionLink(t4, t3, TransactionCompletion.Promised, TransactionCompletion.Executed, TransactionLinkType.Waiting); var linkT4T5Reject = new TransactionLink() { SourceTransactionKindId = t4.Id, DestinationTransactionKindId = t5.Id, SourceCompletion = TransactionCompletion.Rejected, DestinationCompletion = TransactionCompletion.Requested, SourceCardinality = TransactionLinkCardinality.ZeroToOne, Type = TransactionLinkType.Response }; process.AddTransactionLink(linkT4T5Reject); var linkT5T4Ac = new TransactionLink() { SourceTransactionKindId = t5.Id, DestinationTransactionKindId = t4.Id, SourceCompletion = TransactionCompletion.Accepted, DestinationCompletion = TransactionCompletion.Accepted, DestinationCardinality = TransactionLinkCardinality.ZeroToOne, Type = TransactionLinkType.Waiting }; process.AddTransactionLink(linkT5T4Ac); return(new List <TransactionKind> { t1, t3 }); }
public IActionResult ViewDetails(int id) { StatusNames statusNames = new StatusNames(); ViewBag.StatusEs = new SelectList(statusNames.GetStatuses().Where(s => s.Status != 1), "Status", "Name"); TransactionDetails details = new TransactionDetails(); Transactions tr = transactionService.GetTransaction(id); TransactionLink link = transactionLinkService.GetTransactionLinks().Where(s => s.TransactionID == id).FirstOrDefault(); details.FirstName = tr.FirstName; details.LastName = tr.LastName; details.BuyerEmail = tr.BuyerEmail; details.ItemName = tr.ItemName; details.DescriptionOfItem = tr.DescriptionOfItem; details.Amount = tr.Amount; details.DeliveryType = tr.DeliveryTypeID == 1 ? "Free Delivery" : tr.DeliveryTypeID == 2 ? "Paid Delivery" : ""; details.Deliveryfee = tr.Deliveryfee != 0 ? tr.Deliveryfee : tr.Deliveryfee == 0 ? 0 : 0; details.DeliveryTime = tr.DeliveryTime; details.TermsOfReturns = tr.TermsOfReturns; details.ProductImageUrl = tr.ProductImageUrl; details.ProductImageUrl1 = tr.ProductImageUrl1; details.ProductImageUrl2 = tr.ProductImageUrl2; details.ProductImageUrl3 = tr.ProductImageUrl3; details.ProductImageUrl4 = tr.ProductImageUrl4; details.SellerName = tr.SellerName; details.SellerEmail = tr.SellerEmail; details.escrowfee = tr.escrowfee; details.Totalfee = tr.Totalfee; details.LinkCode = link.LinkCode; details.LinkID = link.Id; details.TransactionID = tr.Id; details.statusID = tr.Status; details.Status = tr.Status == 1 ? "<div style=\"color:red\">Pending<div>" : tr.Status == 2 ? "<div style=\"color:yellow\">Paid</div>" : tr.Status == 3 ? "<div style=\"color:purple\">Shipped</div>" : tr.Status == 4 ? "<div style=\"color:green\">Receieved</div>" : ""; return(View(details)); }
private void SentMailUpdate(Transactions tr, TransactionLink link) { }
public IActionResult GenerateLink(IFormCollection form, [FromServices] IEmailSender emailSender, [FromServices] IConfiguration configuration) { var users = GetCurrentUserAsync(); //transactiona.SellerID = users.Result.Id; TransactionVM transaction = JsonConvert.DeserializeObject <TransactionVM>(form["EmployeeInfo"]); try { Transactions transactions = new Transactions(); if (transaction.UserRoleId == 1) { transactions.SellerName = users.Result.FirstName + " " + users.Result.LastName; transactions.SellerEmail = users.Result.Email; transactions.SellerID = users.Result.Id; transactions.BuyerEmail = transaction.Email; } if (transaction.UserRoleId == 2) { transactions.SellerEmail = transaction.SellerEmail; transactions.BuyerEmail = users.Result.Email; } transactions.UserID = users.Result.Id; transactions.FirstName = transaction.FirstName; transactions.LastName = transaction.LastName; transactions.ItemName = transaction.ItemName; transactions.Amount = transaction.Amount; transactions.UserRoleId = transaction.UserRoleId; transactions.DescriptionOfItem = transaction.DescriptionOfItem; transactions.DeliveryTypeID = transaction.DeliveryTypeID; transactions.Deliveryfee = transaction.Deliveryfee; transactions.DeliveryWindowID = transaction.DeliveryWindowID; transactions.DeliveryTime = transaction.DeliveryTime; transactions.TotalDeliveryTime = transaction.DeliveryWindowID == 15 ? transaction.DeliveryTime + 14 : transaction.DeliveryWindowID + transaction.DeliveryTime; transactions.TermsOfReturns = transaction.TermsOfReturns; transactions.AddDate = DateTime.Now; transactions.Status = 1; int i = 0; var uploadFiles = Request.Form.Files; foreach (var file in uploadFiles) { Guid nameguid = Guid.NewGuid(); string webrootpath = env.WebRootPath; string filename = nameguid.ToString(); string extension = Path.GetExtension(file.FileName); string foldername = "ProductImage"; filename = filename + extension; string path = Path.Combine(webrootpath, foldername, filename); using (var fileStream = new FileStream(path, FileMode.Create)) { file.CopyTo(fileStream); } string pathName = Path.Combine(foldername, filename); if (i == 0) { transactions.ProductImageUrl = "~/ProductImage/" + filename; } if (i == 1) { transactions.ProductImageUrl1 = "~/ProductImage/" + filename; } if (i == 2) { transactions.ProductImageUrl2 = "~/ProductImage/" + filename; } if (i == 3) { transactions.ProductImageUrl3 = "~/ProductImage/" + filename; } if (i == 4) { transactions.ProductImageUrl4 = "~/ProductImage/" + filename; } i++; } int feeID = GetFeeIDByAmount(transaction.Amount); var efp = feeService.GetFee(feeID).Percentage; var ef = transactions.escrowfee = (transaction.Amount * efp) / 100; if (transaction.Deliveryfee != null) { transactions.Totalfee = transaction.Amount + transaction.Deliveryfee.Value + ef; } else if (transaction.Deliveryfee == null) { transactions.Totalfee = transaction.Amount + ef; } transactionService.InsertTransaction(transactions); TransactionLink link = new TransactionLink(); Guid guid = Guid.NewGuid(); link.SellerID = transactions.SellerID; link.TransactionID = transactions.Id; link.LinkCode = guid; link.AddDate = DateTime.Now; link.Status = 1; transactionLinkService.InsertTransactionLink(link); string coded = link.LinkCode.ToString(); var linkas = Url.Action("TransactionView", "MyTransaction", new { code = link.LinkCode }, Request.Scheme, Request.Host.ToString()); var title = "Pay Guardex: You have a transaction."; var title1 = "Pay Guardex: You have started a transaction."; ///mail to buyer: var mailbody = "<html>" + "<head>" + "<link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css\" integrity=\"sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk\" crossorigin=\"anonymous\">" + "</head>" + "<body>" + "<div class=\"container\">" + "<div class=\"row\">" + "<div class=\"col-md-12\" style=\"padding:30px;background-color:#d8e9ff\">" + "<h3 style=\"color:forestgreen\">You have a transaction on Pay Guardex</h3>" + "<div>" + "<p>You have transaction with " + transactions.SellerEmail + " </p>" + "</div>" + "<div>" + "<p>" + transactions.SellerEmail + " has created a transaction with you on payguardex.com.Your transaction code is :<br><div style=\"text-align:center\"><h5> <b> " + coded + "</b></h5></div></p>" + "<p>Use the code to manage transaction and here is the bank information for your payment.</p>" + "<p>Bank informations goes here</p>" + "<p>Please visit the link or click the button to provide us payment documents.</p>" + "<p>" + linkas + "</p>" + "</div>" + "<div style=\"text-align:center\">" + "<a href=" + linkas + " class=\"btn btn-success\"> Manage Transaction : </a>" + "</div>" + "</div>" + "</div>" + "</div>" + "</ body >" + "</html>"; ///mail to seller var mailbody1 = "<html>" + "<head>" + "<link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css\" integrity=\"sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk\" crossorigin=\"anonymous\">" + "</head>" + "<body>" + "<div class=\"container\">" + "<div class=\"row\">" + "<div class=\"col-md-12\" style=\"padding:30px;background-color:#d8e9ff\">" + "<h3 style=\"color:forestgreen\">You have started a transaction on Pay Guardex</h3>" + "<div>" + "<p>You started have transaction with " + transactions.BuyerEmail + " </p>" + "</div>" + "<div>" + "<p>Your transaction code is : " + coded + "</p>" + "<p>Please do not share this code to anyone.</p>" + "<p>We have sent an email to buyer.</p>" + "<p></p>" + "</div>" + "<div style=\"text-align:center\">" + "<a href=" + linkas + " class=\"btn btn-success\"> Manage Transaction</a>" + "</div>" + "</div>" + "</div>" + "</div>" + "</ body >" + "</html>"; emailSender.Post( subject: title, body: mailbody, recipients: transactions.BuyerEmail, sender: configuration["AdminContact"]); emailSender.Post( subject: title1, body: mailbody1, recipients: transactions.SellerEmail, sender: configuration["AdminContact"]); return(Json(new { success = true, link = coded })); } catch (Exception ex) { return(Json(new { success = false, message = ex.Message })); } }
public void UpdateTransactionLink(TransactionLink TransactionLink) { TransactionLinkRepository.Update(TransactionLink); }
public void InsertTransactionLink(TransactionLink TransactionLink) { TransactionLinkRepository.Insert(TransactionLink); }
public void DeleteTransactionLink(int id) { TransactionLink TransactionLink = TransactionLinkRepository.Get(id); TransactionLinkRepository.Remove(TransactionLink); }