private async void Button_Click(object sender, RoutedEventArgs e) { if (String.IsNullOrWhiteSpace(SearchTextBox.Text) || !SettingsManager.IsLoggedIn) { return; } mainProgressRing.isActive = true; Search searchRequest = new Search() { SearchBy = ((SearchType)(searchTypeListBox.SelectedIndex)) }; searchRequest.SearchText = SearchTextBox.Text.Trim(); Object response = await ConnectionManager.SendRequestAsync(searchRequest, RequestType.Search, ResponseType.Search); if (response != null) { HomePage home = new HomePage(response, ResponseType.Search, "Search Results : " + SearchTextBox.Text) { Parent = mainFrame }; mainFrame.Navigate(home); } else { AppNotificationManager.PushMessage(new AppNotification() { Message = "Failed to perform search." }); } mainProgressRing.isActive = false; }
private async void deleteVideoButton_Click(object sender, RoutedEventArgs e) { DeleteCourseRequest request = new DeleteCourseRequest() { CourseID = ((CourseDetails)Tag).CourseID }; Object resp = await ConnectionManager.SendRequestAsync(request, RequestType.DeleteCourse, ResponseType.Acknowledge); if (resp != null) { Acknowledge result = ((JObject)resp).ToObject <Acknowledge>(); if (result.Status == "OK") { ((WrapPanel)Parent).Children.Remove(this); } AppNotificationManager.PushMessage(new AppNotification() { Message = result.Reason }); } else { AppNotificationManager.PushMessage(new AppNotification() { Message = "Failed to delete course." }); } }
private async void sendSigninRequestAsync() { errorTextBlock.Text = ""; string username = usernametextBlock.Text.Trim(); string password = passwordTextBlock.Password.Trim(); if (String.IsNullOrWhiteSpace(username) || String.IsNullOrEmpty(password)) { errorTextBlock.Text = "Fill all fields."; return; } progressRing.isActive = true; Object resp = new JObject(); resp = await ConnectionManager.SendRequestAsync(new Model.Data.SignIn() { Username = username, Password = Security.MD5Hash(password), Challenge = DateTime.Now.Ticks.ToString() }, RequestType.SignIn, ResponseType.SignIn); progressRing.isActive = false; if (resp == null) { errorTextBlock.Text = "Connection Error. Retry"; } else { SignInResponse Response = ((JObject)resp).ToObject <SignInResponse>(); if (Response.IsAccepted) { progressRing.isActive = true; await fetchAccountInfo(username, Response.SessionID); AppNotificationManager.PushMessage(new AppNotification() { Message = SettingsManager.FullName + " signed in successfully." }); progressRing.isActive = false; SettingsManager.AuthKey = Response.SessionID; SettingsManager.IsLoggedIn = true; SettingsManager.KeepLoggedIn = false; if (loggedmeinCheckBox.IsChecked != null && loggedmeinCheckBox.IsChecked == true) { SettingsManager.KeepLoggedIn = true; SettingsManager.SaveSettings(); } Close(); } else { errorTextBlock.Text = Response.Reason; } } //AppNotificationManager.PushMessage(new AppNotification() { Message = Response.SessionID }); }
private async void createCourseButton_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(courseNameTextBlock.Text)) { return; } progressRing.isActive = true; CreateCourseRequest request = new CreateCourseRequest() { CourseName = courseNameTextBlock.Text, UserId = SettingsManager.Username, Username = SettingsManager.FullName }; if (IsModifyCourseType) { request.UserId = CourseID; } Object resp = await ConnectionManager.SendRequestAsync(request, IsModifyCourseType?RequestType.ModifyCourse : RequestType.CreateCourse, ResponseType.Acknowledge); if (resp != null) { errorTextBlock.Text = ((JObject)resp).ToObject <Acknowledge>().Reason; if (IsModifyCourseType) { AppNotificationManager.PushMessage(new AppNotification() { Message = "Course changed successfully." }); } else { AppNotificationManager.PushMessage(new AppNotification() { Message = "Course created successfully." }); } Close(); } else { errorTextBlock.Text = "Connection Error"; } progressRing.isActive = false; }
private void NotificationRunner() { while (true) { if (AppNotificationManager.Count > 0) { AppNotification notification = AppNotificationManager.PullMessage(); Dispatcher.Invoke (() => { ShowNotification(notification.Message); }); Thread.Sleep(5000); Dispatcher.Invoke(() => { notificationPanel.Visibility = Visibility.Collapsed; }); } else { Thread.Sleep(200); } } }
private async void createAccountButton_Click(object sender, RoutedEventArgs e) { if (!IsValid()) { return; } progressRing.isActive = true; Model.Data.CreateAccount accountRequest = new Model.Data.CreateAccount() { FullName = fullNameTextBlock.Text.Trim(), Username = usernameTextBlock.Text.Trim(), Password = Security.MD5Hash(passwordTextBlock.Password.Trim()), Type = accounttextBlock.SelectedIndex == 0 ? UserType.Student : UserType.Professional }; Object result = new JObject(); result = await ConnectionManager.SendRequestAsync(accountRequest, RequestType.SignUp, ResponseType.Acknowledge); if (result != null) { Acknowledge ack = ((JObject)result).ToObject <Acknowledge>(); if (ack.Status == "OK") { AppNotificationManager.PushMessage(new AppNotification() { Message = "Account created Successfully" }); Close(); } else { errorTextBlock.Text = ack.Reason; } } else { errorTextBlock.Text = "Connection Error"; } progressRing.isActive = false; }
private async void mainListView_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (mainListView.SelectedIndex == -1) { return; } if (SettingsManager.IsLoggedIn == false && ((ListViewItem)mainListView.SelectedItem).Tag.ToString() != "settings" && ((ListViewItem)mainListView.SelectedItem).Tag.ToString() != "reconnect") { RequestLogin(); mainListView.SelectedIndex = -1; return; } switch (((ListViewItem)mainListView.SelectedItem).Tag) { case "home": mainProgressRing.isActive = true; Object resp = new JObject(); resp = await ConnectionManager.SendRequestAsync(new HomeRequest() { Latest = "" }, RequestType.Home, ResponseType.Home); if (resp != null) { HomePage page1 = new HomePage((JObject)resp, ResponseType.Home); mainFrame.Navigate(page1); } else { AppNotificationManager.PushMessage(new AppNotification() { Message = "Unable to load Home." }); } mainProgressRing.isActive = false; break; case "myvideos": mainProgressRing.isActive = true; Object response = new JObject(); resp = await ConnectionManager.SendRequestAsync(new CourseListRequest() { AuthorID = SettingsManager.Username }, RequestType.CourseList, ResponseType.CourseList); if (resp != null) { HomePage page = new HomePage((JObject)resp, ResponseType.CourseList, "Courses") { Parent = mainFrame }; mainFrame.Navigate(page); } else { AppNotificationManager.PushMessage(new AppNotification() { Message = "Unable to load Courses." }); } mainProgressRing.isActive = false; break; case "favorites": mainProgressRing.isActive = true; Object response2 = new JObject(); response2 = await ConnectionManager.SendRequestAsync(new FavoritesRequest() { Userid = SettingsManager.Username }, RequestType.Favorites, ResponseType.Favorites); if (response2 != null) { HomePage page1 = new HomePage((JObject)response2, ResponseType.Favorites, "Favorites"); mainFrame.Navigate(page1); } else { AppNotificationManager.PushMessage(new AppNotification() { Message = "Unable to load Favorites." }); } mainProgressRing.isActive = false; break; case "create": CreateCourse course = new CreateCourse(); course.ShowDialog(); break; case "logout": SettingsManager.LogoutUpdate(); SettingsManager.SaveSettings(); while (mainFrame.CanGoBack) { mainFrame.RemoveBackEntry(); } mainFrame.Navigate(new DefaultPage()); RequestLogin(); break; case "reconnect": mainProgressRing.isActive = true; await ConnectionManager.Connect(); mainProgressRing.isActive = false; SettingsManager.ProfilePath = SettingsManager.ProfilePath; break; case "settings": Settings set = new Settings(); set.Show(); break; case "about": new About().ShowDialog(); break; default: break; } mainListView.SelectedIndex = -1; }
private async void deleteVideoButton_Click(object sender, RoutedEventArgs e) { //enclose inside success. ConfirmWindow confirm = new ConfirmWindow(VideoTitle); confirm.ShowDialog(); if (confirm.Result && !IsFavoritesType) { DeleteVideoRequest request = new DeleteVideoRequest() { VideoID = VideoID, CourseID = CourseID }; Object result = await ConnectionManager.SendRequestAsync(request, RequestType.DeleteVideo, ResponseType.Acknowledge); if (result != null) { if (((JObject)result).ToObject <Acknowledge>().Status == "OK") { ((WrapPanel)Parent).Children.Remove(this); AppNotificationManager.PushMessage(new AppNotification() { Message = "Video Deleted Successfully." }); } } else { AppNotificationManager.PushMessage(new AppNotification() { Message = "Unable to delete video." }); } } else if (confirm.Result && IsFavoritesType) { DeleteFavorite request = new DeleteFavorite() { UserID = SettingsManager.Username, VideoID = VideoID }; Object result = await ConnectionManager.SendRequestAsync(request, RequestType.DeleteFavorite, ResponseType.Acknowledge); if (result != null) { if (((JObject)result).ToObject <Acknowledge>().Status == "OK") { ((WrapPanel)Parent).Children.Remove(this); AppNotificationManager.PushMessage(new AppNotification() { Message = "Favorite Deleted Successfully." }); } } else { AppNotificationManager.PushMessage(new AppNotification() { Message = "Unable to delete favorite." }); } } }
private async void uploadVideoButton_Click(object sender, RoutedEventArgs e) { if (IsValid() && !IsEditVideoType) { progressRing.isActive = true; CreateVideoRequest request = new CreateVideoRequest() { AuthorId = SettingsManager.Username, AuthorName = SettingsManager.FullName, CourseId = CourseID.CourseID, CourseName = CourseID.CourseName, Decription = descriptionTextBlock.Text, Duration = duration, Height = videoHeight, Width = videoWidth, Title = titleTextBlock.Text, Tags = new List <string>() }; foreach (Tags tag in tagsContainer.Children) { request.Tags.Add(tag.TagName); } Object resp = await ConnectionManager.SendRequestAsync(request, RequestType.CreateVideo, ResponseType.CreateVideo); if (resp != null) { CreateVideoResponse response = ((JObject)resp).ToObject <CreateVideoResponse>(); string path = Guid.NewGuid().ToString() + ".jpg"; File.Copy(thumbnailPath, path); Object response2 = await ConnectionManager.SendVideoFileAsync(chosenVideoPathTextBlock.Text, path, response.Port); if (File.Exists(path)) { File.Delete(path); } if (response2 != null) { AppNotificationManager.PushMessage(new AppNotification() { Message = ((JObject)response2).ToObject <Acknowledge>().Reason }); } else { AppNotificationManager.PushMessage(new AppNotification() { Message = "Video Upload Failed Failed." }); } Close(); } else { errorTextBlock.Text = "Connection Error"; } progressRing.isActive = false; } else if (IsValid() && IsEditVideoType) { progressRing.isActive = true; VideoUpdateRequest request = new VideoUpdateRequest() { Title = titleTextBlock.Text, Description = descriptionTextBlock.Text, IsThumbnailUpdateRequired = thumbnailChosen, Tags = new List <string>() }; foreach (Tags tags in ((WrapPanel)tagsContainer).Children) { request.Tags.Add(tags.TagName); } Object resp = await ConnectionManager.SendRequestAsync(request, RequestType.VideoUpdate, ResponseType.Acknowledge); if (resp != null) { VideoUpdateResponse ack = ((JObject)resp).ToObject <VideoUpdateResponse>(); if (ack.Status == "OK") { try { if (thumbnailChosen) { await ConnectionManager.SendFileAsync(thumbnailPath, null); } }catch (Exception ex) { AppNotificationManager.PushMessage(new AppNotification() { Message = ex.Message }); Close(); } } errorTextBlock.Text = ack.Reason; } else { errorTextBlock.Text = "Connection Error."; } } }
private async void modifyVideoButton_Click(object sender, RoutedEventArgs e) { progressRing.isActive = true; VideoUpdateRequest request = new VideoUpdateRequest() { VideoID = VideoID, Title = titleTextBlock.Text, Description = descriptionTextBlock.Text, IsThumbnailUpdateRequired = thumbnailChosen, Tags = new List <string>() }; foreach (Tags tags in ((WrapPanel)tagsContainer).Children) { request.Tags.Add(tags.TagName); } Object resp = await ConnectionManager.SendRequestAsync(request, RequestType.VideoUpdate, ResponseType.VideoUpdate); if (resp != null) { VideoUpdateResponse ack = ((JObject)resp).ToObject <VideoUpdateResponse>(); if (ack.Status == "OK") { if (thumbnailChosen) { string tempPath = "Temporary/" + Guid.NewGuid() + ".jpg"; if (Directory.Exists("Temporary/")) { Directory.CreateDirectory("Temporary/"); } File.Copy(thumbnailPath, tempPath); var result = await ConnectionManager.SendFileAsync(tempPath, null); if (result != null) { var response = ((JObject)result).ToObject <Acknowledge>(); errorTextBlock.Text = response.Reason; if (response.Status == "OK") { AppNotificationManager.PushMessage(new AppNotification() { Message = response.Reason }); Close(); } } if (File.Exists(tempPath)) { File.Delete(tempPath); } } AppNotificationManager.PushMessage(new AppNotification() { Message = ack.Reason }); Close(); } errorTextBlock.Text = ack.Reason; } else { errorTextBlock.Text = "Connection Error."; } }
private async void saveProfileButton_Click(object sender, RoutedEventArgs e) { progressRing.isActive = true; if (isPhotoPicked) { JpegBitmapEncoder encoder = new JpegBitmapEncoder() { QualityLevel = 50 }; CroppedBitmap bm = new CroppedBitmap(imagePicked, new Int32Rect(OriginX, OriginY, Minimum, Minimum)); if (!Directory.Exists("Temporary")) { Directory.CreateDirectory("Temporary"); } encoder.Frames.Add(BitmapFrame.Create(bm)); using (FileStream fs = new FileStream("Temporary/" + SettingsManager.Username + ".jpg", FileMode.OpenOrCreate)) encoder.Save(fs); } ProfileUpdateRequest request = new ProfileUpdateRequest() { FullName = fullNameTextBlock.Text, Username = SettingsManager.Username, RequiresImageUpdate = isPhotoPicked, RequiresPasswordUpdate = !String.IsNullOrWhiteSpace(passwordTextBlock.Password), OldPassword = Security.MD5Hash(passwordTextBlock.Password), Password = Security.MD5Hash(newPasswordTextBlock.Password) }; Object resp = await ConnectionManager.SendRequestAsync(request, RequestType.UpdateProfile, ResponseType.UpdateProfile); if (resp != null) { ProfileUpdateResponse response = ((JObject)resp).ToObject <ProfileUpdateResponse>(); if (response.Status == "OK") { if (isPhotoPicked) { resp = await ConnectionManager.SendFileAsync("Temporary/" + SettingsManager.Username + ".jpg", null); } if (resp != null) { var response2 = ((JObject)resp).ToObject <Acknowledge>(); errorTextBlock.Text = response2.Reason; SettingsManager.UpdateImage(); SettingsManager.FullName = SettingsManager.FullName; SettingsManager.Password = SettingsManager.Password; if (File.Exists("Temporary/" + SettingsManager.Username + ".jpg")) { File.Delete("Temporary/" + SettingsManager.Username + ".jpg"); } if (response2.Status == "OK") { AppNotificationManager.PushMessage(new AppNotification() { Message = "Profile Updated Successfully." }); } Close(); } else { errorTextBlock.Text = "Connection Error"; } if (File.Exists("Temporary/" + SettingsManager.Username + ".jpg")) { File.Delete("Temporary/" + SettingsManager.Username + ".jpg"); } } else { errorTextBlock.Text = response.Reason; } } progressRing.isActive = false; }