// GET: Feeds/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var feed = await _context.Feeds
                       .Include("FeedTags")
                       .Include("FeedCategories")
                       .Include("FeedSources")
                       .FirstAsync(f => f.ID == id);

            if (feed == null)
            {
                return(NotFound());
            }
            else
            {
                feed.Modified = DateTime.UtcNow;
                var model = new FeedView()
                {
                    Feed          = feed,
                    AllTags       = _context.Tags.ToList(),
                    AllCategories = _context.Categories.ToList(),
                    AllSources    = _context.Sources.ToList()
                };

                return(View(model));
            }
        }
 public FeedViewModel(FeedView feedView, vwUser user)
 {
     this.feedView   = feedView;
     User            = user;
     FriendsPostList = friendsPost.GetFriendsPost(User);
     OtherPostList   = friendsPost.GetOtherUsersPost(User);
 }
Exemple #3
0
        private void bindOneFeed(IBlock block, FeedView feed)
        {
            block.Set("feed.Id", feed.Id);
            block.Set("feed.DataType", feed.DataType);
            block.Set("feed.UserFace", feed.Creator.PicSmall);
            block.Set("feed.UserLink", toUser(feed.Creator));

            String creatorInfo = getCreatorInfos(feed.CreatorList);
            String feedTitle   = feedService.GetHtmlValue(feed.TitleTemplate, feed.TitleData, creatorInfo);

            block.Set("feed.Title", feedTitle);

            String commentCmd = getCommentCmd(feed);

            block.Set("feed.CommentCmd", commentCmd);

            String feedBody = feedService.GetHtmlValue(feed.BodyTemplate, feed.BodyData, creatorInfo);

            block.Set("feed.Body", feedBody);
            block.Set("feed.BodyGeneral", getComment(feed.BodyGeneral));

            String created = "";

            if (cvt.IsDayEqual(feed.Created, DateTime.Now))
            {
                created = cvt.ToTimeString(feed.Created);
            }
            block.Set("feed.Created", created);
        }
