public ActionResult BufferSave(BufferRegister model) { try { //check if model email exists if (Helpers.MembUsers.UserExists(model.BufferContact.Email)) { throw new Exception("Invalid information, this account already exists, please return and correct the information."); } using (AppDbContext context = new AppDbContext()) { //save buffer model string query = "BufferRegisterSave @Email, @FirstName, @LastName, @City, @MembershipId"; //*** this needs to change, call function and properly fill the model object (currently it doesnt get filled) BufferRegister mMembership = context.Database.SqlQuery <BufferRegister>(query, new SqlParameter("@Email", model.BufferContact.Email), new SqlParameter("@FirstName", model.BufferContact.FirstName), new SqlParameter("@LastName", model.BufferContact.LastName), new SqlParameter("@City", model.BufferContact.City), new SqlParameter("@MembershipId", model.BufferMembership.MembershipID)) .First(); } return(View(model)); } catch (Exception ex) { ModelState.AddModelError("CustomError", "Error: " + ex.Message); return(View("Error")); } }
public ActionResult BufferInit(BufferRegister model) { try { //BufferRegister model = new BufferRegister(); using (AppDbContext context = new AppDbContext()) { string query; //get selected membership //query = "select * from Membership where MembershipId=@MembershipId"; //Membership mMembership = context.Database.SqlQuery<Membership>(query, new SqlParameter("@MembershipId", model.BufferMembership.MembershipID)).First(); //model.BufferMembership = mMembership; //gateway query = "select * from Gateways where IsDefault=1"; Gateway mGateway = context.Database.SqlQuery <Gateway>(query).First(); model.BufferGateway = mGateway; } return(View(model)); } catch (Exception ex) { ModelState.AddModelError("CustomError", "Error: " + ex.Message); return(View("Error")); } }
public BufferRegister GetBufferRegisterByPayToken(string token, AppDbContext ctx) { BufferRegister model = new BufferRegister(); using (SqlConnection connection = ctx.Database.Connection as SqlConnection) { if (connection.State != System.Data.ConnectionState.Open) { connection.Open(); } using (SqlCommand command = connection.CreateCommand()) { command.CommandText = "select b.*, m.Title MembershipTitle, m.[Description] MembershipDescription, m.RoleName, m.Price, g.GatewayID, g.GatewayName from BufferRegister b left join Membership m on m.MembershipID = b.MembershipId left join Gateways g on g.IsDefault = 1 where b.TransactionToken = @TransactionToken"; command.Parameters.AddWithValue("@TransactionToken", token); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { model.TokenID = (Guid)reader["TokenID"]; //contact Contact modelContact = new Contact(); modelContact.Email = reader["Email"].ToString(); modelContact.FirstName = reader["FirstName"].ToString(); modelContact.LastName = reader["LastName"].ToString(); modelContact.City = reader["City"].ToString(); model.BufferContact = modelContact; Membership modelMmb = new Membership(); modelMmb.MembershipID = int.Parse(reader["MembershipId"].ToString()); modelMmb.Title = reader["MembershipTitle"].ToString(); modelMmb.Description = reader["MembershipDescription"].ToString(); modelMmb.RoleName = reader["RoleName"].ToString(); var dblPrice = reader["Price"].ToString(); decimal dblMPrice = 0; decimal.TryParse(dblPrice, out dblMPrice); modelMmb.Price = dblMPrice; model.BufferMembership = modelMmb; PayTransaction modelTrans = new PayTransaction(); modelTrans.Amount = dblMPrice; modelTrans.PayerID = Tools.SafeGetString(reader, "RoleName"); modelTrans.TransactionNumber = Tools.SafeGetString(reader, "TransactionNumber"); modelTrans.TransactionToken = Tools.SafeGetString(reader, "TransactionToken"); model.BufferTransaction = modelTrans; Gateway modelGateway = new Gateway(); modelGateway.GatewayId = reader["GatewayID"] as int? ?? default(int); modelGateway.GatewayName = Tools.SafeGetString(reader, "GatewayName"); model.BufferGateway = modelGateway; } if (connection.State == System.Data.ConnectionState.Open) { connection.Close(); } } } return(model); }
public ActionResult Paypal(BufferRegister model) { try { return(View(model)); } catch (Exception ex) { ModelState.AddModelError("CustomError", "Error: " + ex.Message); return(View("Error")); } }
public Processor() { SBUS = new SourceBus(); DBUS = new DestinationBus(); RBUS = new ResultBus(); PC = new ProgramCounter(); IR = new InstructionRegister(); RG = new GeneralRegisters(); ALU = new ArithmeticLogicalUnit(); FLAGS = new FlagsRegister(); MEM = new Memory(); MDR = new MemoryDataRegister(); ADR = new AddressRegister(); IVR = new InterruptVectorRegister(); SP = new StackPointer(); T = new BufferRegister(); SEQ = new Sequencer(); }
public static bool CreateMember(BufferRegister model, AuthDbContext ctx) { var UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(ctx)); //Here we create a Admin super user who will maintain the website var user = new ApplicationUser(); user.Email = model.BufferContact.Email; user.UserName = user.Email; string userPWD = "xyz"; var chkUser = UserManager.Create(user, userPWD); //if (!RoleManager.RoleExists(model.BufferMembership.RoleName)) { } //Add default User to Role Admin if (chkUser.Succeeded) { var result1 = UserManager.AddToRole(user.Id, model.BufferMembership.RoleName); } return(true); }
public ActionResult PaymentSend(BufferRegister model) { try { //get the information as saved from DB for security purposes // example: send the exact amount as indicated in the database, do not use model (model can be changed in browser inspect source etc) //BufferRegister dbModel = DBHelper.DBMembership.GetModelByEmail(model.Email); string query; string nameProduct = HttpUtility.UrlEncode(model.BufferMembership.Title); string descProduct = HttpUtility.UrlEncode(model.BufferMembership.Description); string currency = "CAD"; decimal tax = (decimal)13 / 100; string sTax = Helpers.Tools.PriceFormat(tax); string Amount = Helpers.Tools.PriceFormat(model.BufferMembership.Price); string totalAmount = Helpers.Tools.PriceFormat(model.BufferMembership.Price * (1 + tax)); string sTaxAmt = Helpers.Tools.PriceFormat(tax * model.BufferMembership.Price); // This are the URLs the PayPal process uses. The endpoint URL is created using the NVP string generated below while the redirect url is where the page the user will navigate to when leaving PayPal plus the PayerID and the token the API returns when the request is made. string NVP = string.Empty; // API call method: add the desired checkout method. As I've mentioned above, we're using the express checkout. NVP += "METHOD=SetExpressCheckout"; NVP += "&VERSION=86"; // Credentials identifying you as the merchant NVP += "&USER="******"&PWD=" + Your_Test_Account_Password; NVP += "&SIGNATURE=" + Your_Test_Account_Signature; // Redirect from PayPal portal NVP += "&RETURNURL=" + returnURL; // Return URL from the PayPal portal for completed payment NVP += "&CANCELURL=" + cancelURL; // Return URL from the PayPal portal for a cancelled purchase NVP += "&L_BILLINGTYPE0=RecurringPayments"; NVP += "&L_BILLINGAGREEMENTDESCRIPTION0=" + nameProduct; // Products involved in the transaction NVP += "&PAYMENTREQUEST_0_PAYMENTACTION=Sale"; NVP += "&PAYMENTREQUEST_0_CURRENCYCODE=" + currency; // Tax amount NVP += "&PAYMENTREQUEST_0_AMT=" + totalAmount; // Total payment for the transaction //L Payment NVP += "&L_PAYMENTREQUEST_0_AMT0=" + totalAmount; // Product price //NVP += "&L_PAYMENTREQUEST_0_ITEMAMT0=" + Amount; // Product price NVP += "&L_PAYMENTREQUEST_0_TAXAMT0=" + sTaxAmt; // Product price NVP += "&L_PAYMENTREQUEST_0_QTY0=1"; // Product quantity NVP += "&L_PAYMENTREQUEST_0_NAME0=" + nameProduct; // Product name System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; // Make the API call to the PayPal Service HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endpoint); request.Method = "POST"; request.ContentLength = NVP.Length; string sResponse = string.Empty; using (StreamWriter sw = new StreamWriter(request.GetRequestStream())) { sw.Write(NVP); } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader sr = new StreamReader(response.GetResponseStream())) { sResponse = sr.ReadToEnd(); } // Receive the token for the operation and redirect the user to the generated URL for the PayPal portal string token = string.Empty; string[] splitResponse = sResponse.Split('&'); if (splitResponse.Length > 0) { foreach (string responseField in splitResponse) { if (responseField.Contains("TOKEN")) { token = responseField.Substring(6); break; } } if (!string.IsNullOrEmpty(token)) { //token receiving - payment sent ok model.BufferTransaction.TransactionToken = HttpUtility.UrlDecode(token); //save return token update model in database using (AppDbContext context = new AppDbContext()) { query = "update BufferRegister set TransactionToken = @TransactionToken where Email = @Email"; context.Database.ExecuteSqlCommand(query, new SqlParameter("@Email", model.BufferContact.Email), new SqlParameter("@TransactionToken", model.BufferTransaction.TransactionToken)); } redirectUrl = string.Format(redirectUrl, token); //redirect to paypal website Response.Redirect(redirectUrl); } } return(View()); } catch (Exception ex) { ModelState.AddModelError("CustomError", ex.Message); return(View("Error")); } }
public void SetT(BufferRegister T) { this.T = T; }
/// <summary> /// Submit Stripe Payment from payment page /// </summary> /// <param name="model"></param> /// <returns></returns> public ActionResult PaymentReceive(BufferRegister model) { try { string token = model.BufferTransaction.TransactionToken; //save return token update model in database string query = "update BufferRegister set TransactionToken = @TransactionToken where Email = @Email"; using (AppDbContext context = new AppDbContext()) { context.Database.ExecuteSqlCommand(query, new SqlParameter("@Email", model.BufferContact.Email), new SqlParameter("@TransactionToken", token)); //refresh model from DB Helpers.DB objDB = new Helpers.DB(); model = objDB.GetBufferRegisterByPayToken(token, context); } string currency = "cad"; int amt = int.Parse(Helpers.Tools.PriceFormat(model.BufferMembership.Price * 100)); decimal tax = 13 / 100; //customer subscription var chargeCustomer = new StripeCustomerCreateOptions { Email = model.BufferContact.Email, Description = model.BufferMembership.Title, PlanId = model.BufferMembership.Title, SourceToken = model.BufferTransaction.TransactionToken, TaxPercent = tax, Metadata = new Dictionary <string, string>() { { "Name", model.BufferContact.FirstName + " " + model.BufferContact.LastName } } }; var custServ = new StripeCustomerService(); var stripeCustomer = custServ.Create(chargeCustomer); if (stripeCustomer != null) { model.BufferTransaction.TransactionNumber = stripeCustomer.Id; model.BufferTransaction.PayerID = stripeCustomer.DefaultSourceId; using (AppDbContext context = new AppDbContext()) { //validate transaction, update database query = "update BufferRegister set PayerID = @PayerID, TransactionNumber=@TransactionNumber where Email = @Email"; context.Database.ExecuteSqlCommand(query, new SqlParameter("@Email", model.BufferContact.Email), new SqlParameter("@TransactionNumber", model.BufferTransaction.TransactionNumber), new SqlParameter("@PayerID", model.BufferTransaction.PayerID)); //buffer transfer, update database query = "BufferTransfer @Email"; context.Database.ExecuteSqlCommand(query, new SqlParameter("@Email", model.BufferContact.Email)); } //create application username Helpers.MembUsers.CreateMember(model, new AuthDbContext()); } ////send to Stripe //var charge = new StripeChargeCreateOptions //{ // Amount = amt, // Currency = currency, // ReceiptEmail = model.BufferContact.Email, // Description = model.BufferMembership.Title, // SourceTokenOrExistingSourceId = model.BufferTransaction.TransactionToken, //}; //var chargeService = new StripeChargeService(); //var stripeCharge = chargeService.Create(charge); //if (stripeCharge.Paid) //{ // model.BufferTransaction.TransactionNumber = stripeCharge.Id; // model.BufferTransaction.PayerID = stripeCharge.Source.Id; // using (AppDbContext context = new AppDbContext()) // { // //validate transaction, update database // query = "update BufferRegister set PayerID = @PayerID, TransactionNumber=@TransactionNumber where Email = @Email"; // context.Database.ExecuteSqlCommand(query, // new SqlParameter("@Email", model.BufferContact.Email), // new SqlParameter("@TransactionNumber", model.BufferTransaction.TransactionNumber), // new SqlParameter("@PayerID", model.BufferTransaction.PayerID)); // //buffer transfer, update database // query = "BufferTransfer @Email"; // context.Database.ExecuteSqlCommand(query, // new SqlParameter("@Email", model.BufferContact.Email)); // } // //create application username // Helpers.MembUsers.CreateMember(model, new AuthDbContext()); //} return(View(model)); } catch (Exception ex) { Console.Write(ex.Message); ModelState.AddModelError("CustomError", ex.Message); return(View("Error")); } }