protected void Page_Load(object sender, EventArgs e) { //To get the string to search in facility table string departmentID = Request.QueryString["DepartmentID"]; string block = Request.QueryString["Block"]; string level = Request.QueryString["Level"]; string name = Request.QueryString["Name"]; //test if correct //Only select from a certain department //select the database for the list of facility that contains //block, level, name (%) var sqlFacList = new FacList(); sqlFacList.Facilities = new List<FacObject>(); using (var db = new KioskContext()) { var facilitys = from f in db.Facilitys where f.Department.DepartmentID == departmentID && (f.Block.Contains(block) && f.Level.Contains(level) && f.Name.Contains(name)) orderby f.FacilityID select new { f.FacilityID, f.DepartmentID, f.Description, f.Block, f.Level, f.Name, f.OpenHours, f.CloseHours, f.MaxBkTime, f.MaxBkUnits, f.MinBkTime, f.MinBkUnits}; foreach (var fac in facilitys) { FacObject facobject = new FacObject(fac.FacilityID, fac.DepartmentID, fac.Description, fac.Block, fac.Level, fac.Name, fac.OpenHours, fac.CloseHours, fac.MaxBkTime, fac.MaxBkUnits, fac.MinBkTime, fac.MinBkUnits); sqlFacList.Facilities.Add(facobject); } } //Serialize into json format output (string) string json = JsonConvert.SerializeObject(sqlFacList, Formatting.Indented); //codes to pass back the json string to the iPad Response.Write(json); Response.End(); }
//method to call** to run the grid loop public void GetFacilityTable() { //get datetime of today string dateToday = DateTime.Today.ToString ("dd-MMM-yyyy"); string[] sDateSeperate = date.Split (new[] { "-" }, StringSplitOptions.None); //set the label eg. School Of IT, level 4 //set based on filter*** if (date == "") { title.Text = "School Of IT, Level " + level + "\n" + "Today" + "\n" + dateToday; } else { title.Text = "School Of IT, Level " + level + "\n" + sDateSeperate[2] + "-" + sDateSeperate[1] + "-" + sDateSeperate[0]; } title.FontAttributes = FontAttributes.Bold; //activity indicator // activityIndicator.IsRunning = true; // activityIndicator.IsVisible = true; // activityIndicator.BindingContext = this; // activityIndicator.SetBinding (ActivityIndicator.IsVisibleProperty, "IsBusy"); // this.IsBusy = true; facilityList = new List<FacObject> (); reservationList = new List<ResObject> (); facGrid.IsVisible = false; facGrid.Children.Clear (); boxGrid.Children.Clear (); facGrid.RowDefinitions.Clear (); //facGrid.ColumnDefinitions.Clear (); facGrid.IsVisible = true; //string urlFac = @"http://crowd.sit.nyp.edu.sg/FRSIPad/GetFacilities.aspx?DepartmentID=" + departmentID //+ "&Block=" + block + "&Level=" + level + "&Name=" + name + "&DeviceID=&Hash="; //call webservice to get facility and reservation* string urlFac = ConfigurationSettings.urliPad + "GetFacilities.aspx?DepartmentID=" + departmentID + "&Block=" + block + "&Level=" + level + "&Name=" + name; string urlRes = ConfigurationSettings.urliPad + "GetFacilityReservations.aspx?DepartmentID=" + departmentID + "&Block=" + block + "&Level=" + level + "&Name=" + name + "&Date=" + date; //to get all the facility and icnsert to an c# object using (var client = new HttpClient ()) { HttpResponseMessage responseMsg = client.GetAsync (urlFac).Result; var json = responseMsg.Content.ReadAsStringAsync (); json.Wait (); FacilityList list = JsonConvert.DeserializeObject<FacilityList> (json.Result); foreach (Facility fac in list.Facilities) { FacObject facObject = new FacObject (fac.facilityID, fac.departmentID, fac.description, fac.block, fac.level, fac.name, fac.openHours, fac.closeHours, fac.maxBkTime, fac.maxBkUnits, fac.minBkTime, fac.maxBkUnits); facilityList.Add (facObject); } } //to get all the reservations and insert to an c# object using (var client2 = new HttpClient ()) { HttpResponseMessage responseMsg2 = client2.GetAsync (urlRes).Result; //var json = client.GetStringAsync(string.Format(url)); var json2 = responseMsg2.Content.ReadAsStringAsync (); json2.Wait (); ReservationList list2 = JsonConvert.DeserializeObject<ReservationList> (json2.Result); //List<Facility> list = JsonConvert.DeserializeObject<List<Facility>>(json.ToString()); foreach (Reservation res in list2.Reservations) { ResObject resObject = new ResObject (res.facilityReservationID, res.facilityID, res.startDateTime, res.endDateTime, res.useShortDescription, res.useDescription); reservationList.Add (resObject); } } if (date == "") { date = DateTime.Now.ToString ("yyyy-MMM-dd"); dateConvert = Convert.ToDateTime (date); } else { dateConvert = Convert.ToDateTime (date); } if (availability == "89") { dateStartAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 08, 00, 00); dateEndAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 09, 00, 00); filterAvailability (); } if (availability == "910") { dateStartAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 09, 00, 00); dateEndAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 10, 00, 00); filterAvailability (); } if (availability == "1011") { dateStartAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 10, 00, 00); dateEndAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 11, 00, 00); filterAvailability (); } if (availability == "1112") { dateStartAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 11, 00, 00); dateEndAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 12, 00, 00); filterAvailability (); } if (availability == "1213") { dateStartAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 12, 00, 00); dateEndAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 13, 00, 00); filterAvailability (); } if (availability == "1314") { dateStartAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 13, 00, 00); dateEndAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 14, 00, 00); filterAvailability (); } if (availability == "1415") { dateStartAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 14, 00, 00); dateEndAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 15, 00, 00); filterAvailability (); } if (availability == "1516") { dateStartAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 15, 00, 00); dateEndAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 16, 00, 00); filterAvailability (); } if (availability == "1617") { dateStartAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 16, 00, 00); dateEndAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 17, 00, 00); filterAvailability (); } if (availability == "1718") { dateStartAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 17, 00, 00); dateEndAvail = new DateTime (dateConvert.Year, dateConvert.Month, dateConvert.Day, 18, 00, 00); filterAvailability (); } //create new rows and column for the grid facGrid.RowDefinitions = new RowDefinitionCollection (); if (facGrid.ColumnDefinitions.Count == 0) { facGrid.ColumnDefinitions = new ColumnDefinitionCollection (); //create the columns //0,1,2 facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (10, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (20, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Star) }); //column with interval of 5 minutes facGrid.ColumnSpacing = 0; for (int k = 0; k < 10; k++) { //00 facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //15 facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //30 facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //45 facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); } //6pm (243) facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); //spacing of 10 (244,245) facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); facGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (10, GridUnitType.Absolute) }); } for (int i = 0; i < facilityList.Count; i++) { //for (int i = 0; i < facSample.Count; i++) { facGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Absolute) }); facGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); } //for loop to change according to database** //number of facility from database //edit to change label to database value for (int i = 0; i < facilityList.Count; i++) { //for (int i = 0; i < facSample.Count; i++) { //facGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Absolute) }); //facGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); //number = (left,right,top,bottom) //black horizonal line //facility label //facGrid.Children.Add (facBut,2,((i*2)+1)); Label labelFac = new Label { Text = facilityList [i].facilityID, TextColor = Color.Black, FontAttributes = FontAttributes.Bold, YAlign = TextAlignment.Center }; var tapFac = new TapGestureRecognizer (); tapFac.Tapped += (object sender, EventArgs e) =>{ Navigation.PushModalAsync (new FacilityDetailsPage (labelFac.Text, date)); }; labelFac.GestureRecognizers.Add (tapFac); facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 1, 245, (i * 2), ((i * 2) + 1)); facGrid.Children.Add (labelFac, 2, ((i * 2) + 1)); //facGrid.Children.Add (new Label { Text = facSample[i], TextColor = Color.Black }, 2,((i*2)+1)); for (int j = 0; j < reservationList.Count; j++) { //booking reserved //break if facilityID dont match if (reservationList [j].facilityID == facilityList [i].facilityID) { string text = ""; if (reservationList [j].useShortDescription == null) { string temptext = reservationList [j].useDescription; string str = temptext; if (temptext.Length > 6) temptext.Substring (0, 6); text = str; } else { text = reservationList [j].useShortDescription; } // add in reservations //startdatetime 2015-08-13 08:30:00.000 //DateTime startdate = DateTime.ParseExact(reservationList[j].startDateTime, "dd-mm-yyyy HH:MM:SS"); string sdateRes = reservationList [j].startDateTime.ToString ("dd-MM-yyyy HH:mm:ss"); string[] stoken = sdateRes.Split (new[] { " " }, StringSplitOptions.None); //time string[] stiming = stoken [1].Split (new[] { ":" }, StringSplitOptions.None); //timing[0] = 08 (hour) //timing[1] = 30 (mins) //string[] sonehour = stiming [0].Split (new[] { "" }, StringSplitOptions.None); //onehour[1] = 8 int shour = Convert.ToInt16 (stiming [0]); int smin = Convert.ToInt16 (stiming [1]); //enddatetime //DateTime enddate = DateTime.ParseExact(reservationList[j].endDateTime, "dd-mm-yyyy HH:MM:SS"); string edateRes = reservationList [j].endDateTime.ToString ("dd-MM-yyyy HH:mm:ss"); string[] etoken = edateRes.Split (new[] { " " }, StringSplitOptions.None); //time string[] etiming = etoken [1].Split (new[] { ":" }, StringSplitOptions.None); //timing[0] = 08 (hour) //timing[1] = 30 (mins) //string[] eonehour = etiming [0].Split (new[] { "" }, StringSplitOptions.None); //onehour[1] = 8 int ehour = Convert.ToInt16 (etiming [0]); int emin = Convert.ToInt16 (etiming [1]); int start, end; if (smin == 0) { start = (((shour - 8) * 24) + 3); } else { start = (((shour - 8) * 24) + 3) + ((smin / 5) * 2); } if (emin == 0) { end = (((ehour - 8) * 24) + 3); } else { end = (((ehour - 8) * 24) + 3) + ((emin / 5) * 2); } //BoxView boxReservation = new BoxView { BackgroundColor = Color.Silver }; //start, end , top, bottom //facGrid.Children.Add (box, 3, 243, (i*2) + 1 , (i*2)+2); //facGrid.Children.Add (boxReservation, start, end, (i * 2) + 1, (i * 2) + 2); //facGrid.Children.Add (facBut, start, end, (i*2) + 1, (i*2)+2); Label labelRes = new Label { Text = text, TextColor = Color.Black, FontSize = 13, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, BackgroundColor = Color.Silver }; facGrid.Children.Add (labelRes, start, end, (i * 2) + 1, (i * 2) + 2); /* Image imageArrow; imageArrow = new Image { Source = ImageSource.FromFile("arrowg.png") }; facGrid.Children.Add (imageArrow, start, start + 20, (i * 2) + 2 , (i * 2) + 4); imageArrow.Opacity = 0; Image imageBox; imageBox = new Image { BackgroundColor = Color.Silver }; facGrid.Children.Add (imageBox, start, start + 50, 6 , 11); imageBox.Opacity = 0; */ //click button gesture //pop out box //pass in Facility id //display details when boxview is tapped // var tapDes = new TapGestureRecognizer (); tapDes.Tapped += (object sender, EventArgs e) => { //Navigation.PushModalAsync (new FacilityDetailsPage (labelFac.Text)); //imageArrow.Opacity = 0; //imageBox.Opacity = 1; //imageArrow.Opacity = 1; }; labelRes.GestureRecognizers.Add (tapDes); } //Xamarin.Forms.Device.StartTimer (TimeSpan.FromSeconds(1), () => { //refresh red box //boxLine.BackgroundColor = Color.Transparent; //return true; //}); } } //draw vertical lines //8am,9am,10am int endCol = ((facilityList.Count - 1) * 2) + 3; facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 3, 4, 0, endCol); facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 27, 28, 0, endCol); facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 51, 52, 0, endCol); facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 75, 76, 0, endCol); facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 99, 100, 0, endCol); facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 123, 124, 0, endCol); facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 147, 148, 0, endCol); facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 171, 172, 0, endCol); facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 195, 196, 0, endCol); facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 219, 220, 0, endCol); facGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 243, 244, 0, endCol); //date now string dateNowLine = DateTime.Now.ToString ("dd-MM-yyyy HH:mm:ss"); dateTiming = DateTime.Now.ToString ("hh.mm tt"); string[] linetoken = dateNowLine.Split (new[] { " " }, StringSplitOptions.None); //time string[] linetiming = linetoken [1].Split (new[] { ":" }, StringSplitOptions.None); //timing[0] = 08 (hour) //timing[1] = 30 (mins) int linehour = Convert.ToInt16 (linetiming [0]); int linemin = Convert.ToInt16 (linetiming [1]); int boxhour = Convert.ToInt16 (linetiming [0]); int boxmin = Convert.ToInt16 (linetiming [1]); if (linemin == 0) { linestart = (((linehour - 8) * 24) + 3); } else { linestart = (((linehour - 8) * 24) + 3) + ((linemin / 5) * 2); } if (boxmin == 0) { boxstart = (((boxhour - 8) * 24) + 15); } else { boxstart = (((boxhour - 8) * 24) + 15) + ((boxmin / 5) * 2); } if (date == "" || date == DateTime.Now.ToString ("yyyy-MMM-dd")) { BoxView bl = new BoxView { BackgroundColor = Color.Red }; boxLine = bl; if (linestart >= 0) facGrid.Children.Add (bl, linestart, linestart + 1, 0, ((facilityList.Count - 1) * 2) + 3); } // activityIndicator.IsRunning = false; // activityIndicator.IsVisible = false; // this.IsBusy = false; //box view grid //create new rows and column for the grid boxGrid.RowDefinitions = new RowDefinitionCollection (); boxGrid.ColumnDefinitions = new ColumnDefinitionCollection (); //create the columns //0,1,2 boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Star) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (3, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (3, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //column with interval of 5 minutes boxGrid.ColumnSpacing = 0; boxGrid.RowSpacing = 0; for (int k = 0; k < 10; k++) { //00 boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //15 boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //30 boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //45 boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); } //6pm (243) boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //spacing of 10 (244,245) boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); boxGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (10, GridUnitType.Absolute) }); boxGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (15, GridUnitType.Absolute) }); //Xamarin.Forms.Device.StartTimer (TimeSpan.FromSeconds(1), () => { //refresh red box if (date == "" || date == DateTime.Now.ToString ("yyyy-MMM-dd")) { //boxRed.BackgroundColor = Color.Transparent; Label b = new Label { BackgroundColor = Color.Red }; dateTiming = DateTime.Now.ToString ("hh.mm tt"); Label l = new Label { Text = dateTiming, TextColor = Color.Black, FontSize = 9.5, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center }; //boxRed = b; boxGrid.Children.Add (b, boxstart - 9, boxstart + 10, 0, 1); //refresh label //timeLabel.Text = ""; //timeLabel = l; boxGrid.Children.Add (l, boxstart - 9, boxstart + 10, 0, 1); } //return true; //}); facGrid.ForceLayout(); }