示例#1
0
 public static SortedValueDictionary <object, int> CreatePhotoTimeAnalysisDictionary(
     User i_AnalysisUser,
     eTimeFrame i_TimeFrame)
 {
     return(sr_BasicFactory.CreateTimeAnalysisDictionary(
                i_AnalysisUser,
                i_TimeFrame,
                i_EType => Post.eType.photo == i_EType));
 }
示例#2
0
        public Analysis CreateAnalysis(
            eAnalysisDataBasis i_AnalysisDataBasis,
            User i_User,
            eTimeFrame i_TimeFrame)
        {
            TimeAnalysis o_TimeAnalysis = new TimeAnalysis();

            o_TimeAnalysis.CreateAnalysisByTimeFrame(i_User, i_TimeFrame);
            return(o_TimeAnalysis);
        }
示例#3
0
        public Analysis CreateAnalysisUsingFactory(eTimeFrame i_TimeFrame, eAnalysisDataBasis i_AnalysisDataBasis)
        {
            Analysis analysis;

            lock (s_AnalysisFactoryLock)
            {
                analysis = m_AnalysisFactory.CreateAnalysis(i_AnalysisDataBasis, LoggedInUser, i_TimeFrame);
            }

            return(analysis);
        }
示例#4
0
 private void comboBoxTimeFrame_SelectedIndexChanged(object sender, EventArgs e)
 {
     try
     {
         eTimeFrame timeFrameParsed = (eTimeFrame)Enum.Parse(typeof(eTimeFrame), (sender as ComboBox).SelectedItem.ToString());
         testerlabel.Text = timeFrameParsed.ToString();
     }
     catch (Exception)
     {
         throw new Exception(string.Format("Error: parsing to {0} failed", typeof(eTimeFrame)));
     }
 }
示例#5
0
        public override IAnalysis CreateAnalysisByTimeFrame(
            User i_AnalysisUser,
            eTimeFrame i_TimeFrame = eTimeFrame.Month)
        {
            PhotoDictionary             = PhotoDictionaryFactory.CreatePhotoTimeAnalysisDictionary(i_AnalysisUser, i_TimeFrame);
            VideoDictionary             = VideoDictionaryFactory.CreateVideoTimeAnalysisDictionary(i_AnalysisUser, i_TimeFrame);
            StatusDictionary            = StatusDictionaryFactory.CreateStatusTimeAnalysisDictionary(i_AnalysisUser, i_TimeFrame);
            CombinedDataBasisDictionary =
                CombinedDictionaryFactory.CreateCombinedTimeAnalysisDictionary(i_AnalysisUser, i_TimeFrame);

            return(this);
        }
示例#6
0
        private BoostEngine()
        {
            try
            {
                m_BoostSettings            = BoostSettings.LoadAppSettingsFromFile();
                m_CurrentAnalysisTimeFrame = m_BoostSettings.DefaultAnalysisTimeFrame;
                m_CurrentAnalysisDataBasis = m_BoostSettings.DefaultAnalysisDataBasis;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }

            FriendChange = 0;
        }
