示例#1
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);
            }
        }
示例#2
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);
            }
        }
示例#3
0
        public async void RefreshEmployeeList()
        {
            RealmManager.RemoveAll <EmployeeList>();
            RealmManager.RemoveAll <Employee>();
            await GetEmployeeListRequest.SendGetEmployeeListRequest();

            uxEmployeeListView.ItemsSource = RealmManager.All <EmployeeList>().FirstOrDefault().employees.ToList();
            uxStatisticsButton.Click      += uxStatisticsButton_Clicked;
        }
示例#4
0
        public async void RefreshEmployeeList()
        {
            RealmManager.RemoveAll <EmployeeList>();
            RealmManager.RemoveAll <Employee>();
            await GetEmployeeListRequest.SendGetEmployeeListRequest();

            await GetMenuItemsRequest.SendGetMenuItemsRequest();

            uxEmployeeListView.ItemsSource = RealmManager.All <EmployeeList>().FirstOrDefault().employees.ToList();
        }
示例#5
0
        public Statistics()
        {
            this.InitializeComponent();

            //clicked events
            uxBackButton.Click += UxBackButton_Clicked;

            //clearing realm database from any old order list
            RealmManager.RemoveAll <OrderList>();
            RealmManager.RemoveAll <MenuItemList>();
        }
示例#6
0
        private async void RefreshMenuItemList()
        {
            RealmManager.RemoveAll <MenuItemList>();
            RealmManager.RemoveAll <MenuItem>();
            var validGetMenuItemsRequest = await GetMenuItemsRequest.SendGetMenuItemsRequest();

            if (validGetMenuItemsRequest)
            {
                uxMenuItemListView.ItemsSource = RealmManager.All <MenuItemList>().FirstOrDefault().menuItems.ToList();
            }
        }
示例#7
0
        public LoginPage()
        {
            InitializeComponent();

            RealmManager.RemoveAll <Table>();
            RealmManager.RemoveAll <OrderList>();
            RealmManager.RemoveAll <EmployeeList>();
            RealmManager.RemoveAll <IngredientList>();
            RealmManager.RemoveAll <MenuList>();

            lpTableButton.Clicked += lpTableButton_Clicked;
        }
示例#8
0
        public static async Task <bool> SendGetIngredientsListRequest()
        {
            var sendGetIngredientsListRequest = new GetIngredientsRequest();
            var response = await ServiceRequestHandler.MakeServiceCall <IngredientsList>(sendGetIngredientsListRequest);

            if (response != null)
            {
                RealmManager.RemoveAll <IngredientsList>();
                RealmManager.AddOrUpdate <IngredientsList>(response);
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#9
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);
            }
        }
示例#10
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);
            }
        }
示例#11
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);
            }
        }
示例#12
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();
            }
        }
示例#13
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);
        }
示例#14
0
        public static async Task <bool> SendGetIngredientsRequest()
        {
            //make a new request object
            var serviceRequest = new GetIngredientsRequest();
            //get a response
            var response = await ServiceRequestHandler.MakeServiceCall <IngredientList>(serviceRequest);

            if (response == null)
            {
                //call failed
                return(false);
            }
            else
            {
                RealmManager.RemoveAll <IngredientList>();
                //add the response into the local database
                RealmManager.AddOrUpdate <IngredientList>(response);
                //call succeeded
                return(true);
            }
        }
示例#15
0
        private async void cpAddCouponButton_Clicked(object sender, EventArgs e)
        {
            string input = "";

            input = await DisplayPromptAsync("Coupon Code", "You agknowledge by entering this coupon code that the coupon will be applied whether or not the items in question are being payed for or not.", "OK", "Cancel", null, -1, null, "");

            RealmManager.RemoveAll <Coupon>();
            await GetCouponsByIDRequest.SendGetCouponsByIDRequest(input);

            if (RealmManager.All <Coupon>().Count() == 0)
            {
                await DisplayAlert("Coupon Code Invalid", "", "OK");
            }
            else
            {
                await DisplayAlert("Your coupon has been activated", "To see it take effect toggle or re-toggle the items in question", "OK");

                Coupon coupon = RealmManager.All <Coupon>().First();

                coupons.Add(coupon);
            }
        }
示例#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
 private void UxLogoutButton_Clicked(object sender, RoutedEventArgs e)
 {
     RealmManager.RemoveAll <Employee>();
     RealmManager.RemoveAll <Ingredient>();
     On_BackRequested();
 }
示例#20
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;
        }
示例#21
0
 public void Setup()
 {
     RealmManager.RemoveAll <MenuList>();
 }
示例#22
0
 //populating the monthly view popup
 public async void RefreshMonthlyView()
 {
     RealmManager.RemoveAll <OrderList>();
     await GetEmployeeListRequest.SendGetEmployeeListRequest();
 }
示例#23
0
 public gamepage()
 {
     InitializeComponent();
     RealmManager.RemoveAll <Models.KidsLoc>();
     enterpin();
 }