protected override void OnCreate(Bundle bundle) { base.OnCreate (bundle); #region color the titlebar View titleView = Window.FindViewById(Android.Resource.Id.Title); if (titleView != null) { IViewParent parent = titleView.Parent; if (parent != null && (parent is View)) { View parentView = (View)parent; parentView.SetBackgroundColor(Color.Rgb(0x26, 0x75 ,0xFF)); //38, 117 ,255 } } #endregion // set our layout to be the details screen SetContentView(Resource.Layout.TaskDetails); int taskID = Intent.GetIntExtra("TaskID", -1); if (taskID >= 0) task = AzureWebService.GetTodo(taskID); // from Azure else task = new Task(); nameTextEdit = FindViewById<EditText>(Resource.Id.txtName); //notesTextEdit = FindViewById<EditText>(Resource.Id.txtNotes); saveButton = FindViewById<Button>(Resource.Id.btnSave); doneCheckbox = FindViewById<CheckBox>(Resource.Id.chkDone); // find all our controls cancelDeleteButton = FindViewById<Button>(Resource.Id.btnCancelDelete); // set the cancel delete based on whether or not it's an existing task cancelDeleteButton.Text = (task.Id < 0 ? "Cancel" : "Delete"); // name nameTextEdit.Text = task.Title; // notes //notesTextEdit.Text = task.Notes; doneCheckbox.Checked = task.IsDone; // button clicks cancelDeleteButton.Click += (sender, e) => { CancelDelete(); }; saveButton.Click += (sender, e) => { Save(); }; }
/// <summary> /// DELETE /tables/TodoItem/{id} /// </summary> public static void DeleteTodo(Task t) { WebClient client = new WebClient(); try { // make it synchronous client.Headers.Add (HttpRequestHeader.Accept, "application/json"); client.Headers.Add (HttpRequestHeader.ContentType, "application/json"); client.Headers.Add ("X-ZUMO-APPLICATION", MobileServiceAppId); var payload = t.ToJson (); var response = client.UploadString (String.Format (DeleteUrl,t.Id), "DELETE", payload); // DELETE // ...and wait... var responseString = response; //var responseJson = JsonValue.Parse (responseString); //HACK: Console.WriteLine ("Delete Json response => " + responseString); } catch (System.Net.WebException e) { Console.WriteLine ("X-ZUMO-APPLICATION add failed" + e.Message); } }
public override void ViewDidLoad() { base.ViewDidLoad (); addButton = new UIBarButtonItem(UIBarButtonSystemItem.Add, (s,e) =>{ var task = new Task() {Title="<new task>"}; // Save to Azure var added = AzureWebService.AddTodo (task); tasks.Add (added); Reload (); // show the new task }); NavigationItem.RightBarButtonItem = addButton; // UIBarButtonSystemItem.Refresh or http://barrow.io/posts/iphone-emoji/ refreshButton = new UIBarButtonItem('\uE049'.ToString () , UIBarButtonItemStyle.Plain , (s,e) => { tasks = AzureWebService.LoadTodos(Reload); }); NavigationItem.LeftBarButtonItem = refreshButton; tasks = AzureWebService.LoadTodos(Reload); }
/// <summary> /// POST /tables/TodoItem /// {"text":"new task text","complete":false} /// </summary> public static Task AddTodo(Task t) { WebClient client = new WebClient(); try { // make it synchronous client.Headers.Add (HttpRequestHeader.Accept, "application/json"); client.Headers.Add (HttpRequestHeader.ContentType, "application/json"); client.Headers.Add ("X-ZUMO-APPLICATION", MobileServiceAppId); var payload = t.ToJson (); var response = client.UploadString (AddUrl, "POST", payload); // PATCH // ...and wait... var responseString = response; // RETURNS [{"id":1,"text":"Port to iOS and Android","complete":false}] Console.WriteLine ("Add Json response => " + responseString); var responseJson = JsonValue.Parse (responseString); return new Task(responseJson); } catch (System.Net.WebException e) { Console.WriteLine ("X-ZUMO-APPLICATION add failed" + e.Message); } return null; }
/// <summary> /// POST /tables/TodoItem /// /// </summary> public static void AddTodo(Task t) { WebClient client = new WebClient(); try { // HACK: Android issue - see Validator method declaration ServicePointManager.ServerCertificateValidationCallback = Workaround.Validator; // make it synchronous client.Headers.Add (HttpRequestHeader.Accept, "application/json"); client.Headers.Add (HttpRequestHeader.ContentType, "application/json"); client.Headers.Add ("X-ZUMO-APPLICATION", MobileServiceAppId); var payload = t.ToJson (); var response = client.UploadString (AddUrl, "POST", payload); // PATCH // ...and wait... var responseString = response; //var responseJson = JsonValue.Parse (responseString); //HACK: Console.WriteLine ("Add Json response => " + responseString); } catch (System.Net.WebException e) { Console.WriteLine ("X-ZUMO-APPLICATION add failed" + e.Message); } }
/// <summary> /// GET /tables/TodoItem/{id} /// </summary> public static Task GetTodo(int id) { Task task = null; WebClient client = new WebClient(); try { // make it synchronous client.Headers.Add (HttpRequestHeader.Accept, "application/json"); client.Headers.Add ("X-ZUMO-APPLICATION", MobileServiceAppId); var response = client.DownloadData (String.Format (GetUrl, id)); // GET // ...and wait... var responseString = System.Text.Encoding.UTF8.GetString(response); // RETURNS [{"id":1,"text":"Port to iOS and Android","complete":false}] var responseJson = JsonValue.Parse (responseString); if (responseJson != null) { for (var j = 0; j < responseJson.Count; j++) { var t = responseJson[j];// as JsonValue; task = new Task(t); break; // just one required :) } } Console.WriteLine ("Json get response => " + responseString); } catch (System.Net.WebException e) { Console.WriteLine ("X-ZUMO-APPLICATION failed" + e.Message); } return task; }
/// <summary> /// GET /tables/TodoItem /// </summary> public static List<Task> LoadTodos(Action whenDone) { var tasks = new List<Task>(); WebClient client = new WebClient(); try { // make it synchronous client.Headers.Add (HttpRequestHeader.Accept, "application/json"); client.Headers.Add ("X-ZUMO-APPLICATION", MobileServiceAppId); var response = client.DownloadData (GetAllUrl); // GET // ...and wait... var responseString = System.Text.Encoding.UTF8.GetString(response); // RETURNS [{"id":1,"text":"Port to iOS and Android","complete":false}] var responseJson = JsonValue.Parse (responseString); //HACK: if (responseJson != null) { tasks = new List<Task>(); for (var j = 0;j <responseJson.Count; j++) { var t = responseJson[j];// as JsonValue; var task = new Task(t); tasks.Add (task); } whenDone(); // hacky to keep doing this...? } Console.WriteLine ("Json response => " + responseString); } catch (System.Net.WebException e) { Console.WriteLine ("X-ZUMO-APPLICATION failed" + e.Message); } return tasks; }
public TaskScreen(Task t) { task = t; }