Exemplo n.º 1
0
        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"));
            }
        }
Exemplo n.º 2
0
        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"));
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 public ActionResult Paypal(BufferRegister model)
 {
     try {
         return(View(model));
     }
     catch (Exception ex)
     {
         ModelState.AddModelError("CustomError", "Error: " + ex.Message);
         return(View("Error"));
     }
 }
Exemplo n.º 5
0
 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();
 }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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"));
            }
        }
Exemplo n.º 8
0
 public void SetT(BufferRegister T)
 {
     this.T = T;
 }
Exemplo n.º 9
0
        /// <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"));
            }
        }