private void btnDelete_Click(object sender, RoutedEventArgs e) { Button button = sender as Button; Dorm dorm = button.DataContext as Dorm; MessageBoxResult result = MessageBox.Show("Would you like to delete this dorm?", "Notify", MessageBoxButton.YesNo); switch (result) { case MessageBoxResult.Yes: if (DormDatabase.Delete(dorm.Id)) { BookDatabase.DeleteByIdDorm(dorm.Id); OwnerDormDatabase.DeleteByDormId(dorm.Id); LikeDatabase.DeleteById(dorm.Id); CommentDatabase.DeleteByIdDorm(dorm.Id); MainControl mainControl = (MainControl)Window.GetWindow(this); mainControl.MainHomeLayout.Children.Clear(); mainControl.MainHomeLayout.VerticalAlignment = VerticalAlignment.Top; mainControl.MainHomeLayout.HorizontalAlignment = HorizontalAlignment.Left; mainControl.MainHomeLayout.Width = 1150; mainControl.MainHomeLayout.Height = 720; mainControl.MainHomeLayout.Children.Add(new MyDorm(mainControl.user)); } break; } }
public CommentViewModel(PostModel postSelected) { commentDatabase = App.Container.Resolve <CommentDatabase>(); commentApi = App.Container.Resolve <CommentApi>(); PostVM = postSelected; GetDatabase(); }
/// <summary> /// Конструктор с настройками /// </summary> /// <param name="options"></param> /// <param name="db"></param> public VK(Options options, CommentDatabase db) { this.options = options; this.db = db; api = new VkApi(); db.LoadAdvertKw(options.AdvertKeywordsFileName); prefilter = new CommentPrefilter(db); options.AccessToken = GetToken(options.ApplicationID); ApiAuthParams par = new ApiAuthParams { AccessToken = options.AccessToken }; api.Authorize(par); //Подключение }
/// <summary> /// конструктор, настройка внешнего вида /// </summary> public FormMain() { InitializeComponent(); options = new Options(); foreach (string link in options.Topics) { ListViewItem item = new ListViewItem(link); listViewTopics.Items.Add(item); } db = new CommentDatabase(options); vk = new VK(options, db); labelTotalComments.Visible = true; labelTotalUsers.Visible = true; labelTotalComments.Text = "Количество комментариев в базе: " + db.TotalComments.ToString(); labelTotalUsers.Text = "Количество пользователей в базе: " + db.TotalUsers.ToString(); }
private void btnComment_Click(object sender, RoutedEventArgs e) { if (user.Email.Equals(owner.Email)) { Helpers.MakeErrorMessage(Window.GetWindow(this), "You are owner so can't rating", "Error"); } else { if (BookDatabase.GetEmailBookDorm(owner.Email, dorm.Id).Equals(user.Email)) { ValueRating = ratingBar.Value; Comment = tbComment.Text.Trim(); if (ValueRating == 0) { Helpers.MakeErrorMessage(Window.GetWindow(this), "You must rating dorm ", "Error"); } else { if (CommentDatabase.Insert(owner.Email, dorm.Id, user.Email, Comment, ValueRating)) { Helpers.MakeConfirmMessage(Window.GetWindow(this), "Thanks you bro", "Notify"); if (CommentDatabase.GetAvgRating(owner.Email, dorm.Id) != -1) { DormDatabase.UpdateRating(dorm.Id, CommentDatabase.GetAvgRating(owner.Email, dorm.Id)); dorm.Quality = (dorm.Quality + ValueRating) / DormDatabase.GetCount(dorm.Id); MainControl mainControl = (MainControl)Window.GetWindow(this); mainControl.MainHomeLayout.Children.Clear(); mainControl.MainHomeLayout.VerticalAlignment = VerticalAlignment.Top; mainControl.MainHomeLayout.HorizontalAlignment = HorizontalAlignment.Left; mainControl.MainHomeLayout.Width = 1150; mainControl.MainHomeLayout.Height = 720; mainControl.MainHomeLayout.Children.Add(new ShowDorm(dorm, user, 1)); } } else { Helpers.MakeErrorMessage(Window.GetWindow(this), "You already rating this dorm", "Error"); } } } else { Helpers.MakeErrorMessage(Window.GetWindow(this), "You can't comment because you have never book this dorm", "Error"); } } }
/// <summary> /// Обновление БД комментариев /// </summary> /// <param name="database"></param> /// <param name="options"></param> public void UpdateDB(CommentDatabase database, Options options, Label labelProgress) { /* * 1. Добавить недостающие обсуждения * 2. Пройтись по всем обсуждениям и добавить недостающие комментарии * а. проверить последний добавленный комментарий (по дате написания комментария) (MAX date WHERE topic_id == t.TopicID) * б. загрузить с сайта все коменты этого обсуждения, начиная с последнего добавленного (по частям) * в. записать всё в БД */ List <Topic> topics = database.ParseTopicLinks(options.Topics); database.LoadTopics(topics); try { for (int i = 0; i < topics.Count; i++) { Topic t = topics[i]; //Текущее обсуждение Comment last_comm = database.GetLastComment(t); CommentsResponse response = GetCommentsFrom(t, last_comm, (perc) => { string status = "Обработка обсуждения " + (i + 1) + "/" + topics.Count + ", завершено " + perc.ToString("0.0") + "%"; labelProgress.Text = status; Application.DoEvents(); }); labelProgress.Text = "Обработка обсуждения " + (i + 1) + "/" + topics.Count + ", обработка результатов"; Application.DoEvents(); database.AddUsers(response.Users); List <Comment> filtered_comments = prefilter.Prefilter(response.Comments); database.AddComments(filtered_comments); } } catch (Exception e) { MessageBox.Show("Возникла ошибка во время загрузки комментариев", "Загрузка комментариев", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } }
/// <summary> /// создает окно вывода списка комментариев /// </summary> /// <param name="comments">список комментариев для вывода</param> public FormShowComments(List <Comment> comments, CommentDatabase db) : this() { this.comments = comments != null ? comments : new List <Comment>(); this.db = db; }
/// <summary> /// Создает новый экземпляр фильтра комментариев /// </summary> /// <param name="db">база данных с добавленными пользователями</param> public CommentPrefilter(CommentDatabase db) { this.db = db; words = db.GetAdvKeywords(); }
private void initComment() { listComment = CommentDatabase.GetAllCommentBookDorm(owner.Email, dorm.Id); listViewComment.ItemsSource = listComment; }