public ActionResult RegisterRequest(RegisterRequestViewModel model)
        {
            if (ModelState.IsValid)
            {
                FM_Datastore_Entities_EF db_manager = new FM_Datastore_Entities_EF();
                // TODO:deny multiple requests from the same ip address

                // TODO: make temporary encrypted url that holds => timeCreated,email,role,address,division
                char   separator   = (char)31; // ASCII char 31 is the separator character
                string urlParamStr = DateTime.UtcNow.Ticks.ToString() + separator
                                     + model.Email + separator
                                     + model.address.ToString() + separator
                                     + model.division.ToString();
                string urlParamStrB64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(urlParamStr));

                // posts notification
                db_manager.Notifications.Add(new Notification()
                {
                    notifyType = AppSettings.Notify.newUser,
                    notifyText = model.Email,
                    Email      = model.Email,
                    Address    = db_manager.Addresses.FirstOrDefault(m => m.Id == model.address),
                    Division   = db_manager.Divisions.FirstOrDefault(m => m.Id == model.division),
                    timeStamp  = DateTime.UtcNow
                });
                db_manager.SaveChanges();

                Mail.send(model.Email, "Request Recieved", "Dear user your request has been recieved and an administrator will be looking at your request soon, so please be patient.");
                return(Redirect(Url.Action("RegisterRequestCompletion")));
            }
            return(RegisterRequest());
        }
        public ActionResult RegisterRequest()
        {
            FM_Datastore_Entities_EF db_manager = new FM_Datastore_Entities_EF();

            // get division list
            List <SelectListItem> divisionList = new List <SelectListItem>();

            new SelectList(db_manager.Addresses, "Id", "addressLine1");
            foreach (var item in db_manager.Divisions.ToList())
            {
                divisionList.Add(new SelectListItem()
                {
                    Text  = item.name,
                    Value = item.Id.ToString() //  will be used to get id later
                });
            }

            // get address list
            List <SelectListItem> addressList = new List <SelectListItem>();

            foreach (var item in db_manager.Addresses.ToList())
            {
                addressList.Add(new SelectListItem()
                {
                    Text  = item.city + ", " + item.state,
                    Value = item.Id.ToString() //  will be used to get id later
                });
            }
            db_manager.Dispose(); // no need to save changes
            return(View(new RegisterRequestViewModel()
            {
                addresses = addressList,
                divisions = divisionList
            }));
        }
Exemple #3
0
        public ActionResult Completed()
        {
            if (HttpContext.Request.UrlReferrer != null) // comes from another site
            {
                return(new HttpNotFoundResult());
            }

            List <Transaction> boughtItems;

            SessionSaver.Load.transactions(Session, out boughtItems);
            using (FM_Datastore_Entities_EF db_manager = new FM_Datastore_Entities_EF())
            {
                string      email = User.Identity.Name;
                Models.User usr   = db_manager.Users.FirstOrDefault(m => m.Email == email);

                for (int i = 0; i < boughtItems.Count; i++)
                {
                    boughtItems[i].purchaserId  = usr.Id;
                    boughtItems[i].purchaseDate = DateTime.Now;
                    db_manager.Transactions.Add(boughtItems[i]);
                }
                db_manager.SaveChanges();
            }
            Session[AppSettings.SessionVariables.TRANSACTION] = null; // reset the cart

            return(View(new VM.CompletedViewModel()
            {
                boughtItems = boughtItems
            }));
        }
Exemple #4
0
        public ActionResult Index()
        {
            List <Transaction> transactions;

            using (FM_Datastore_Entities_EF db_manager = new FM_Datastore_Entities_EF())
            {
                transactions = db_manager.Transactions.Include(AppSettings.Includes.Product).ToList();
            }
            return(View(new VM.IndexViewModel()
            {
                transactions = transactions
            }));
        }
Exemple #5
0
        public static long getCartIdTransactionRequests()
        {
            long randCartId;

            // create cart ID
            using (FM_Datastore_Entities_EF db_manager = new FM_Datastore_Entities_EF())
            {
                Random             random = new Random(DateTime.Now.Millisecond);
                TransactionRequest cartId;
                do
                {
                    randCartId = getRandomPosLong(random);
                    cartId     = db_manager.TransactionRequests.FirstOrDefault(m => m.cartId == randCartId);
                }while (cartId != null); // if false cart id is valid

                return(randCartId);
            }
        }
        public ActionResult Register()
        {
            //Only allow people to view register page if they have a valid link
            NameValueCollection query = Request.QueryString;

            string[] qresult = query.GetValues("rqst");
            if (qresult == null || qresult.Length < 1)
            {
                return(new HttpNotFoundResult());
            }

            UrlEncryption EncryptionResult = UrlEncryption.Decrypt(qresult[0]);

            if (EncryptionResult == null || EncryptionResult.timeStamp > DateTime.UtcNow.AddHours(3)) // if null or url was created more than 3 hours ago dont accept
            {
                return(new HttpNotFoundResult());
            }

            FM_Datastore_Entities_EF db_manager = new FM_Datastore_Entities_EF();
            Role     RoleResult     = db_manager.Roles.FirstOrDefault(m => m.Id == EncryptionResult.role);
            Address  AddressResult  = db_manager.Addresses.FirstOrDefault(m => m.Id == EncryptionResult.address);
            Division DivisionResult = db_manager.Divisions.FirstOrDefault(m => m.Id == EncryptionResult.division);

            db_manager.Dispose();

            // store ids in session
            Session.Add("RoleResult", RoleResult.Id);
            Session.Add("AddressResult", AddressResult.Id);
            Session.Add("DivisionResult", DivisionResult.Id);
            return(View(new RegisterViewModel()
            {
                Email = EncryptionResult.email,
                Role = RoleResult.Name,
                Address = AddressResult.country + ": "
                          + AddressResult.addressLine1
                          + AddressResult.addressLine2
                          + ", " + AddressResult.city
                          + ", " + AddressResult.state
                          + ", " + AddressResult.postalCode,
                Division = DivisionResult.name
            }));
        }