Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        public CommentViewModel(PostModel postSelected)
        {
            commentDatabase = App.Container.Resolve <CommentDatabase>();
            commentApi      = App.Container.Resolve <CommentApi>();

            PostVM = postSelected;

            GetDatabase();
        }
Esempio n. 3
0
        /// <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);   //Подключение
        }
Esempio n. 4
0
        /// <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();
        }
Esempio n. 5
0
 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");
         }
     }
 }
Esempio n. 6
0
        /// <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);
            }
        }
Esempio n. 7
0
 /// <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;
 }
Esempio n. 8
0
 /// <summary>
 /// Создает новый экземпляр фильтра комментариев
 /// </summary>
 /// <param name="db">база данных с добавленными пользователями</param>
 public CommentPrefilter(CommentDatabase db)
 {
     this.db = db;
     words   = db.GetAdvKeywords();
 }
Esempio n. 9
0
 private void initComment()
 {
     listComment = CommentDatabase.GetAllCommentBookDorm(owner.Email, dorm.Id);
     listViewComment.ItemsSource = listComment;
 }