public static ResObject <List <CategoryItem> > GetCategoryItemsDoctors(string nvGuide) { ResObject <List <CategoryItem> > res = new ResObject <List <CategoryItem> >(); try { List <CategoryItem> categoryItems = new List <CategoryItem>(); DataSet ds = Utilities.SqlDataAccess.ExecuteDatasetSP("TCategoryItem_Doctors_SLCT" , new SqlParameter("nvGuide", nvGuide)); if (ds.Tables[0].Rows[0][0].ToString() != string.Empty && int.Parse(ds.Tables[0].Rows[0][0].ToString()) < 0) { res.Error = new ErrorObj(StatusCode.UserUnauthorized); res.Result = null; return(res); } foreach (DataRow dr in ds.Tables[1].Rows) { categoryItems.Add(ObjectGenerator <CategoryItem> .GeneratFromDataRow(dr)); } res.Error = new ErrorObj(StatusCode.Success); res.Result = categoryItems; return(res); } catch (Exception ex) { Log.LogError("GetCategoryItemsDoctors / TCategoryItem_Doctors_SLCT", "exception = " + ex); res.Error = new ErrorObj(StatusCode.Error, ex.Message); res.Result = null; return(res); } }
public static ResObject <List <Contact> > GeContacts(string nvGuide) { ResObject <List <Contact> > res = new ResObject <List <Contact> >(); try { List <Contact> contacts = new List <Contact>(); DataSet ds = SqlDataAccess.ExecuteDatasetSP("TContact_SLCT", new SqlParameter("nvGuide", nvGuide)); if (ds.Tables[0].Rows[0][0].ToString() != string.Empty && int.Parse(ds.Tables[0].Rows[0][0].ToString()) < 0) { res.Error = new ErrorObj(StatusCode.UserUnauthorized); res.Result = null; return(res); } if (ds != null && ds.Tables[1].Rows.Count > 0) { contacts = ObjectGenerator <Contact> .GeneratListFromDataRowCollection(ds.Tables[1].Rows); } res.Error = new ErrorObj(StatusCode.Success); res.Result = contacts; return(res); } catch (Exception x) { Log.LogError("GeContacts", x.Message); res.Error = new ErrorObj(StatusCode.Error, x.Message); res.Result = null; return(res); } }
public static ResObject <List <Dashboard> > RecommendationDashboard(int iUserId, string nvGuide) { ResObject <List <Dashboard> > res = new ResObject <List <Dashboard> >(); try { List <Dashboard> dashboard = new List <Dashboard>(); DataSet ds = SqlDataAccess.ExecuteDatasetSP("TRecommendation_Dashboad", new SqlParameter("iUserId", iUserId), new SqlParameter("nvGuide", nvGuide)); if (ds.Tables[0].Rows[0][0].ToString() != string.Empty && int.Parse(ds.Tables[0].Rows[0][0].ToString()) < 0) { res.Error = new ErrorObj(StatusCode.UserUnauthorized); res.Result = null; return(res); } if (ds.Tables[1].Rows.Count > 0) { foreach (DataRow item in ds.Tables[1].Rows) { Dashboard dash = ObjectGenerator <Dashboard> .GeneratFromDataRow(item); dash.source = new intInt(); Dashboard d = dashboard.Where(h => h.name == dash.name).FirstOrDefault(); if (d != null) { d.data += dash.data; } else { dashboard.Add(dash); } } } res.Error = new ErrorObj(StatusCode.Success); res.Result = new List <Dashboard>(); res.Result = dashboard; return(res); } catch (Exception x) { Log.LogError("RecommendationDashboard", x.Message); res.Error = new ErrorObj(StatusCode.Error, x.Message); res.Result = null; return(res); } }
// 由于异步加载,暂时只支持包含从ResObject来的sprite替换,以判断transform是否还有效 public static void setSpriteForContainer(Image img, string spriteName, ResObject container) { if (img == null || container == null || container.isDisposed()) { return; } var objs = spriteName.Split('/'); MgrRes.loadPrefab(objs[0], objs[1], obj => { if (container.isDisposed()) { return; } img.sprite = obj as Sprite; }, true); }
public static ResObject <List <Recommendation> > GetRecommendationsNewDoctors(int iYearId, string nvGuide) { ResObject <List <Recommendation> > res = new ResObject <List <Recommendation> >(); try { DataSet ds = SqlDataAccess.ExecuteDatasetSP("TRecommendation_New_SLCT", new SqlParameter("iYearId", iYearId), new SqlParameter("nvGuide", nvGuide)); List <Recommendation> recommendations = new List <Recommendation>(); if (ds.Tables[0].Rows[0][0].ToString() != string.Empty && int.Parse(ds.Tables[0].Rows[0][0].ToString()) < 0) { res.Error = new ErrorObj(StatusCode.UserUnauthorized); res.Result = null; return(res); } if (ds.Tables[1].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[1].Rows) { recommendations.Add(ObjectGenerator <Recommendation> .GeneratFromDataRow(dr)); recommendations.Last().lObject.Add("nvCatItemName1", dr["nvCatItemName1"].ToString()); recommendations.Last().lObject.Add("nvCatItemName2", dr["nvCatItemName2"].ToString()); recommendations.Last().lObject.Add("nvCatItemName3", dr["nvCatItemName3"].ToString()); recommendations.Last().lObject.Add("nvCatItemName4", dr["nvCatItemName4"].ToString()); } } res.Error = new ErrorObj(StatusCode.Success); res.Result = recommendations; return(res); } catch (Exception ex) { Log.LogError("GetRecommendationsNewDoctors / TRecommendation_New_SLCT", "iYearId = " + iYearId + ", exception = " + ex); res.Error = new ErrorObj(StatusCode.Error, ex.Message); res.Result = null; return(res); } }
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"]; //format of date yyyy-MMM-dd string date = Request.QueryString["Date"]; var sqlResList = new ResList(); sqlResList.Reservations = new List<ResObject>(); //if date is blank, return current system date if( date == "" ) { DateTime dateToday = DateTime.Today; DateTime dateStart = new DateTime(dateToday.Year, dateToday.Month, dateToday.Day, 08, 00, 00); DateTime dateEnd = new DateTime(dateToday.Year, dateToday.Month, dateToday.Day, 18, 00, 00); using (var db = new KioskContext()) { var facilityRes = from fr in db.FacilityReservations where fr.Facility.Department.DepartmentID == departmentID && fr.Facility.Block.Contains(block) && fr.Facility.Level.Contains(level) && fr.Facility.Name.Contains(name) && fr.StartDateTime >= dateStart && fr.EndDateTime <= dateEnd orderby fr.FacilityID, fr.StartDateTime select new { fr.FacilityReservationID, fr.FacilityID, fr.StartDateTime, fr.EndDateTime, fr.UseShortDescription, fr.UseDescription }; foreach (var res in facilityRes) { ResObject resobject = new ResObject(res.FacilityReservationID, res.FacilityID, res.StartDateTime.Value, res.EndDateTime.Value, res.UseShortDescription, res.UseDescription); sqlResList.Reservations.Add(resobject); } } //Serialize into json format output (string) string json = JsonConvert.SerializeObject(sqlResList, Formatting.Indented); //codes to pass back the json string to the iPad Response.Write(json); Response.End(); } //else return only specified date else { //convert string date to datetime DateTime datePass = DateTime.ParseExact(date, "yyyy-MMM-dd", CultureInfo.InvariantCulture); DateTime dateStart = new DateTime(datePass.Year, datePass.Month, datePass.Day, 08, 00, 00); DateTime dateEnd = new DateTime(datePass.Year, datePass.Month, datePass.Day, 18, 00, 00); using (var db = new KioskContext()) { var facilityRes = from fr in db.FacilityReservations where fr.Facility.Department.DepartmentID == departmentID && fr.Facility.Block.Contains(block) && fr.Facility.Level.Contains(level) && fr.Facility.Name.Contains(name) && fr.StartDateTime >= dateStart && fr.EndDateTime <= dateEnd orderby fr.FacilityID, fr.StartDateTime select new { fr.FacilityReservationID, fr.FacilityID, fr.StartDateTime, fr.EndDateTime, fr.UseShortDescription, fr.UseDescription }; foreach (var res in facilityRes) { ResObject resobject = new ResObject(res.FacilityReservationID, res.FacilityID, res.StartDateTime.Value, res.EndDateTime.Value, res.UseShortDescription, res.UseDescription); sqlResList.Reservations.Add(resobject); } } //Serialize into json format output (string) string json = JsonConvert.SerializeObject(sqlResList, Formatting.Indented); //logging string year = DateTime.Now.Year.ToString(); string month = DateTime.Now.Month.ToString(); string day = DateTime.Now.Day.ToString(); string fulldateTime = DateTime.Now.ToString(); string full = "[Executed on " + fulldateTime + " ]"; string path = "c:\\LogTest\\GetFacilityReservations-" + year + "-" + month + "-" + day + ".txt"; string line = "-----------------------------------------------------"; using (StreamWriter file = (File.Exists(path)) ? File.AppendText(path) : File.CreateText(path)) { file.WriteLine(full); file.WriteLine(line); file.Close(); } //codes to pass back the json string to the iPad Response.Write(json); Response.End(); } }
public FacilityCancelPage (string passFacilityID, string reservationid, string datePass) { InitializeComponent (); string[] splitToken = passFacilityID.Split (new[] { "." }, StringSplitOptions.None); char[] charArray = splitToken [1].ToCharArray (); string departmentID = ConfigurationSettings.departmentID; string block = splitToken [0]; string level = charArray [0].ToString (); string name = passFacilityID; //yyyy-MMM-dd //check with webservice to confirm format again string date = datePass; //Facility Reservation Kiosk Name appName.Text = "Facility Reservation Kiosk"; appName.FontAttributes = FontAttributes.Bold; var tapL = new TapGestureRecognizer (); tapL.Tapped += (object sender, EventArgs e) => Navigation.PushModalAsync(new FacilityListingPage()); appName.GestureRecognizers.Add (tapL); //set the label //set based on filter*** title.Text = " \n" + "Facility Reservation"; title.FontAttributes = FontAttributes.Bold; //filter button to filter the list of facility arrowButton.Image = "Left Arrow-50.png"; arrowButton.BackgroundColor = Color.Transparent; //return to FacilityListingPage arrowButton.Clicked += (object sender, EventArgs e) => Navigation.PopModalAsync (true); //facility name facName.Text = passFacilityID; facName.YAlign = TextAlignment.Center; facName.FontSize = 34; facName.FontAttributes = FontAttributes.Bold; //reservation status reservation.Text = "Cancellation"; reservation.YAlign = TextAlignment.Center; reservation.FontSize = 34; reservation.FontAttributes = FontAttributes.Bold; //set background colour box.BackgroundColor = Color.Silver; //a list to store reservation objects List<ResObject> reservationList = new List<ResObject> (); //url string urlRes = ConfigurationSettings.urliPad + "GetFacilityReservations.aspx?DepartmentID=" + departmentID + "&Block=" + block + "&Level=" + level + "&Name=" + name + "&Date=" + date; urlRes = Security.SignHttpRequest (urlRes); //to get all the reservations and insert to an c# object using (var client2 = new HttpClient ()) { HttpResponseMessage responseMsg2 = client2.GetAsync (urlRes).Result; var json2 = responseMsg2.Content.ReadAsStringAsync (); json2.Wait (); ReservationList list2 = JsonConvert.DeserializeObject<ReservationList> (json2.Result); 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); } } //add in column definitions //create new rows and column for the grid lineGrid.RowDefinitions = new RowDefinitionCollection (); lineGrid.ColumnDefinitions = new ColumnDefinitionCollection (); //create the columns //0,1,2 lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (20, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); //column with interval of 5 minutes lineGrid.ColumnSpacing = 0; for (int k = 0; k < 10; k++) { //00 lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //15 lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //30 lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //45 lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); } //6pm (243) lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); //spacing of 10 (244,245) lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (10, GridUnitType.Absolute) }); //rows for lineGrid lineGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Absolute) }); lineGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); lineGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Absolute) }); //drawing horizontal lines lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 2, 245, 0, 1); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 2, 245, 2, 3); //create new rows and column for the grid resGrid.RowDefinitions = new RowDefinitionCollection (); resGrid.ColumnDefinitions = new ColumnDefinitionCollection (); resGrid.ColumnSpacing = 0; resGrid.RowSpacing = 0; //create the columns //0,1,2 resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (20, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); //column with interval of 5 minutes resGrid.ColumnSpacing = 0; resGrid.RowSpacing = 0; for (int k = 0; k < 10; k++) { //00 resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //15 resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //30 resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //45 resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); } //6pm (243) resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); //spacing of 10 (244,245) resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); resGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (10, GridUnitType.Absolute) }); //add row resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (19, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (50, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (15, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (15, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (15, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (15, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (15, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (60, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); resGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (60, GridUnitType.Absolute) }); //boxview background resGrid.Children.Add (new BoxView { BackgroundColor = Color.Silver }, 2, 245, 1, 17); for (int j = 0; j < reservationList.Count; j++) { if (reservationList [j].facilityID == passFacilityID) { //booking reserved 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 box = new BoxView { BackgroundColor = Color.Silver }; //start, end , top, bottom //lineGrid.Children.Add (box, 3, 243, 1 , 2); lineGrid.Children.Add (box, start, end, 1, 2); //facGrid.Children.Add (facBut, start, end, (i*2) + 1, (i*2)+2); lineGrid.Children.Add (new Label { Text = text, TextColor = Color.Black, FontSize = 11, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center }, start, end, 1, 2); //if else or switch to determine the start and end time //if 8-9 then... //from time if (reservationList[j].facilityReservationID == reservationid) { resGrid.Children.Add (new Label { Text = reservationList[j].startDateTime.ToString("dd-MMM-yyyy") }, 75, 123, 3, 4); Label timepick = new Label { Text = reservationList[j].startDateTime.ToString("H.mm tt"), YAlign = TextAlignment.Center }; resGrid.Children.Add (timepick, 75, 112, 5, 6); //to time resGrid.Children.Add (new Label { Text = reservationList[j].endDateTime.ToString("H.mm tt"), YAlign = TextAlignment.Center }, 173, 210, 5, 6); facilityReservationID = reservationList [j].facilityReservationID; if ((reservationList [j].startDateTime.TimeOfDay >= eighttime && reservationList [j].startDateTime.TimeOfDay < ninetime)) { resGrid.Children.Add (new Image { Source = "arrowg.png" }, 3, 27, 0, 1); } if ((reservationList [j].startDateTime.TimeOfDay >= ninetime && reservationList [j].startDateTime.TimeOfDay < tentime)) { resGrid.Children.Add (new Image { Source = "arrowg.png" }, 27, 51, 0, 1); } if ((reservationList [j].startDateTime.TimeOfDay >= tentime && reservationList [j].startDateTime.TimeOfDay < eleventime)) { resGrid.Children.Add (new Image { Source = "arrowg.png" }, 51, 75, 0, 1); } if ((reservationList [j].startDateTime.TimeOfDay >= eleventime && reservationList [j].startDateTime.TimeOfDay < twelvetime)) { resGrid.Children.Add (new Image { Source = "arrowg.png" }, 75, 99, 0, 1); } if ((reservationList [j].startDateTime.TimeOfDay >= twelvetime && reservationList [j].startDateTime.TimeOfDay < thirteentime)) { resGrid.Children.Add (new Image { Source = "arrowg.png" }, 99, 123, 0, 1); } if ((reservationList [j].startDateTime.TimeOfDay >= thirteentime && reservationList [j].startDateTime.TimeOfDay < fourteentime)) { resGrid.Children.Add (new Image { Source = "arrowg.png" }, 123, 147, 0, 1); } if ((reservationList [j].startDateTime.TimeOfDay >= fourteentime && reservationList [j].startDateTime.TimeOfDay < fifteentime)) { resGrid.Children.Add (new Image { Source = "arrowg.png" }, 147, 171, 0, 1); } if ((reservationList [j].startDateTime.TimeOfDay >= fifteentime && reservationList [j].startDateTime.TimeOfDay < sixteentime)) { resGrid.Children.Add (new Image { Source = "arrowg.png" }, 171, 195, 0, 1); } if ((reservationList [j].startDateTime.TimeOfDay >= sixteentime && reservationList [j].startDateTime.TimeOfDay < seventeentime)) { resGrid.Children.Add (new Image { Source = "arrowg.png" }, 195, 219, 0, 1); } if ((reservationList [j].startDateTime.TimeOfDay >= seventeentime && reservationList [j].startDateTime.TimeOfDay < eighteentime)) { resGrid.Children.Add (new Image { Source = "arrowg.png" }, 219, 243, 0, 1); } } } } //date now string dateNowLine = DateTime.Now.ToString ("dd-MM-yyyy HH:mm:ss"); string 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]); int linestart, boxstart; 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); } //draw vertical lines //8am,9am,10am lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 3, 4, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 27, 28, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 51, 52, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 75, 76, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 99, 100, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 123, 124, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 147, 148, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 171, 172, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 195, 196, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 219, 220, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 243, 244, 0, 3); if (date == DateTime.Now.ToString ("yyyy-MMM-dd") || date == "") { //draw red line lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Red }, linestart, linestart + 1, 0, 3); } //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 (50, GridUnitType.Absolute) }); 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.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) }); if (date == DateTime.Now.ToString ("yyyy-MMM-dd") || date == "") { boxGrid.Children.Add (new BoxView { BackgroundColor = Color.Red }, boxstart - 9, boxstart + 10, 0, 1); boxGrid.Children.Add (new Label { Text = dateTiming, TextColor = Color.Black, FontSize = 9.5, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center }, boxstart - 9, boxstart + 10, 0, 1); } // add in label and textboxes to make new reservation resGrid.Children.Add (new Label { TextColor = Color.Black, Text = "Cancel Reservation", XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, FontAttributes = FontAttributes.Bold, FontSize = 20 }, 75, 171, 1, 2); resGrid.Children.Add (new Label { TextColor = Color.Black, Text = "On", YAlign = TextAlignment.Center, FontAttributes = FontAttributes.Bold, FontSize = 20 }, 27, 75, 3, 4); //Date label in for loop //from time label resGrid.Children.Add (new Label { TextColor = Color.Black, Text = "From", YAlign = TextAlignment.Center, FontAttributes = FontAttributes.Bold, FontSize = 20 }, 27, 75, 5, 6); //to time label resGrid.Children.Add (new Label { TextColor = Color.Black, Text = "To", YAlign = TextAlignment.Center, FontAttributes = FontAttributes.Bold, FontSize = 20 }, 147, 171, 5, 6); //reason resGrid.Children.Add (new Label { TextColor = Color.Black, Text = "Reason", YAlign = TextAlignment.Center, FontAttributes = FontAttributes.Bold, FontSize = 20 }, 27, 75, 7, 8); //entry input of reason Entry cellInput = new Entry (); resGrid.Children.Add (cellInput, 75, 205, 7, 8); //usertype resGrid.Children.Add (new Label { TextColor = Color.Black, Text = "User Type", YAlign = TextAlignment.Center, FontAttributes = FontAttributes.Bold, FontSize = 20 }, 27, 75, 9, 10); Picker usertypeInput = new Picker {SelectedIndex = 1}; resGrid.Children.Add (usertypeInput, 75, 115, 9, 10); usertypeInput.Items.Add ("Staff"); usertypeInput.Items.Add ("Students"); //userid resGrid.Children.Add (new Label { TextColor = Color.Black, Text = "User ID", YAlign = TextAlignment.Center, FontAttributes = FontAttributes.Bold, FontSize = 20 }, 27, 75, 11, 12); //entry input of userid Entry inputID = new Entry (); resGrid.Children.Add (inputID, 75, 123, 11, 12); //password resGrid.Children.Add (new Label { TextColor = Color.Black, Text = "Password", YAlign = TextAlignment.Center, FontAttributes = FontAttributes.Bold, FontSize = 20 }, 27, 75, 13, 14); //entry input of password Entry inputPass = new Entry (); resGrid.Children.Add (inputPass, 75, 135, 13, 14); inputPass.IsPassword = true; //button Button bookBut = new Button { Text="Confirm", BackgroundColor = Color.White }; resGrid.Children.Add (bookBut, 147, 192, 15, 16); bookBut.Clicked += (object sender, EventArgs e) => { userID = inputID.Text; password = inputPass.Text; reason = cellInput.Text; //check user if (userID == "133332D" && password == "12345") { string status; string message; //url //facilityReservationID string urlCancel = ConfigurationSettings.urliPad + "CancelReservation.aspx?UserID=" + userID + "&FacilityReservationID=" + facilityReservationID + "&Reason=" + reason; //to get all the reservations and insert to an c# object using (var client3 = new HttpClient ()) { HttpResponseMessage responseMsg3 = client3.GetAsync (urlCancel).Result; var json3 = responseMsg3.Content.ReadAsStringAsync (); json3.Wait (); string jsonString = json3.Result.ToString (); //ReservationList list2 = JsonConvert.DeserializeObject<ReservationList> (json3.Result); var obj = JObject.Parse (jsonString); status = (string)obj.SelectToken ("Result"); message = (string)obj.SelectToken ("Message"); } if (status == "OK") { ShowAlert ("Reservation", "Cancellation was sucessful!", "OK"); } else { DisplayAlert ("Error", message, "OK"); } } }; Button cancelBut = new Button { Text="Cancel", BackgroundColor = Color.White }; resGrid.Children.Add (cancelBut, 195, 240, 15, 16); cancelBut.Clicked += CancelBut_Clicked; }
public FacilityDetailsPage(string passFacilityID, string datePass) { InitializeComponent (); string[] splitToken = passFacilityID.Split (new[] { "." }, StringSplitOptions.None); char[] charArray = splitToken [1].ToCharArray (); string departmentID = ConfigurationSettings.departmentID; string block = splitToken [0]; string level = charArray [0].ToString (); string name = passFacilityID; //yyyy-MMM-dd //check with webservice to confirm format again string date = datePass; //Facility Reservation Kiosk Name appName.Text = "Facility Reservation Kiosk"; appName.FontAttributes = FontAttributes.Bold; //set the label //set based on filter*** title.Text = " \n" + "Facility Details"; title.FontAttributes = FontAttributes.Bold; //filter button to filter the list of facility arrowButton.Image = "Left Arrow-50.png"; arrowButton.BackgroundColor = Color.Transparent; //return to FacilityListingPage arrowButton.Clicked += (object sender, EventArgs e) => Navigation.PopModalAsync (true); //facility name facName.Text = passFacilityID; facName.YAlign = TextAlignment.Center; facName.FontSize = 34; facName.FontAttributes = FontAttributes.Bold; //reservation status reserve.Text = "Available"; reserve.YAlign = TextAlignment.Center; reserve.FontSize = 34; reserve.FontAttributes = FontAttributes.Bold; //set box colour based on reserved or no //box.BackgroundColor = Color.Red; box.BackgroundColor = Color.Lime; //a list to store reservation objects List<ResObject> reservationList = new List<ResObject> (); //url string urlRes = ConfigurationSettings.urliPad + "GetFacilityReservations.aspx?DepartmentID=" + departmentID + "&Block=" + block + "&Level=" + level + "&Name=" + name + "&Date=" + date; //to get all the reservations and insert to an c# object using (var client2 = new HttpClient ()) { HttpResponseMessage responseMsg2 = client2.GetAsync (urlRes).Result; var json2 = responseMsg2.Content.ReadAsStringAsync (); json2.Wait (); ReservationList list2 = JsonConvert.DeserializeObject<ReservationList> (json2.Result); 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); } } UpdateCamera (passFacilityID); Xamarin.Forms.Device.StartTimer (TimeSpan.FromSeconds(20), () => { UpdateCamera(passFacilityID); return true; }); timeline.RowDefinitions.Add (new RowDefinition { Height = new GridLength (10, GridUnitType.Absolute) }); timeline.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); Label labelNow; labelNow = new Label { TextColor = Color.Black }; timeline.Children.Add (labelNow, 1, 1); labelNow.FontAttributes = FontAttributes.Bold; //labelNow.Text = ""; //check if display label as today or other date if (date == DateTime.Now.ToString ("yyyy-MMM-dd") || date == "") { labelNow.Text = "Today"; } else { string [] arrayDate = date.Split (new[] { "-" }, StringSplitOptions.None); labelNow.Text = arrayDate [2] + "-" + arrayDate [1] + "-" + arrayDate [0]; } TimeSpan dateNowHourStatus; TimeSpan dateStartStatus; TimeSpan dateEndStatus; //loop the reservations for (int i = 0; i < reservationList.Count; i++) { timeline.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); string startTime, endTime; string start = reservationList [i].startDateTime.ToString ("dd-MM-yyyy HH:mm:ss"); string end = reservationList [i].endDateTime.ToString ("dd-MM-yyyy HH:mm:ss"); string dateNow = DateTime.Now.ToString ("dd-MM-yyyy HH:mm:ss"); if (start == dateNow) { startTime = "Now"; } else { //time string[] stoken = start.Split (new[] { " " }, StringSplitOptions.None); //timing[0] = 08 (hour) //timing[1] = 30 (mins) string[] stiming = stoken [1].Split (new[] { ":" }, StringSplitOptions.None); startTime = stiming [0] + "." + stiming [1]; } //time (end) string[] etoken = end.Split (new[] { " " }, StringSplitOptions.None); //timing[0] = 08 (hour) //timing[1] = 30 (mins) string[] etiming = etoken [1].Split (new[] { ":" }, StringSplitOptions.None); endTime = etiming [0] + "." + etiming [1]; Label labelTime; labelTime = new Label { TextColor = Color.Black }; timeline.Children.Add (labelTime, 1, i + 2); labelTime.Text = startTime + " to " + endTime; labelTime.FontAttributes = FontAttributes.Bold; Label desc; desc = new Label { TextColor = Color.Black }; timeline.Children.Add (desc, 2, i + 2); desc.Text = reservationList[i].useShortDescription + " " + reservationList [i].useDescription; desc.FontAttributes = FontAttributes.Bold; } //add in column definitions //create new rows and column for the grid lineGrid.RowDefinitions = new RowDefinitionCollection (); lineGrid.ColumnDefinitions = new ColumnDefinitionCollection (); //create the columns //0,1,2 lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (20, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); //column with interval of 5 minutes lineGrid.ColumnSpacing = 0; for (int k = 0; k < 10; k++) { //00 lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //15 lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //30 lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); //45 lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (4, GridUnitType.Absolute) }); } //6pm (243) lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (1, GridUnitType.Absolute) }); //spacing of 10 (244,245) lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (30, GridUnitType.Absolute) }); lineGrid.ColumnDefinitions.Add (new ColumnDefinition { Width = new GridLength (10, GridUnitType.Absolute) }); //rows for lineGrid lineGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Absolute) }); lineGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (30, GridUnitType.Absolute) }); lineGrid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Absolute) }); //drawing horizontal lines lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 2, 245, 0, 1); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 2, 245, 2, 3); //add image boxes //tap gesture for pop up Image eightnine = new Image { BackgroundColor = Color.Transparent }; Image nineten = new Image { BackgroundColor = Color.Transparent }; Image teneleven = new Image { BackgroundColor = Color.Transparent }; Image eleventwelve = new Image { BackgroundColor = Color.Transparent }; Image twelve13 = new Image { BackgroundColor = Color.Transparent }; Image thirteen14 = new Image { BackgroundColor = Color.Transparent }; Image fourteen15 = new Image { BackgroundColor = Color.Transparent }; Image fifteen16 = new Image { BackgroundColor = Color.Transparent }; Image sixteen17 = new Image { BackgroundColor = Color.Transparent }; Image seventeen18 = new Image { BackgroundColor = Color.Transparent }; lineGrid.Children.Add (eightnine, 3, 27, 0, 3); lineGrid.Children.Add (nineten, 27, 51, 0, 3); lineGrid.Children.Add (teneleven, 51, 75, 0, 3); lineGrid.Children.Add (eleventwelve, 75, 99, 0, 3); lineGrid.Children.Add (twelve13, 99, 123, 0, 3); lineGrid.Children.Add (thirteen14, 123, 147, 0, 3); lineGrid.Children.Add (fourteen15, 147, 171, 0, 3); lineGrid.Children.Add (fifteen16, 171, 195, 0, 3); lineGrid.Children.Add (sixteen17, 195, 219, 0, 3); lineGrid.Children.Add (seventeen18, 219, 243, 0, 3); var tap89 = new TapGestureRecognizer (); tap89.Tapped += (object sender, EventArgs e) => { Navigation.PushModalAsync (new FacilityReservationPage (passFacilityID, "89", date)); }; eightnine.GestureRecognizers.Add (tap89); var tap910 = new TapGestureRecognizer (); tap910.Tapped += (object sender, EventArgs e) => { Navigation.PushModalAsync (new FacilityReservationPage (passFacilityID, "910", date)); }; nineten.GestureRecognizers.Add (tap910); var tap1011 = new TapGestureRecognizer (); tap1011.Tapped += (object sender, EventArgs e) => { Navigation.PushModalAsync (new FacilityReservationPage (passFacilityID, "1011", date)); }; teneleven.GestureRecognizers.Add (tap1011); var tap1112 = new TapGestureRecognizer (); tap1112.Tapped += (object sender, EventArgs e) => { Navigation.PushModalAsync (new FacilityReservationPage (passFacilityID, "1112", date)); }; eleventwelve.GestureRecognizers.Add (tap1112); var tap1213 = new TapGestureRecognizer (); tap1213.Tapped += (object sender, EventArgs e) => { Navigation.PushModalAsync (new FacilityReservationPage (passFacilityID, "1213", date)); }; twelve13.GestureRecognizers.Add (tap1213); var tap1314 = new TapGestureRecognizer (); tap1314.Tapped += (object sender, EventArgs e) => { Navigation.PushModalAsync (new FacilityReservationPage (passFacilityID, "1314", date)); }; thirteen14.GestureRecognizers.Add (tap1314); var tap1415 = new TapGestureRecognizer (); tap1415.Tapped += (object sender, EventArgs e) => { Navigation.PushModalAsync (new FacilityReservationPage (passFacilityID, "1415", date)); }; fourteen15.GestureRecognizers.Add (tap1415); var tap1516 = new TapGestureRecognizer (); tap1516.Tapped += (object sender, EventArgs e) => { Navigation.PushModalAsync (new FacilityReservationPage (passFacilityID, "1516", date)); }; fifteen16.GestureRecognizers.Add (tap1516); var tap1617 = new TapGestureRecognizer (); tap1617.Tapped += (object sender, EventArgs e) => { Navigation.PushModalAsync (new FacilityReservationPage (passFacilityID, "1617", date)); }; sixteen17.GestureRecognizers.Add (tap1617); var tap1718 = new TapGestureRecognizer (); tap1718.Tapped += (object sender, EventArgs e) => { Navigation.PushModalAsync (new FacilityReservationPage (passFacilityID, "1718", date)); }; seventeen18.GestureRecognizers.Add (tap1718); for (int j = 0; j < reservationList.Count; j++) { if (reservationList [j].facilityID == passFacilityID) { //booking reserved 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 box = new BoxView { BackgroundColor = Color.Silver }; //start, end , top, bottom //lineGrid.Children.Add (box, 3, 243, 1 , 2); lineGrid.Children.Add (box, start, end, 1, 2); //facGrid.Children.Add (facBut, start, end, (i*2) + 1, (i*2)+2); Label resLabelTap = new Label { Text = text, TextColor = Color.Black, FontSize = 11, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center }; lineGrid.Children.Add (resLabelTap, start, end, 1, 2); Label id = new Label (); id.Text = reservationList [j].facilityReservationID; id.IsVisible = false; //add gesture to tap var bosRes = new TapGestureRecognizer (); bosRes.Tapped += (object sender, EventArgs e) => { //pass in reservation ID to know which reservation is clicked Navigation.PushModalAsync (new FacilityCancelPage (passFacilityID, id.Text, date)); }; resLabelTap.GestureRecognizers.Add (bosRes); } //comeback and do again //tell if available or reserved dateNowHourStatus = DateTime.Now.TimeOfDay; dateStartStatus = reservationList [j].startDateTime.TimeOfDay; dateEndStatus = reservationList [j].endDateTime.TimeOfDay; //come back and do again if (dateStartStatus <= dateNowHourStatus && dateEndStatus >= dateNowHourStatus) { //reservation status reserve.Text = "Reserved"; reserve.YAlign = TextAlignment.Center; reserve.FontSize = 34; reserve.FontAttributes = FontAttributes.Bold; //set box colour based on reserved or no box.BackgroundColor = Color.Red; //box.BackgroundColor = Color.Lime; } } //date now string dateNowLine = DateTime.Now.ToString ("dd-MM-yyyy HH:mm:ss"); string 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]); int linestart,boxstart; 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); } //only show the line if the rdate is clicked today //if (date == DateTime.Now.ToString ("yyyy-MMM-dd")) { //draw vertical lines //8am,9am,10am lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 3, 4, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 27, 28, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 51, 52, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 75, 76, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 99, 100, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 123, 124, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 147, 148, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 171, 172, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 195, 196, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 219, 220, 0, 3); lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Black }, 243, 244, 0, 3); if (date == DateTime.Now.ToString ("yyyy-MMM-dd")) { //draw red line lineGrid.Children.Add (new BoxView { BackgroundColor = Color.Red }, linestart, linestart + 1, 0, 3); } //} //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 (50, GridUnitType.Absolute) }); 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.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) }); if (date == DateTime.Now.ToString ("yyyy-MMM-dd")) { boxGrid.Children.Add (new BoxView { BackgroundColor = Color.Red }, boxstart - 9, boxstart + 10, 0, 1); boxGrid.Children.Add (new Label { Text = dateTiming, TextColor = Color.Black, FontSize = 9.5, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center }, boxstart - 9, boxstart + 10, 0, 1); } }
//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(); }