示例#7
0
        internal SortedValueDictionary <object, int> CreateBiggestFanAnalysisDictionary(
            User i_AnalysisUser,
            eTimeFrame i_TimeFrame,
            Func <Post.eType?, bool> i_Tester)
        {
            SortedValueDictionary <object, int> o_DictionaryToAnalysis =
                new SortedValueDictionary <object, int>(new Dictionary <object, int>());

            try
            {
                foreach (Post postToAnalysis in i_AnalysisUser.Posts)
                {
                    if (i_TimeFrame.GetHashCode() < DateTime.Now.Subtract(postToAnalysis.CreatedTime.Value).Days)
                    {
                        break;
                    }

                    if (i_Tester.Invoke(postToAnalysis.Type))
                    {
                        continue;
                    }

                    const int k_LikeByUser = 1;

                    foreach (User likedBy in postToAnalysis.LikedBy)
                    {
                        if (o_DictionaryToAnalysis.ContainsKey(likedBy))
                        {
                            o_DictionaryToAnalysis[likedBy] += k_LikeByUser;
                        }
                        else
                        {
                            o_DictionaryToAnalysis.Add(likedBy, k_LikeByUser);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception("Could not get posts", e);
            }

            return(o_DictionaryToAnalysis);
        }
示例#8
0
        internal SortedValueDictionary <object, int> CreateTimeAnalysisDictionary(
            User i_AnalysisUser,
            eTimeFrame i_TimeFrame,
            Func <Post.eType?, bool> i_Tester)
        {
            SortedValueDictionary <object, int> o_DictionaryToAnalysis =
                new SortedValueDictionary <object, int>(new Dictionary <object, int>());
            const int k_ZeroLikesYet = 0;

            for (int days = 0; days < DayAndHour.k_NumOfWeekDays; days++)
            {
                for (int hour = 0; hour < DayAndHour.k_NumOfHours; hour++)
                {
                    DayAndHour tempDayAndHour = new DayAndHour(DayOfWeek.Sunday + days, TimeSpan.FromHours(hour));
                    o_DictionaryToAnalysis.Add(tempDayAndHour, k_ZeroLikesYet);
                }
            }

            try
            {
                foreach (Post postToAnalysis in i_AnalysisUser.Posts)
                {
                    if (i_TimeFrame.GetHashCode() < DateTime.Now.Subtract(postToAnalysis.CreatedTime.Value).Days)
                    {
                        break;
                    }

                    if (i_Tester.Invoke(postToAnalysis.Type))
                    {
                        o_DictionaryToAnalysis[new DayAndHour(
                                                   postToAnalysis.CreatedTime.Value.DayOfWeek,
                                                   TimeSpan.FromHours(postToAnalysis.CreatedTime.Value.Hour))] += postToAnalysis.LikedBy.Count;
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception("Could not get posts", e);
            }

            return(o_DictionaryToAnalysis);
        }
示例#9
0
        public Analysis AnalysisCreator(
            eAnalysisDataBasis i_AnalysisDataBasis,
            User i_User,
            eTimeFrame i_TimeFrame,
            Type i_AnalysisToCreate)
        {
            Analysis selectedAnalysis = (Analysis)i_AnalysisToCreate.GetConstructors()[0].Invoke(null);
            string   methodName       = "CreateAnalysisByTimeFrame";

            foreach (MethodInfo method in i_AnalysisToCreate.GetMethods())
            {
                if (method.Name == methodName)
                {
                    selectedAnalysis = (Analysis)method.Invoke(
                        selectedAnalysis,
                        new object[] { i_User, i_TimeFrame });
                    break;
                }
            }

            return(selectedAnalysis);
        }
示例#10
0
        private EventCustomedItem createEventCustomedItem(Event i_CriterionizedEvent, User i_CriterionizedFriend, eTimeFrame i_CurrentEventTimeFrame, string i_FriendEventAttendence)
        {
            EventCustomedItem eventCustomedItem = new EventCustomedItem();
            const string      Format            = "{1} {2}";

            eventCustomedItem.PictureBoxFriendProfile.LoadAsync(i_CriterionizedFriend.PictureNormalURL);
            eventCustomedItem.LabelFriendName.Text = string.Format(Format, i_CriterionizedFriend.FirstName, i_CriterionizedFriend.LastName);
            eventCustomedItem.LabelAttendence.Text = i_FriendEventAttendence;

            eventCustomedItem.LabelPlaceName.Text = i_CriterionizedEvent.Place.ToString();
            DateTime currentEventStartTime = i_CriterionizedEvent.StartTime.Value,
                     currentEventEndTime   = i_CriterionizedEvent.EndTime.Value;

            eventCustomedItem.LabelDurationTime.Text = string.Format("{0} at {1} - {2} at {3}",
                                                                     currentEventStartTime.ToString("dd/MM"),
                                                                     currentEventStartTime.ToString("hh:mm tt"),
                                                                     currentEventEndTime.ToString("hh:mm tt"),
                                                                     currentEventEndTime.ToString("dd/MM"));
            eventCustomedItem.LabelVenueName.Text          = i_CriterionizedEvent.Venue.ToString();
            eventCustomedItem.LabelTimeFrame.Text          = i_CurrentEventTimeFrame.ToString();
            eventCustomedItem.LabelDescriptionContent.Text = i_CriterionizedEvent.Description;

            return(eventCustomedItem);
        }
 public static SortedValueDictionary <object, int> CreateCombinedBiggestFansAnalysisDictionary(
     User i_AnalysisUser,
     eTimeFrame i_TimeFrame)
 {
     return(sr_BasicFactory.CreateBiggestFanAnalysisDictionary(i_AnalysisUser, i_TimeFrame, i_EType => true));
 }
示例#12
0
 public static SortedValueDictionary <object, int> CreateVideoBiggestFansAnalysisDictionary(
     User i_AnalysisUser,
     eTimeFrame i_TimeFrame)
 {
     return(sr_BasicFactory.CreateBiggestFanAnalysisDictionary(i_AnalysisUser, i_TimeFrame, i_EType => Post.eType.video == i_EType));
 }
示例#13
0
 public abstract IAnalysis CreateAnalysisByTimeFrame(
     User i_AnalysisUser,
     eTimeFrame i_TimeFrame = eTimeFrame.Month);