Exemple #4
0
        private void ItemCollected(object sender, FeedCollector <FeedView> .SyndicationItemEventArgs e)
        {
            try
            {
                FeedView feedView = e.Source;

                string[] indexKeys;
                FeedItem item = CreateFeedItem(e.SyndicationItem, out indexKeys);

                //Include feed title in search terms
                var set = new HashSet <string>(indexKeys, StringComparer.InvariantCultureIgnoreCase);
                set.UnionWith(Regex.Split(feedView.Title, @"\W+"));
                indexKeys = set.ToArray();

                if (!feedView.ItemUrls.Contains(item.Url))
                {
                    Console.WriteLine(" + " + item.Title);
                    var command = new AddFeedItemCommand(item, indexKeys, feedView.Id, DateTime.Now);
                    _geekStreamDb.Execute(command);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("\nSkipping item, error:" + ex.Message);
            }
        }
        public List <FeedClimbingPost> GetPostsBySettings(FeedSettings settings, FeedView order, int number)
        {
            if (order == FeedView.Movies)
            {
                return(new List <FeedClimbingPost>());
            }

            if (settings.CurrentChannelType == (byte)FeedChannel.Area)
            {
                return(new FeedClimbingPostDA().GetLatestAreaPosts(number, settings.AreaID.Value, settings.TagID, order));
            }
            else if (settings.CurrentChannelType == (byte)FeedChannel.Place)
            {
                return(new FeedClimbingPostDA().GetLatestPlacePosts(number, settings.PlaceID.Value, settings.TagID, order));
            }
            else if (settings.CurrentChannelType == (byte)FeedChannel.Climbers)
            {
                List <Guid> userIDsBeingWatched = (from c in settings.WatchedClimbers select c.WatchedUserID).ToList();
                return(new FeedClimbingPostDA().GetLatestWatchedClimberPosts(number, userIDsBeingWatched, settings.TagID, order));
            }
            else
            {
                return(new FeedClimbingPostDA().GetLatestPosts(number, settings.TagID, order));
            }
        }
        public ActionResult RenderFeed(byte channel, byte view, string area, string place, string tag)
        {
            try
            {
                int  temp;
                byte?tagID = null; if (int.TryParse(tag, out temp))
                {
                    tagID = (byte)temp;
                }
                int?areaID = null; if (int.TryParse(area, out temp))
                {
                    areaID = temp;
                }
                int?placeID = null; if (int.TryParse(place, out temp))
                {
                    placeID = temp;
                }

                FeedView    feedView    = (FeedView)view;
                FeedChannel feedChannel = (FeedChannel)channel;

                return(View("FeedItemList",
                            GetFeedItemsForViewSettings(feedChannel, feedView, areaID, placeID, tagID)));
            }
            catch (Exception ex)
            {
                CFLogger.RecordException(ex);
                SetPageMetaData();
                return(View("UrlGone"));
            }
        }
Exemple #7
0
        private void feedBtn_Click(object sender, EventArgs e)
        {
            this.Hide();
            Form next = new FeedView();

            next.ShowDialog();
            this.Close();
        }
 private void InitMainPanel()
 {
     m_Feed          = new FeedView();
     m_Feed.AutoSize = true;
     m_Feed.Dock     = DockStyle.Top;
     m_Feed.ShowUser(m_CurrentUser);
     m_Feed.UserClicked += ShowUser;
     ReplaceComponentInMainPanel(m_Feed);
 }
Exemple #9
0
 // Use this for initialization
 void Start()
 {
     scrollRect      = GetComponent <ScrollRect>();
     feedView        = eventList.GetComponent <FeedView>();
     pullTriggerText = pullTriggerView.transform.Find("Title").GetComponent <Text>();
     screenRect      = new Rect(0f, 0f,
                                Screen.width + 1,
                                Screen.height - Screen.height * pullTriggerMargin);
 }
Exemple #10
0
        private void AddUrl(string url)
        {
            var      query = new GetFeedByUrl(url);
            FeedView feed  = _geekStreamDb.Execute(query);

            if (feed == null)
            {
                AddFeed(url);
            }
            else
            {
                Console.WriteLine("[=] " + url);
            }
        }
        public List <FeedClimbingPost> GetLatestWatchedClimberPosts(int number, List <Guid> userIDs,
                                                                    short?tagID, FeedView view)
        {
            if (userIDs.Count == 0)
            {
                return(new List <FeedClimbingPost>());
            }
            else
            {
                var query = from c in EntityTable where userIDs.Contains(c.UserID) select c;

                return(FilterAndSortQuery(query, number, tagID, view));
            }
        }
        private List <FeedClimbingPost> FilterAndSortQuery(IQueryable <LinqToSql_FeedClimbingPost> query,
                                                           int number, short?tagID, FeedView view)
        {
            if (tagID.HasValue)
            {
                query = (from c in query where c.TagID == tagID.Value select c);
            }
            if (view == FeedView.Posted)
            {
                query = (from c in query orderby c.PostedDateTime descending select c);
            }
            else if (view == FeedView.Climbing)
            {
                query = (from c in query where c.ClimbingDateTime > DateTime.Now orderby c.ClimbingDateTime ascending select c);
            }

            return(MapList(query.Take(number).ToList()));
        }
        // GET: Feeds/Create
        public IActionResult Create()
        {
            var model = new FeedView()
            {
                Feed = new Feed()
                {
                    PostedOn       = DateTime.UtcNow,
                    Modified       = DateTime.UtcNow,
                    FeedTags       = new List <FeedTag>(),
                    FeedCategories = new List <FeedCategory>(),
                    FeedSources    = new List <FeedSource>()
                },
                AllTags       = _context.Tags.ToList(),
                AllCategories = _context.Categories.ToList(),
                AllSources    = _context.Sources.ToList()
            };

            return(View(model));
        }
Exemple #14
0
        private String getCommentCmd(FeedView feed)
        {
            return("");
            //if (!feed.CanComment) return "";

            //ControllerBase controller = ControllerFactory.FindFeedCommentsController( feed.DataType, ctx );
            //if (controller == null) return "";

            //String commentsLink = "";
            //if (feed.DataType.Equals( typeof( Share ).FullName )) {
            //    commentsLink = Link.To( ctx.owner.obj, controller.GetType(), "Show", feed.DataId );
            //}
            //else {
            //    commentsLink = Link.To( feed.Creator, controller.GetType(), "Show", feed.DataId );
            //}
            //commentsLink += "?parentPanelId=" + feed.Id;

            //String lbl = lang( "comment" );
            //String c = feed.Replies > 0 ? lbl + "(" + feed.Replies + ")" : lbl;
            //return string.Format( "<span class=\"frmUpdate link\" href=\"{0}\" loadTo=\"commentList{1}\" txtHidden=\"{2}\">{3}</span>", commentsLink, feed.Id, lang( "hideComment" ), c );
        }
Exemple #15
0
        public async void OpenPost()
        {
            if (SelectedPost == null)
            {
                return;
            }
            else if (await Utilities.OpenFeedItem(SelectedPost, api, window))
            {
                if (SelectedPost is ViewModels.Notification)
                {
                    ViewModels.Notification notif = SelectedPost as ViewModels.Notification;
                    foreach (ViewModels.Notification n in feeds)
                    {
                        if (n.RantId == notif.RantId)
                        {
                            n.MarkRead();
                        }
                    }

                    UpdateNotifications(new NotificationsChecker.UpdateArgs(feeds.Where(x => !x.Read).Count(), feeds.Count));
                    FeedView.Refresh();
                }
            }
            else if (SelectedPost is Draft)
            {
                var dlg = EditPostWindow.CreateForRant(SelectedPost as Draft);
                dlg.Owner = window;

                dlg.ShowDialog();

                if (!dlg.Cancelled)
                {
                    UpdateDrafts(AppManager.Instance.DB.GetNumberOfDrafts());
                    LoadDrafts();
                }
            }
        }
        private List <IFeedItem> GetFeedItemsForViewSettings(FeedChannel channel, FeedView view,
                                                             int?areaID, int?placeID, byte?tagID)
        {
            int numberOfPostsToDisplay = 40;
            int displayClimbingCount = 0, displayPartnerCallCount = 0, displayMovieCount = 0;

            FeedSettings settings = controller.UpdateFeedSettingsIfNecessary(UserID, channel, areaID, placeID);

            settings.TagID = tagID; // decided not to persist the tag in the db at this point in time.

            //-- Need to do on client side
            //if (Settings.HasPlace) { CurrentPlaceLkB.Text = CurrentFeedPlace.ShortName.Take(12); }
            //if (Settings.HasArea) { CurrentAreaLkB.Text = CurrentFeedArea.Name.Take(12); }
            //if (Settings.TagID.HasValue) { CurrentTagLB.Text = GetTagsString(Settings.TagID.Value); }

            if (view == FeedView.Posted)
            {
                //SelectLkB(PLkB);

                if (settings.TagID.HasValue)
                {
                    displayClimbingCount = numberOfPostsToDisplay;
                }
                else
                {
                    displayClimbingCount    = 12;
                    displayPartnerCallCount = 5;
                    displayMovieCount       = 3;
                }
            }
            else if (view == FeedView.Movies)
            {
                //SelectLkB(MLkB);
                settings.TagID    = null;
                displayMovieCount = 15;
            }
            else if (view == FeedView.Climbing)
            {
                //SelectLkB(DCLkb);
                displayClimbingCount = numberOfPostsToDisplay;
            }
            else if (view == FeedView.PartnerCalls)
            {
                //SelectLkB(PCLkB);
                settings.TagID          = null;
                displayPartnerCallCount = 17;
            }

            if (channel == FeedChannel.All)
            {
                //SelectLkB(AllLkB);
            }
            else if (channel == FeedChannel.Area)
            {
                //SelectLkB(CurrentAreaLkB);
                //FeedFocus = CurrentFeedArea.Name;
            }
            else if (channel == FeedChannel.Place)
            {
                //SelectLkB(CurrentPlaceLkB);
                //FeedFocus = CurrentFeedPlace.Name;
            }
            //else if (channel == FeedChannel.Climbers)
            //{
            //SelectLkB(ClLkB);
            //    settings.WatchedClimbers = controller.GetClimbersUserIsWatching(UserID);
            //FeedFocus = "climbers you're watching";
            //}

            List <IFeedItem>           FeedItems        = new List <IFeedItem>();
            List <FeedMoviePost>       MoviePosts       = new List <FeedMoviePost>();
            List <FeedPartnerCallPost> PartnerCallPosts = new List <FeedPartnerCallPost>();
            List <FeedClimbingPost>    ClimbingPosts    = new List <FeedClimbingPost>();

            if (displayClimbingCount > 0)
            {
                ClimbingPosts = controller.GetPostsBySettings(settings, view, numberOfPostsToDisplay);
            }

            //-- Fill the feed if we don't have enough posts
            if (view == FeedView.Posted && !settings.TagID.HasValue)
            {
                if (ClimbingPosts.Count < numberOfPostsToDisplay)
                {
                    byte numberToFill = (byte)(numberOfPostsToDisplay - ClimbingPosts.Count);
                    displayMovieCount++;
                    displayPartnerCallCount = (byte)(numberToFill - 1);
                }
            }

            if (displayMovieCount > 0 && !settings.TagID.HasValue)
            {
                MoviePosts = controller.GetFeedMoviesBySettings(settings, displayMovieCount);
            }

            if (displayPartnerCallCount > 0 &&
                (!settings.TagID.HasValue || settings.TagID.Value != 1) &&
                channel != FeedChannel.Climbers)
            {
                PartnerCallPosts = controller.GetFeedPartnerCallPostsBySettings(settings, displayPartnerCallCount);
            }

            foreach (FeedClimbingPost cp in ClimbingPosts)
            {
                FeedItems.Add(cp);
            }
            foreach (FeedMoviePost mp in MoviePosts)
            {
                FeedItems.Add(mp);
            }
            foreach (FeedPartnerCallPost pcp in PartnerCallPosts)
            {
                FeedItems.Add(pcp);
            }
            if (view == FeedView.Posted)
            {
                FeedItems = (from c in FeedItems orderby c.PostedDateTime descending select c).ToList();
            }
            return(FeedItems);
        }
Exemple #17
0
        static void Main(string[] args)
        {
            DummyData myDummyData = new DummyData();

            myDummyData.SeedData();

            _userService = new UserService();
            _users       = _userService.Get();

            _postService = new PostService();
            _posts       = _postService.Get();

            Console.Write("Please enter your name to log in: ");
            string loggedInUserName = Console.ReadLine();
            var    loggedInUser     = _userService.GetUserByName(loggedInUserName);

            if (loggedInUser == null)
            {
                Console.WriteLine("No existing users goes by that name.");
            }
            else
            {
                Console.WriteLine("");
                Console.WriteLine("---------------------------------------------------------------------------------------------------------");
                Console.WriteLine("");
                Console.WriteLine("About - Page");
                Console.WriteLine("");

                Console.WriteLine("Name: " + loggedInUser.Name + ", Gender: " + loggedInUser.Gender + ", Age: " + loggedInUser.Age);
                Console.WriteLine("  * Follows:");

                foreach (var fu in loggedInUser.FollowedUsers)
                {
                    Console.WriteLine("     - " + fu.Name);
                }
                Console.WriteLine("  * Blocks:");
                foreach (var bu in loggedInUser.BlockedUsers)
                {
                    Console.WriteLine("     - " + bu.Name);
                }

                Console.WriteLine("");

                Console.WriteLine("  * Circles: ");
                foreach (var cl in loggedInUser.Circles)
                {
                    Console.WriteLine("     - " + cl.CircleName);
                }

                Console.WriteLine("");

                while (true)
                {
                    Console.WriteLine("Menu - Page");
                    Console.WriteLine("");

                    Console.WriteLine("   - Show user-feed   (1)");
                    Console.WriteLine("   - Show user-wall   (2)");
                    Console.WriteLine("   - Make post        (3)");
                    Console.WriteLine("   - Make Comment     (4)");
                    Console.WriteLine("   - Delete all posts (5)");
                    Console.WriteLine("");

                    Console.Write("Please 1, 2, 3, 4 or 5 to make use of TheSocialNetworks functionallities: ");
                    string menuNavigation = Console.ReadLine();


                    Console.WriteLine("");
                    Console.WriteLine("---------------------------------------------------------------------------------------------------------");
                    Console.WriteLine("");

                    FeedView myFeedView = new FeedView();
                    WallView myWallView = new WallView();

                    switch (menuNavigation)
                    {
                    case "1":
                        Console.Clear();
                        Console.WriteLine("user-feed - Page");
                        myFeedView.UserFeed(loggedInUser);
                        break;

                    case "2":
                        Console.Clear();
                        Console.Write("Show wall for: ");

                        string showUserName = Console.ReadLine();
                        var    showUser     = _userService.GetUserByName(showUserName);

                        if (showUser == null)
                        {
                            Console.WriteLine("No existing users goes by that name.");
                        }
                        else
                        {
                            myWallView.wall(showUser, loggedInUser);
                        }

                        break;

                    case "3":
                        Console.Clear();
                        Console.WriteLine("Make post - Page");

                        Console.Write("Content of post: ");
                        string myContent = Console.ReadLine();
                        Post   post      = new Post
                        {
                            Author     = loggedInUser,
                            Content    = myContent,
                            PublicPost = true,
                            Published  = DateTime.Now,
                            Circles    = new List <Circle>(),
                            Comments   = new List <Comment>()
                        };
                        _postService.Create(post);

                        break;

                    case "4":
                        Console.Clear();

                        Console.Write("Write the id of the post you would like to comment: ");
                        string id = Console.ReadLine();

                        Console.Write("Content of comment: ");
                        string myCommentContent = Console.ReadLine();

                        Comment comment = new Comment
                        {
                            Author  = loggedInUser,
                            Content = myCommentContent,
                            Created = DateTime.Now
                        };

                        Post tempPost = _postService.GetPostById(id);
                        tempPost.Comments.Add(comment);
                        _postService.Update(tempPost.Id, tempPost);

                        break;

                    case "5":
                        Console.Clear();
                        Console.WriteLine("Are you sure you want to delete all posts? If so, press y");
                        string awnser = Console.ReadLine();
                        if (awnser == "y")
                        {
                            _postService.RemoveAll();
                            Console.WriteLine("All posts have been removed");
                        }
                        break;

                    default:
                        Console.Write("Please 1, 2, 3, 4 or 5 to make use of TheSocialNetworks functionallities: ");
                        break;
                    }
                }
            }
        }
Exemple #18
0
        public ActionResult Filter(String begin, String eind, String soort, String UserId, String PostType, String PostCategory, String Department, String Program)
        {
            String          currentuserId = System.Web.HttpContext.Current.User.Identity.GetUserId();
            ApplicationUser currentUser   = db.Users.Find(currentuserId);

            if (currentUser == null)
            {
                return(RedirectToAction("Login", "Account"));
            }
            Department owndepartment = db.Departments.Find(currentUser.DepartmentId);

            if (owndepartment == null)
            {
                return(HttpNotFound());
            }
            Department department = db.Departments.Find(Int32.Parse(Department));

            if (department == null)
            {
                return(HttpNotFound());
            }
            Program program = db.Programs.Find(Int32.Parse(Program));

            if (program == null)
            {
                return(HttpNotFound());
            }

            DateTime     beginDatefilter = new DateTime();
            DateTime     eindDatefilter  = new DateTime();
            PostType     typefilter      = EhbEvo.Models.PostType.Idee;
            PostCategory categoryfilter  = EhbEvo.Models.PostCategory.Onderwijs;


            var feedcontext = new FeedView();

            feedcontext.Users         = db.Users.OrderBy(u => u.UserName);
            feedcontext.Departementen = db.Departments.OrderBy(d => d.DepartmentName);

            bool isBegin = (begin.Length > 1);

            if (isBegin)
            {
                beginDatefilter = DateTime.Parse(begin);
            }
            ;
            bool isEind = (eind.Length > 1);

            if (isEind)
            {
                eindDatefilter = DateTime.Parse(eind);
            }
            ;
            bool isSoort    = !(soort.Equals("-1"));
            bool isUser     = !(UserId.Equals("-1"));
            bool isPostType = !(PostType.Equals("-1"));

            if (isPostType)
            {
                typefilter = (PostType)Enum.Parse(typeof(PostType), PostType);
            }
            ;
            bool isPostCategory = !(PostCategory.Equals("-1"));

            if (isPostCategory)
            {
                categoryfilter = (PostCategory)Enum.Parse(typeof(PostCategory), PostCategory);
            }
            ;
            bool isDepartment = !(department.DepartmentName.Equals("* Meerdere Departmenten *"));
            bool isProgram    = !(program.ProgramName.Equals("* Meerdere Opleidingen *"));

            //apply Filter

            //check if we need posts
            if (soort.Equals("Posts") || isSoort == false)
            {
                //db.Posts.Where(p => ((isBegin) ? p.Date >= beginDatefilter : true == true) && ((isEind) ? p.Date <= eindDatefilter : true == true) && ((isUser) ? p.UserId.Equals(UserId) : true == true) && ((isPostType) ? p.PostType == typefilter : true == true) && ((isPostCategory) ? p.PostCategory == categoryfilter : true == true));
                //iterate over all posts with linq filter
                foreach (var post in db.Posts.Where(p => ((isBegin) ? p.Date >= beginDatefilter : true == true) && ((isEind) ? p.Date <= eindDatefilter : true == true) && ((isUser) ? p.UserId.Equals(UserId) : true == true) && ((isPostType) ? p.PostType == typefilter : true == true) && ((isPostCategory) ? p.PostCategory == categoryfilter : true == true) && ((isDepartment) ? p.User.DepartmentId.ToString().Equals(Department) : true == true) && ((isProgram) ? p.User.ProgramId.ToString().Equals(Program) : true == true)))
                {
                    feedcontext.FeedItems.Add(post.Date, post);
                }
            }

            //check if we need feeback
            if (soort.Equals("Feedback") || isSoort == false)
            {
                //iterate over all feedback
                foreach (var feedback in db.Feedbacks.Where(f => (f.UserId.Equals(currentuserId) && (isBegin) ? f.Date >= beginDatefilter : true == true) && ((isEind) ? f.Date <= eindDatefilter : true == true) && ((isUser) ? f.Post.UserId.Equals(UserId) : true == true) && ((isPostType) ? f.Post.PostType == typefilter : true == true) && ((isPostCategory) ? f.Post.PostCategory == categoryfilter : true == true) && ((isDepartment) ? f.Post.User.DepartmentId.ToString().Equals(Department) : true == true) && ((isProgram) ? f.Post.User.ProgramId.ToString().Equals(Program) : true == true)))
                {
                    feedcontext.FeedItems.Add(feedback.Date, feedback);
                }
            }

            //check if we need comments
            if (soort.Equals("Commentaar") || isSoort == false)
            {
                //iterate over all comments
                foreach (var comment in db.Comments.Where(c => (c.Feedback.UserId.Equals(currentuserId) && (isBegin) ? c.Date >= beginDatefilter : true == true) && ((isEind) ? c.Date <= eindDatefilter : true == true) && ((isUser) ? c.UserId.Equals(UserId) : true == true) && ((isPostType) ? c.Feedback.Post.PostType == typefilter : true == true) && ((isPostCategory) ? c.Feedback.Post.PostCategory == categoryfilter : true == true) && ((isDepartment) ? c.User.DepartmentId.ToString().Equals(Department) : true == true) && ((isProgram) ? c.User.ProgramId.ToString().Equals(Program) : true == true)))
                {
                    feedcontext.FeedItems.Add(comment.Date, comment);
                }
            }

            //add filtervalues
            feedcontext.Filtervalues.Add(begin);
            feedcontext.Filtervalues.Add(eind);
            feedcontext.Filtervalues.Add(soort);
            feedcontext.Filtervalues.Add(UserId);
            feedcontext.Filtervalues.Add(PostType);
            feedcontext.Filtervalues.Add(PostCategory);
            feedcontext.Filtervalues.Add(Department);
            feedcontext.Filtervalues.Add(Program);

            if (owndepartment.DepartmentName.Equals("* Meerdere Departmenten *"))
            {
                ViewBag.AllDepartments = true;
            }
            else
            {
                ViewBag.AllDepartments = false;
            }

            return(View("Index", feedcontext));
        }
Exemple #19
0
        public ActionResult Index()
        {
            var feedcontext = new FeedView();

            feedcontext.Users         = db.Users.OrderBy(u => u.UserName);
            feedcontext.Departementen = db.Departments.OrderBy(d => d.DepartmentName);
            String          currentuserId = System.Web.HttpContext.Current.User.Identity.GetUserId();
            ApplicationUser currentUser   = db.Users.Find(currentuserId);

            if (currentUser == null)
            {
                return(RedirectToAction("Login", "Account"));
            }
            Department owndepartment = db.Departments.Find(currentUser.DepartmentId);

            if (owndepartment == null)
            {
                return(HttpNotFound());
            }
            var     ownprogramid = currentUser.ProgramId;
            Program ownprogram   = db.Programs.Find(ownprogramid);

            if (ownprogram == null)
            {
                return(HttpNotFound());
            }

            bool isDepartment = !(owndepartment.DepartmentName.Equals("* Meerdere Departmenten *"));
            bool isProgram    = !(ownprogram.ProgramName.Equals("* Meerdere Opleidingen *"));


            //iterate over all posts
            foreach (var post in db.Posts.Where(p => ((isDepartment) ? p.User.DepartmentId == owndepartment.DepartmentId : true == true) && ((isProgram) ? p.User.ProgramId == ownprogram.ProgramId : true == true)))
            {
                feedcontext.FeedItems.Add(post.Date, post);
            }
            //iterate over all feedback
            foreach (var feedback in db.Feedbacks.Where(f => (f.UserId.Equals(currentuserId) && (isDepartment) ? f.Post.User.DepartmentId == owndepartment.DepartmentId : true == true) && ((isProgram) ? f.Post.User.ProgramId == ownprogram.ProgramId : true == true)))
            {
                feedcontext.FeedItems.Add(feedback.Date, feedback);
            }
            //iterate over all comments
            foreach (var comment in db.Comments.Where(c => (c.Feedback.UserId.Equals(currentuserId) && (isDepartment) ? c.User.DepartmentId == owndepartment.DepartmentId : true == true) && ((isProgram) ? c.User.ProgramId == ownprogram.ProgramId : true == true)))
            {
                feedcontext.FeedItems.Add(comment.Date, comment);
            }

            //Set default filtervalues
            feedcontext.Filtervalues.Add("");
            feedcontext.Filtervalues.Add("");
            feedcontext.Filtervalues.Add("-1");
            feedcontext.Filtervalues.Add("-1");
            feedcontext.Filtervalues.Add("-1");
            feedcontext.Filtervalues.Add("-1");
            feedcontext.Filtervalues.Add(currentUser.DepartmentId.ToString());
            feedcontext.Filtervalues.Add("-1");
            if (owndepartment.DepartmentName.Equals("* Meerdere Departmenten *"))
            {
                ViewBag.AllDepartments = true;
            }
            else
            {
                ViewBag.AllDepartments = false;
            }

            return(View(feedcontext));
        }
        public List <FeedClimbingPost> GetLatestAreaPosts(int number, int areaID, short?tagID, FeedView view)
        {
            List <int> placeIDs = (from c in ctx.PlacesInAreas where c.AreaTagID == areaID select c.PlaceID).ToList();
            var        query    = from c in EntityTable where placeIDs.Contains(c.PlaceID) select c;

            return(FilterAndSortQuery(query, number, tagID, view));
        }
        public List <FeedClimbingPost> GetLatestPlacePosts(int number, int placeID, short?tagID, FeedView view)
        {
            var query = from c in EntityTable where c.PlaceID == placeID select c;

            return(FilterAndSortQuery(query, number, tagID, view));
        }
Exemple #22
0
 // Use this for initialization
 void Start()
 {
     scrollRect = GetComponent<ScrollRect>();
     feedView = eventList.GetComponent<FeedView>();
     pullTriggerText = pullTriggerView.transform.Find("Title").GetComponent<Text>();
     screenRect = new Rect(0f, 0f,
                       Screen.width + 1,
                       Screen.height - Screen.height*pullTriggerMargin);
 }
Exemple #23
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Utility.RegisterTypeForAjax(typeof(Default), Page);
            commentList.Visible = CommunitySecurity.CheckPermissions(NewsConst.Action_Comment);

            pgNavigator.EntryCount       = 1;
            pgNavigator.EntryCountOnPage = 1;
            Breadcrumb.Add(new BreadCrumb {
                Caption = NewsResource.NewsBreadCrumbs, NavigationUrl = FeedUrls.MainPageUrl
            });
            if (Info.HasUser)
            {
                Breadcrumb.Add(new BreadCrumb {
                    Caption = Info.User.DisplayUserName(false), NavigationUrl = FeedUrls.GetFeedListUrl(Info.UserId)
                });
            }

            if (!IsPostBack)
            {
                var storage = FeedStorageFactory.Create();
                if (!string.IsNullOrEmpty(Request["docID"]))
                {
                    long docID;
                    if (long.TryParse(Request["docID"], out docID))
                    {
                        //Show panel
                        ContentView.Visible = false;
                        FeedView.Visible    = true;

                        var feed = storage.GetFeed(docID);
                        if (feed != null)
                        {
                            if (!feed.Readed)
                            {
                                storage.ReadFeed(feed.Id, SecurityContext.CurrentAccount.ID.ToString());
                            }
                            FeedViewCtrl.Feed = feed;
                            hdnField.Value    = feed.Id.ToString(CultureInfo.CurrentCulture);
                            Title            += string.Format(CultureInfo.CurrentCulture, "-{0}", feed.Caption);
                            InitCommentsView(storage, feed);
                            FeedView.DataBind();
                            Breadcrumb.Add(new BreadCrumb {
                                Caption = feed.Caption, NavigationUrl = FeedUrls.GetFeedUrl(docID, Info.UserId)
                            });
                        }
                        else
                        {
                            ContentView.Visible  = true;
                            FeedView.Visible     = false;
                            FeedRepeater.Visible = true;
                        }
                    }
                }
                else
                {
                    PageNumber = string.IsNullOrEmpty(Request["page"]) ? 1 : Convert.ToInt32(Request["page"]);
                    LoadData();
                }
            }
            this.Title = HeaderStringHelper.GetPageTitle(Resources.NewsResource.AddonName, Breadcrumb);
        }
        private List<IFeedItem> GetFeedItemsForViewSettings(FeedChannel channel, FeedView view, 
            int? areaID, int? placeID, byte? tagID)
        {
            int numberOfPostsToDisplay = 40;
            int displayClimbingCount = 0, displayPartnerCallCount = 0, displayMovieCount = 0;

            FeedSettings settings = controller.UpdateFeedSettingsIfNecessary(UserID, channel, areaID, placeID);
            settings.TagID = tagID; // decided not to persist the tag in the db at this point in time.

            //-- Need to do on client side
            //if (Settings.HasPlace) { CurrentPlaceLkB.Text = CurrentFeedPlace.ShortName.Take(12); }
            //if (Settings.HasArea) { CurrentAreaLkB.Text = CurrentFeedArea.Name.Take(12); }
            //if (Settings.TagID.HasValue) { CurrentTagLB.Text = GetTagsString(Settings.TagID.Value); }

            if (view == FeedView.Posted)
            {
                //SelectLkB(PLkB);

                if (settings.TagID.HasValue)
                {
                    displayClimbingCount = numberOfPostsToDisplay;
                }
                else
                {
                    displayClimbingCount = 12;
                    displayPartnerCallCount = 5;
                    displayMovieCount = 3;
                }
            }
            else if (view == FeedView.Movies)
            {
                //SelectLkB(MLkB);
                settings.TagID = null;
                displayMovieCount = 15;
            }
            else if (view == FeedView.Climbing)
            {
                //SelectLkB(DCLkb);
                displayClimbingCount = numberOfPostsToDisplay;
            }
            else if (view == FeedView.PartnerCalls)
            {
                //SelectLkB(PCLkB);
                settings.TagID = null;
                displayPartnerCallCount = 17;
            }

            if (channel == FeedChannel.All)
            {
                //SelectLkB(AllLkB);
            }
            else if (channel == FeedChannel.Area)
            {
                //SelectLkB(CurrentAreaLkB);
                //FeedFocus = CurrentFeedArea.Name;
            }
            else if (channel == FeedChannel.Place)
            {
                //SelectLkB(CurrentPlaceLkB);
                //FeedFocus = CurrentFeedPlace.Name;
            }
            //else if (channel == FeedChannel.Climbers)
            //{
                //SelectLkB(ClLkB);
            //    settings.WatchedClimbers = controller.GetClimbersUserIsWatching(UserID);
                //FeedFocus = "climbers you're watching";
            //}

            List<IFeedItem> FeedItems = new List<IFeedItem>();
            List<FeedMoviePost> MoviePosts = new List<FeedMoviePost>();
            List<FeedPartnerCallPost> PartnerCallPosts = new List<FeedPartnerCallPost>();
            List<FeedClimbingPost> ClimbingPosts = new List<FeedClimbingPost>();

            if (displayClimbingCount > 0) { ClimbingPosts = controller.GetPostsBySettings(settings, view, numberOfPostsToDisplay); }

            //-- Fill the feed if we don't have enough posts
            if (view == FeedView.Posted && !settings.TagID.HasValue)
            {
                if (ClimbingPosts.Count < numberOfPostsToDisplay)
                {
                    byte numberToFill = (byte)(numberOfPostsToDisplay - ClimbingPosts.Count);
                    displayMovieCount++;
                    displayPartnerCallCount = (byte)(numberToFill - 1);
                }
            }

            if (displayMovieCount > 0 && !settings.TagID.HasValue) { MoviePosts = controller.GetFeedMoviesBySettings(settings, displayMovieCount); }

            if (displayPartnerCallCount > 0 &&
                (!settings.TagID.HasValue || settings.TagID.Value != 1) &&
                channel != FeedChannel.Climbers) { PartnerCallPosts = controller.GetFeedPartnerCallPostsBySettings(settings, displayPartnerCallCount); }

            foreach (FeedClimbingPost cp in ClimbingPosts) { FeedItems.Add(cp); }
            foreach (FeedMoviePost mp in MoviePosts) { FeedItems.Add(mp); }
            foreach (FeedPartnerCallPost pcp in PartnerCallPosts) { FeedItems.Add(pcp); }
            if (view == FeedView.Posted)
            {
                FeedItems = (from c in FeedItems orderby c.PostedDateTime descending select c).ToList();
            }
            return FeedItems;
        }
