示例#1
0
        public async static Task <bool> SendGetOrdersRequest()
        {
            GetOrdersRequest getOrdersRequest = new GetOrdersRequest();
            var response = await ServiceRequestHandler.MakeServiceCall <OrdersList>(getOrdersRequest);

            if (response.Orders != null)
            {
                // Will filter out any properties that hold time_completed property as those are orders that are already finished
                List <Orders> ordersFiltered = response.Orders.Where(s => String.IsNullOrEmpty(s.time_completed)).ToList();
                //removes all orders without any menu items
                ordersFiltered.RemoveAll(s => s.menuItems.Count == 0);

                //filter out all orders which are prepared within ordersFiltered and orders that have been sent to kitchen
                foreach (Orders o in ordersFiltered)
                {
                    ordersFiltered = ordersFiltered.Where(s => s.menuItems.Any(m => !m.prepared) && s.send_to_kitchen).ToList();
                }

                RealmManager.RemoveAll <Orders>();
                RealmManager.AddOrUpdate <Orders>(ordersFiltered);

                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#2
0
        public async static Task <bool> SendGetAllShiftsRequest(string employeeid)
        {
            GetAllShiftsRequest getAllShiftsRequest = new GetAllShiftsRequest(employeeid);
            var response = await ServiceRequestHandler.MakeServiceCall <ShiftList>(getAllShiftsRequest);

            if (response != null)
            {
                RealmManager.RemoveAll <ShiftList>();

                ShiftList parsedList = new ShiftList();

                for (int i = 0; i < response.shifts.Count; i++)
                {
                    Shift interShift = response.shifts.ElementAt(i);
                    interShift.clock_in = interShift.clock_in.Substring(11, 8) + " " + interShift.clock_in.Substring(5, 2) + "/" + interShift.clock_in.Substring(8, 2) + "/" + interShift.clock_in.Substring(0, 4);
                    if (!String.IsNullOrEmpty(interShift.clock_out))
                    {
                        interShift.clock_out = interShift.clock_out.Substring(11, 8) + " " + interShift.clock_out.Substring(5, 2) + "/" + interShift.clock_out.Substring(8, 2) + "/" + interShift.clock_out.Substring(0, 4);;
                    }
                    parsedList.shifts.Add(interShift);
                }

                RealmManager.AddOrUpdate <ShiftList>(parsedList);
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#3
0
 private void UxAddCountButton_Clicked(object sender, RoutedEventArgs e)
 {
     RealmManager.Write(() =>
     {
         selectedIngredient.quantity++;
     });
     RealmManager.AddOrUpdate <Ingredient>(selectedIngredient);
     lblPopupItemTitle.Text = selectedIngredient.NameAndAmount;
 }
示例#4
0
 private async void enterpin()
 {
     while (result == "")
     {
         result = await DisplayPromptAsync("Pin", "Enter A Pin", "accept", "", initialValue : "", maxLength : 4, keyboard : Keyboard.Numeric);
     }
     Models.KidsLoc kt = new Models.KidsLoc();
     kt.Id     = result;
     kt.Master = "9999";
     RealmManager.AddOrUpdate <Models.KidsLoc>(kt);
 }
示例#5
0
        public static async Task <bool> SendGetEmployeeListRequest()
        {
            var sendGetEmployeeListRequest = new GetEmployeeListRequest();
            var response = await ServiceRequestHandler.MakeServiceCall <EmployeeList>(sendGetEmployeeListRequest);

            if (response != null)
            {
                RealmManager.AddOrUpdate <EmployeeList>(response);
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public static async Task <bool> SendValidateLoginRequest(string userName, string passWord)
        {
            var sendValidateLoginRequest = new ValidateLoginRequest(userName, passWord);
            var response = await ServiceRequestHandler.MakeServiceCall <ValidateLoginRequestResponse>(sendValidateLoginRequest, sendValidateLoginRequest.Body);

            if (response.employee == null)
            {
                return(false);
            }
            else
            {
                RealmManager.AddOrUpdate <Employee>(response.employee);
                return(true);
            }
        }
示例#7
0
        public async static Task <bool> SendGetCouponsRequest()
        {
            GetCouponsRequest getCouponsRequest = new GetCouponsRequest();
            var response = await ServiceRequestHandler.MakeServiceCall <CouponList>(getCouponsRequest);

            if (response != null)
            {
                RealmManager.RemoveAll <CouponList>();
                RealmManager.AddOrUpdate <CouponList>(response);
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#8
0
        public async static Task <bool> SendGetEmployeeTips(string id)
        {
            GetEmployeeTips getEmployeeTips = new GetEmployeeTips(id);
            var             response        = await ServiceRequestHandler.MakeServiceCall <Tips>(getEmployeeTips);

            if (response != null)
            {
                RealmManager.RemoveAll <Tips>();
                RealmManager.RemoveAll <Tip>();
                RealmManager.AddOrUpdate <Tips>(response);
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#9
0
        public async static Task <bool> SendAllCompsNoArgs()
        {
            GetAllComps getAllComps = new GetAllComps();
            var         response    = await ServiceRequestHandler.MakeServiceCall <Comps>(getAllComps);

            if (response != null)
            {
                RealmManager.RemoveAll <Comp>();
                RealmManager.RemoveAll <Comps>();
                RealmManager.AddOrUpdate <Comps>(response);
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#10
0
        private async void foSubmitFoodButton_Clicked(object sender, EventArgs e)
        {
            if (fullOrder.orderItems.Count() != 0)
            {
                for (int i = 0; i < RealmManager.All <Table>().First().order_id.menuItems.Count(); i++)
                {
                    fullOrder.orderItems.Add(RealmManager.All <Table>().First().order_id.menuItems[i]);
                }

                await UpdateOrderMenuItemsRequest.SendUpdateOrderMenuItemsRequest(RealmManager.All <Table>().First().order_id._id, fullOrder.orderItems);

                RealmManager.RemoveAll <OrderList>();
                RealmManager.AddOrUpdate <OrderList>(new OrderList());

                MainMenu.OnReturn();

                await Navigation.PopAsync();
            }
        }
示例#11
0
        //Send Request for all employees
        public static async Task <bool> SendGetEmployeesRequest()
        {
            //make a new request object
            var serviceRequest = new GetEmployeesRequest();
            //get a response
            var response = await ServiceRequestHandler.MakeServiceCall <EmployeeList>(serviceRequest);

            if (response == null)
            {
                //call failed
                return(false);
            }
            else
            {
                //add the response into the local database
                RealmManager.AddOrUpdate <EmployeeList>(response);
                //call succeeded
                return(true);
            }
        }
示例#12
0
        public menuPage()
        {
            InitializeComponent();

            SetupMenuItems();

            _instance = this;

            OnReturn();

            if (RealmManager.All <OrderList>().Count() == 0)
            {
                RealmManager.AddOrUpdate <OrderList>(new OrderList());
            }

            mpViewOrderButton.Clicked += mpViewOrderButton_Clicked;

            mpRefillButton.Clicked     += mpRefillButton_Clicked;
            mpCallServerButton.Clicked += mpCallServerButton_Clicked;
        }
示例#13
0
        //Send Request for given coupon
        public static async Task <bool> SendGetCouponsByIDRequest(string ID)
        {
            //make a new request object
            var serviceRequest = new GetCouponsByIDRequest(ID);
            //get a response
            var response = await ServiceRequestHandler.MakeServiceCall <Coupon>(serviceRequest);

            if (response._id == null) // No null or inactive coupons
            {
                //call failed
                return(false);
            }
            else
            {
                //add the response into the local database
                RealmManager.AddOrUpdate <Coupon>(response);
                //call succeeded
                return(true);
            }
        }
示例#14
0
        private void UpdateOrder()
        {
            OrderList order = new OrderList();

            for (int i = 0; i < RealmManager.All <OrderList>().First().orderItems.Count(); i++)
            {
                OrderItem oldItem = RealmManager.All <OrderList>().First().orderItems[i];

                order.orderItems.Add(oldItem);
            }

            OrderItem newItem = new OrderItem(menuItem);

            newItem.special_instruct = miItemSpecialInstructions.Text;

            order.orderItems.Add(newItem);

            RealmManager.RemoveAll <OrderList>();
            RealmManager.AddOrUpdate <OrderList>(order);
        }
示例#15
0
        //Send request for wanted table
        public static async Task <bool> SendGetTableRequest(int tableNum)
        {
            //make a new request object
            var serviceRequest = new GetTableRequest(tableNum);
            //get a response
            var response = await ServiceRequestHandler.MakeServiceCall <Table>(serviceRequest);

            if (response == null)
            {
                //call failed
                return(false);
            }
            else
            {
                RealmManager.RemoveAll <Table>();
                //add the response into the local database
                RealmManager.AddOrUpdate <Table>(response);

                //call succeeded
                return(true);
            }
        }
示例#16
0
        public static async Task <bool> SendGetOrdersRequest()
        {
            //make a new request object
            var serviceRequest = new GetOrdersRequest();
            //get a response
            var response = await ServiceRequestHandler.MakeServiceCall <OrderList>(serviceRequest);

            if (response == null)
            {
                //call failed
                return(false);
            }
            else
            {
                // Add the response into the local database

                // Remove current contents
                RealmManager.RemoveAll <OrderList>();
                //RealmManager.RemoveAll<OrderItem>();

                // Assign each order item a unique ID
                Random rand = new Random();
                foreach (Order o in ((OrderList)response).orders.ToList())
                {
                    for (int i = 0; i < o.menuItems.Count(); ++i)
                    {
                        o.menuItems[i].newID = rand.Next(0, 1000000000).ToString();
                        while (RealmManager.Find <OrderItem>((o.menuItems[i].newID)) != null)
                        {
                            o.menuItems[i].newID = rand.Next(0, 1000000000).ToString();
                        }
                    }
                }
                RealmManager.AddOrUpdate <OrderList>(response);
                //call succeeded
                return(true);
            }
        }
示例#17
0
        //Send request for list of all coupons
        public static async Task <bool> SendGetCouponsRequest()
        {
            //make a new request object
            var serviceRequest = new GetCouponsRequest();
            //get a response
            var response = await ServiceRequestHandler.MakeServiceCall <CouponsList>(serviceRequest);

            if (response == null)
            {
                //call failed
                return(false);
            }
            else
            {
                //add the response into the local database
                RealmManager.RemoveAll <CouponsList>();
                CouponsList l = new CouponsList((response.Coupons.Where((Coupon c) => c.active && c.couponType == "Restaurant").ToList()));
                //l.Coupons = response.Coupons.Where((Coupon c) => c.active && c.couponType == "Restaurant").ToList; //
                RealmManager.AddOrUpdate <CouponsList>(l);
                //call succeeded
                return(true);
            }
        }
示例#18
0
        private async void UpdateHotItem()
        {
            //initalizing last week date
            DateTime td            = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek); //sets td to the beginning of the week
            DateTime lastWeekStart = new DateTime(td.Year, td.Month, td.Day, 0, 0, 0).AddDays(-7);



            //Checking if hotItem are still up to date
            if (RealmManager.All <HotItem>().FirstOrDefault() != null)
            {
                //getting last time hot items have been updated
                DateTime lastUpdated = DateTime.Parse(RealmManager.All <HotItem>().FirstOrDefault().createdAt);

                if (DateTime.Compare(lastWeekStart, lastUpdated) == 0)
                {
                    //return;
                }
            }

            RealmManager.RemoveAll <OrderList>();
            RealmManager.RemoveAll <MenuItemList>();
            List <MenuItem> somelist = new List <MenuItem>();
            //finding each distinct category and adding it
            await GetOrdersRequest.SendGetOrdersRequest();

            await GetMenuItemsRequest.SendGetMenuItemsRequest();

            //creating a list of every menu item id for each order including duplicates
            List <OrderItem> menuItemIds = new List <OrderItem>();
            //creating a dictionary to keep track of the count of each menuItem
            Dictionary <String, Dictionary <MenuItem, int> > menuItemCounter = new Dictionary <String, Dictionary <MenuItem, int> >();

            foreach (Order o in RealmManager.All <OrderList>().FirstOrDefault().orders)
            {
                //this will ignore all uncompleted orders
                if (o.time_completed == null)
                {
                    continue;
                }


                DateTime orderTime = DateTime.ParseExact(o.time_completed.Replace('T', ' ').TrimEnd('Z'), "yyyy-MM-dd HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture);

                //Makes it easier for keying the revenue map by WEEK
                orderTime = orderTime.AddDays(-(int)orderTime.DayOfWeek);
                orderTime = new DateTime(orderTime.Year, orderTime.Month, orderTime.Day, 0, 0, 0);

                //only added menuItems from orders for the current month
                if (DateTime.Compare(lastWeekStart, orderTime) == 0)
                {
                    foreach (OrderItem oi in o.menuItems)
                    {
                        menuItemIds.Add(oi); //add next menuitem id
                    }
                }
            }

            List <MenuItem> tempList = RealmManager.All <MenuItem>().ToList();

            //updating menuItem map to see how often each was ordered
            foreach (OrderItem o in menuItemIds)
            {
                MenuItem tempMenuItem = tempList.Find(x => x._id == o._id);
                if (tempMenuItem == null)
                {
                    continue;
                }
                if (menuItemCounter.ContainsKey(tempMenuItem.category))
                {
                    try
                    {
                        menuItemCounter[tempMenuItem.category][tempMenuItem] = menuItemCounter[tempMenuItem.category][tempMenuItem] + 1;
                    }
                    catch
                    {
                        menuItemCounter[tempMenuItem.category].Add(tempMenuItem, 1);
                    }
                }
                else
                {
                    menuItemCounter[tempMenuItem.category] = new Dictionary <MenuItem, int> {
                        { tempMenuItem, 1 }
                    };
                }
            }
            foreach (string key in menuItemCounter.Keys)
            {
                KeyValuePair <MenuItem, int> topMenuItem;
                //finding the top menuItem for each category
                topMenuItem = menuItemCounter[key].Aggregate((x, y) => x.Value > y.Value ? x : y);
                //grabbing what was the top menuItem in the category from the previous week
                HotItem tempItem = RealmManager.Find <HotItem>(topMenuItem.Key.category);

                //if hotitem is in realm yet
                if (tempItem == null)
                {
                    //creating new hotitem object
                    HotItem tempHotItem = new HotItem();
                    tempHotItem.category  = topMenuItem.Key.category;
                    tempHotItem.createdAt = lastWeekStart.ToString();
                    tempHotItem._id       = topMenuItem.Key._id;

                    //getting menuItem object from list using hotItem
                    MenuItem tempMenuItem = tempList.Find(x => x._id == topMenuItem.Key._id);
                    RealmManager.Write(() => tempMenuItem.isHot = true);

                    //updating database
                    var response = await UpdateHotItemRequest.SendUpdateMenuItemRequest(tempMenuItem);

                    //updaing realm
                    RealmManager.AddOrUpdate <HotItem>(tempHotItem);
                    if (!response)
                    {
                        ContentDialog responseAlert = new ContentDialog
                        {
                            Title           = "Unsuccessful",
                            Content         = "Hot Item has not been updated successfully",
                            CloseButtonText = "Ok"
                        };
                        ContentDialogResult result = await responseAlert.ShowAsync();
                    }
                }
                else
                {
                    //if the hot item is infact new
                    if (tempItem._id != topMenuItem.Key._id)
                    {
                        //finding old hotitem menuItem object
                        MenuItem oldMenuItem = tempList.Find(x => x._id == tempItem._id);
                        RealmManager.Write(() => oldMenuItem.isHot = false);

                        //updating old hotItem in database
                        var Firstresponse = await UpdateHotItemRequest.SendUpdateMenuItemRequest(oldMenuItem);

                        if (!Firstresponse)
                        {
                            ContentDialog responseAlert = new ContentDialog
                            {
                                Title           = "Unsuccessful",
                                Content         = "Original hot item has not been updated successfully",
                                CloseButtonText = "Ok"
                            };
                            ContentDialogResult result = await responseAlert.ShowAsync();
                        }

                        //finding new menuItem object using new hotItem
                        MenuItem newMenuItem = tempList.Find(x => x._id == topMenuItem.Key._id);
                        RealmManager.Write(() => newMenuItem.isHot = true);
                        var Secondresponse = await UpdateHotItemRequest.SendUpdateMenuItemRequest(newMenuItem);

                        //updating hot item in realm to match new hot Item
                        RealmManager.Write(() =>
                        {
                            tempItem._id       = topMenuItem.Key._id;
                            tempItem.createdAt = lastWeekStart.ToString();
                        });

                        if (!Secondresponse)
                        {
                            ContentDialog responseAlert = new ContentDialog
                            {
                                Title           = "Unsuccessful",
                                Content         = "Hot Item has not been updated successfully",
                                CloseButtonText = "Ok"
                            };
                            ContentDialogResult result = await responseAlert.ShowAsync();
                        }
                    }
                }
            }
            ContentDialog responseAlertCheck = new ContentDialog
            {
                Title           = "Successful",
                Content         = "Hot Items have been updated successfully",
                CloseButtonText = "Ok"
            };
            ContentDialogResult resultCheck = await responseAlertCheck.ShowAsync();
        }
示例#19
0
        public fullOrderPage(OrderList order)
        {
            InitializeComponent();

            fullOrder = new OrderList();

            foSubmitFoodButton.Clicked += foSubmitFoodButton_Clicked;

            for (int i = 0; i < order.orderItems.Count(); i++)
            {
                OrderItem x = order.orderItems[i];

                Grid newGrid = new Grid();
                newGrid.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });
                newGrid.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });
                newGrid.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                });

                newGrid.Children.Add(new Label()
                {
                    Text         = x.name,
                    Margin       = new Thickness(30, 0, 30, 15),
                    FontSize     = 20,
                    WidthRequest = 100,
                    TextColor    = Color.Black
                }, 0, 0);

                newGrid.Children.Add(new Label()
                {
                    Text         = "$" + x.price,
                    Margin       = new Thickness(30, 0, 30, 15),
                    FontSize     = 20,
                    WidthRequest = 100,
                    TextColor    = Color.Black
                }, 1, 0);

                Button deleteButton = new Button()
                {
                    Text            = "Remove",
                    TextColor       = Xamarin.Forms.Color.White,
                    BackgroundColor = Xamarin.Forms.Color.Red,
                    Margin          = new Thickness(50, 0, 50, 0),
                    Padding         = new Thickness(0, 15, 0, 15),
                    CornerRadius    = 15
                };

                deleteButton.Clicked += (sender, e) =>
                {
                    foScroll.Children.Remove(newGrid);
                    fullOrder.orderItems.Remove(x);
                    RealmManager.RemoveAll <OrderList>();
                    RealmManager.AddOrUpdate <OrderList>(new OrderList(fullOrder));
                };

                newGrid.Children.Add(deleteButton, 2, 0);

                foScroll.Children.Add(newGrid);

                priceTotal += x.price;

                fullOrder.orderItems.Add(x);
            }

            foOrderTotal.Text += "$" + priceTotal;
        }