Beispiel #1
0
        public TwiMLResult Index()
        {
            var   requestBody = Request.Form["Body"];
            var   response    = new MessagingResponse();
            Regex wantBuy     = new Regex(@"I want to buy\s([\w\s]+)", RegexOptions.IgnoreCase);
            Regex message     = new Regex(@"Message\s(\w+)\s", RegexOptions.IgnoreCase);
            Regex wantSell    = new Regex(@"I want to sell\s([\w\s]+)/(\d+)/(\d+)", RegexOptions.IgnoreCase);
            Regex inArea      = new Regex(@"for sale near me", RegexOptions.IgnoreCase);

            switch ("")
            {
            case var val when wantBuy.IsMatch(requestBody):
                string item = wantBuy.Match(requestBody).Groups[1].Value;

                response.Message($"The best farmer in your area that sells {item} is Farmer Jim Bo!\n" +
                                 $"Reply Message JimBo <message> to arrange your purchase!");
                break;

            case var val when message.IsMatch(requestBody):
                string user = message.Match(requestBody).Groups[1].Value;

                response.Message($"Hi! This is {user}! I would love to sell to you, come to my farm to pick up at:\n" +
                                 $"1234 Street Ave Farmington, MN 55555");
                break;

            case var val when inArea.IsMatch(requestBody):
                string resp = "";

                using (var context = new Farmazon_dbEntities())
                {
                    IList <Inventory> myItems = context.Set <Inventory>().ToList();
                    foreach (Inventory itemDB in myItems)
                    {
                        resp += $"{itemDB.ProductName.Trim()} ({itemDB.Quantity}) - ${itemDB.Price}\n";
                    }
                }
                response.Message(resp);
                break;

            case var val when wantSell.IsMatch(requestBody):
                string itemList = wantSell.Match(requestBody).Groups[1].Value;

                string quant = wantSell.Match(requestBody).Groups[2].Value;
                string price = wantSell.Match(requestBody).Groups[3].Value;
                response.Message($"Your {quant} {itemList} for ${price} have been listed!");
                break;

            default:
                response.Message("Commands: \n" +
                                 "Message <user> <message>\n" +
                                 "I want to buy <item>\n" +
                                 "For sale near me\n" +
                                 "I want to sell <item>/<count>/<price>");
                break;
            }

            return(TwiML(response));
        }
Beispiel #2
0
        public async Task <ActionResult> FillInventory(Inventory inventory)
        {
            using (var context = new Farmazon_dbEntities())
            {
                var userId = HttpContext.GetOwinContext().Authentication.User.Identity.GetUserId();

                context.CreateInventoryItem(userId, inventory.Quantity, inventory.Price, inventory.ProductName, inventory.PhotoLocation, inventory.Description, inventory.ReviewCount, inventory.ReviewStars);
                await context.SaveChangesAsync();

                return(new HttpStatusCodeResult((int)HttpStatusCode.OK));
            }
        }
Beispiel #3
0
        public async Task <ActionResult> GetInventory()
        {
            var userId = HttpContext.GetOwinContext().Authentication.User.Identity.GetUserId();

            using (var context = new Farmazon_dbEntities())
            {
                var myItems = await context.Set <Inventory>().Where(x => x.SellerId.Equals(userId)).ToListAsync();

                if (myItems != null)
                {
                    return(View(myItems));
                }
                return(RedirectToAction("FillInventory"));
            }
        }
Beispiel #4
0
        public async Task <ActionResult> Getfarm()
        {
            using (var context = new Farmazon_dbEntities())
            {
                var userId = HttpContext.GetOwinContext().Authentication.User.Identity.GetUserId();

                var myFarm = await context.Set <Farm>().Where(x => x.UserId.Equals(userId)).FirstOrDefaultAsync();

                if (myFarm != null)
                {
                    return(View(myFarm));
                }
                return(RedirectToAction("Createfarm"));
            }
        }
Beispiel #5
0
        public async Task <ActionResult> FillInventory(Inventory inventory)
        {
            if (ModelState.IsValid)
            {
                using (var context = new Farmazon_dbEntities())
                {
                    var userId = HttpContext.GetOwinContext().Authentication.User.Identity.GetUserId();

                    context.CreateInventoryItem(userId, inventory.Quantity, inventory.Price, inventory.ProductName, inventory.PhotoLocation, inventory.Description, inventory.ReviewCount, inventory.ReviewStars);
                    await context.SaveChangesAsync();

                    return(RedirectToAction("GetInventory", "Account"));
                }
            }
            return(View(inventory));
        }
Beispiel #6
0
        public async Task <ActionResult> CreateFarm(Farm farmModel)
        {
            if (ModelState.IsValid)
            {
                using (var context = new Farmazon_dbEntities())
                {
                    var userId = HttpContext.GetOwinContext().Authentication.User.Identity.GetUserId();

                    context.CreateFarm(farmModel.FarmName, userId, farmModel.Description, farmModel.Location);
                    await context.SaveChangesAsync();

                    return(RedirectToAction("Getfarm"));
                }
            }
            return(View(farmModel));
        }