Exemple #25
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Utility.RegisterTypeForAjax(typeof(Default), Page);
            commentList.Visible = CommunitySecurity.CheckPermissions(NewsConst.Action_Comment);

            pgNavigator.EntryCount       = 1;
            pgNavigator.EntryCountOnPage = 1;

            if (IsPostBack)
            {
                return;
            }

            var storage = FeedStorageFactory.Create();

            if (!string.IsNullOrEmpty(Request["docID"]))
            {
                long docID;
                if (long.TryParse(Request["docID"], out docID))
                {
                    //Show panel
                    ContentView.Visible = false;
                    FeedView.Visible    = true;

                    var feed = storage.GetFeed(docID);
                    if (feed != null)
                    {
                        if (!feed.Readed)
                        {
                            storage.ReadFeed(feed.Id, SecurityContext.CurrentAccount.ID.ToString());
                        }
                        FeedViewCtrl.Feed = feed;
                        hdnField.Value    = feed.Id.ToString(CultureInfo.CurrentCulture);
                        InitCommentsView(storage, feed);
                        FeedView.DataBind();
                        EventTitle = feed.Caption;
                        var subscriptionProvider  = NewsNotifySource.Instance.GetSubscriptionProvider();
                        var amAsRecipient         = (IDirectRecipient)NewsNotifySource.Instance.GetRecipientsProvider().GetRecipient(SecurityContext.CurrentAccount.ID.ToString());
                        var isSubsribedOnComments = subscriptionProvider.IsSubscribed(NewsConst.NewComment, amAsRecipient, feed.Id.ToString());

                        var SubscribeTopicLink = string.Format(CultureInfo.CurrentCulture,
                                                               string.Format(CultureInfo.CurrentCulture,
                                                                             "<a id=\"statusSubscribe\" class=\"follow-status " +
                                                                             (isSubsribedOnComments ? "subscribed" : "unsubscribed") +
                                                                             "\" title=\"{0}\" href=\"#\" onclick=\"SubscribeOnComments('{1}');\"></a>",
                                                                             (isSubsribedOnComments ? NewsResource.UnsubscribeFromNewComments : NewsResource.SubscribeOnNewComments), feed.Id));

                        SubscribeLinkBlock.Text = SubscribeTopicLink;

                        Title = HeaderStringHelper.GetPageTitle((Master as NewsMaster).CurrentPageCaption ?? feed.Caption);
                    }
                    else
                    {
                        Response.Redirect(VirtualPathUtility.ToAbsolute("~/products/community/modules/news/"));
                        ContentView.Visible  = true;
                        FeedView.Visible     = false;
                        FeedRepeater.Visible = true;
                    }
                }
            }
            else
            {
                PageNumber = string.IsNullOrEmpty(Request["page"]) ? 1 : Convert.ToInt32(Request["page"]);
                PageSize   = string.IsNullOrEmpty(Request["size"]) ? 20 : Convert.ToInt32(Request["size"]);
                LoadData();
            }
            InitScripts();
        }
        public async Task <IActionResult> Edit(int id, FeedView feedView, List <int> Tags, List <int> Categories, List <int> Sources)
        {
            if (id != feedView.Feed.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(feedView.Feed);
                    if (Tags != null)
                    {
                        _context.FeedTags.RemoveRange(_context.FeedTags.Where(c => c.FeedID == feedView.Feed.ID).ToList());
                        Tags?.ForEach(t =>
                        {
                            _context.FeedTags.Add(new FeedTag()
                            {
                                TagID  = t,
                                FeedID = feedView.Feed.ID,
                                Feed   = feedView.Feed,
                                Tag    = _context.Tags.Find(t)
                            });
                        });
                    }
                    if (Categories != null)
                    {
                        _context.FeedCategories.RemoveRange(_context.FeedCategories.Where(c => c.FeedID == feedView.Feed.ID).ToList());
                        Categories?.ForEach(c =>
                        {
                            _context.FeedCategories.Add(new FeedCategory()
                            {
                                CategoryID = c,
                                FeedID     = feedView.Feed.ID,
                                Feed       = feedView.Feed,
                                Category   = _context.Categories.Find(c)
                            });
                        });
                    }
                    if (Sources != null)
                    {
                        _context.FeedSources.RemoveRange(_context.FeedSources.Where(c => c.FeedID == feedView.Feed.ID).ToList());
                        Sources?.ForEach(c =>
                        {
                            _context.FeedSources.Add(new FeedSource()
                            {
                                SourceID = c,
                                FeedID   = feedView.Feed.ID,
                                Feed     = feedView.Feed,
                                Source   = _context.Sources.Find(c)
                            });
                        });
                    }
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FeedExists(feedView.Feed.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(feedView.Feed));
        }