private void Button1Click(object sender, RoutedEventArgs e) { // Ready to add new row switch (button1.Content.ToString()) { case "Add": { button1.Content = "New"; var student = new StudentDTO { Avg = float.Parse(tbAvg.Text), Birthday = DateTime.Parse(dpBirthday.Text), Code = tbCode.Text, Name = tbName.Text, Status = true, }; StudentController.Create(student, _imageFile); _dataSource.Add(student); } break; case "New": button1.Content = "Add"; button1.IsEnabled = false; tbName.Text = "Name"; tbCode.Text = "Student Code"; tbAvg.Text = "Average Mark"; dpBirthday.Text = "Birthday"; break; } }
public static string Update(StudentDTO dto, string imageFile) { var request = WebRequest.Create(ServiceURL + "students/update") as HttpWebRequest; return GetPostResult(dto,request, imageFile); }
public static string Delete(StudentDTO dto) { // TODO: Change to normal get for better performance var request = WebRequest.Create(ServiceURL + "students/" + dto.Id + "/delete") as HttpWebRequest; return GetPostResult(dto,request, null); }
private static string PostOtherData(StudentDTO dto, HttpWebRequest request) { if (request != null) { request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentType = "application/json"; } // Create a byte array of the data we want to send var byteData = Encoding.UTF8.GetBytes( "{'Id' : '" + dto.Id + "','Name' : '" + dto.Name + "', 'Status' : '" + dto.Status + "', 'Code': '" + dto.Code + "', 'Avg' : " + dto.Avg + ", 'Birthday' : '" + dto.Birthday + "'}" ); // Set the content length in the request headers request.ContentLength = byteData.Length; // Write data using (var postStream = request.GetRequestStream()) postStream.Write(byteData, 0, byteData.Length); // Get response string result; try { using (var response = request.GetResponse() as HttpWebResponse) result = new StreamReader(response.GetResponseStream()).ReadToEnd(); } catch { result = "failed"; } return result; }
private static void PostImage(StudentDTO dto, string filePath) { var request = (HttpWebRequest)WebRequest.Create(ServiceURL + "students/upload/" + dto.Name); request.Accept = "text/xml"; request.Method = "POST"; request.ContentType = "image/jpeg"; using (var fileStream = File.OpenRead(filePath)) using (var requestStream = request.GetRequestStream()) { var buffer = new byte[1024]; int byteCount; while ((byteCount = fileStream.Read(buffer, 0, 1024)) > 0) { requestStream.Write(buffer, 0, byteCount); } } string result; try { var response = request.GetResponse(); using (var reader = new StreamReader(response.GetResponseStream())) { result = reader.ReadToEnd(); } } catch (Exception exception) { MessageBox.Show("Your image size is too big !"); } }
private static string GetPostResult(StudentDTO dto, HttpWebRequest request, string imageFileAddress) { // Upload image to server PostImage(dto, imageFileAddress); // Set type to POST var result = PostOtherData(dto, request); return result; }
// Update private void Button2Click(object sender, RoutedEventArgs e) { var selectedStudent = (StudentDTO) studentGrid.SelectedItems[0]; var index = studentGrid.SelectedIndex; var student = new StudentDTO { Avg = float.Parse(tbAvg.Text), Birthday = DateTime.Parse(dpBirthday.Text), Code = tbCode.Text, Name = tbName.Text, Status = true, Id = selectedStudent.Id }; if (StudentController.Update(student, _imageFile) == "failed") { MessageBox.Show("Update failed"); } else { _dataSource[index] = student; } }