Esempio n. 1
0
        public List <string> GetFilteredPosts(DateTime i_DateStartTime, DateTime i_DateEndTime, IPostSorter i_Strategy, string i_FilterBySTR)
        {
            m_UserFilteredPost.Clear();
            filterPostByRangeOfDate(i_DateStartTime, i_DateEndTime);
            filterPostByASentence(i_FilterBySTR);
            i_Strategy.SortPosts(m_UserFilteredPost);
            List <string> userContentPosts = getUserContentPosts();

            return(userContentPosts);
        }
 private void setRequierements(DateTime i_DateStartTime, DateTime i_DateEndTime, IPostSorter i_Strategy, string i_FilterBySTR)
 {
     m_LastUserRequirements = Tuple.Create(i_DateStartTime, i_DateEndTime, i_Strategy, i_FilterBySTR);
 }
        public List <string> GetFilteredPosts(DateTime i_DateStartTime, DateTime i_DateEndTime, IPostSorter i_Strategy, string i_FilterBySTR)
        {
            if (m_PostsFinder == null)
            {
                m_PostsFinder = new PostFinder(m_NewLoggedInUser.User);
                setRequierements(i_DateStartTime, i_DateEndTime, i_Strategy, i_FilterBySTR);
            }

            bool isOldPostsCache            = checkIfItsOldCachePosts(i_DateEndTime);
            bool wasUserRequirementsChanged = checkIfRequirementsHaveChanged(i_DateStartTime, i_DateEndTime, i_Strategy, i_FilterBySTR);

            if (isOldPostsCache || wasUserRequirementsChanged)
            {
                setRequierements(i_DateStartTime, i_DateEndTime, i_Strategy, i_FilterBySTR);
                m_UserFilteredPost = m_PostsFinder.GetFilteredPosts(i_DateStartTime, i_DateEndTime, i_Strategy, i_FilterBySTR);
            }

            return(m_UserFilteredPost);
        }
 private bool checkIfRequirementsHaveChanged(DateTime i_DateStartTime, DateTime i_DateEndTime, IPostSorter i_Strategy, string i_FilterBySTR)
 {
     return
         (m_LastUserRequirements.Item1 != i_DateStartTime ||
          m_LastUserRequirements.Item2 != i_DateEndTime ||
          m_LastUserRequirements.Item3 != i_Strategy ||
          m_LastUserRequirements.Item4 != i_FilterBySTR);
 }
 public List <string> GetFilteredPosts(string i_FilterByASentence, DateTime i_Start, DateTime i_End, IPostSorter i_Strategy)
 {
     return(m_PostFinder.GetFilteredPosts(i_Start, i_End, i_Strategy, i_FilterByASentence));
 }