Пример #1
0
        public async Task <List <Newsfeed> > LoadOfficial(HtmlDocument Document, NewsCategory page)
        {
            List <Newsfeed> newsfeeds = new List <Newsfeed>();

            _nextPageUrls[page] = _officialBaseURL + Document.DocumentNode.SelectSingleNode("//a[@class='next']").Attributes["href"].Value;
            HtmlNodeCollection nodes = Document.DocumentNode.SelectNodes("//div[@class='gs-container']");

            foreach (HtmlNode node in nodes)
            {
                Newsfeed newsfeed = new Newsfeed();
                try
                {
                    newsfeed.Title         = HttpUtility.HtmlDecode(node.SelectSingleNode(".//div[@class='default-2-3']").SelectSingleNode(".//a").InnerText);
                    newsfeed.Date          = HttpUtility.HtmlDecode(node.SelectSingleNode(".//div[@class='horizontal-group']").InnerText);
                    newsfeed.UrlToNewsfeed = _officialBaseURL + node.SelectSingleNode(".//div[@class='default-2-3']").SelectSingleNode(".//a").Attributes["href"].Value;
                    newsfeed.Image         = await _cookieWebClientService.GetImage(_officialBaseURL + node.SelectSingleNode(".//img").Attributes["src"].Value.ToString());

                    newsfeed.ShortDescription = HttpUtility.HtmlDecode(node.SelectSingleNode(".//div[@class='teaser-content']").InnerText)
                                                .RemoveSpaceFromString();
                    newsfeed.Page = page;
                }
                catch { continue; }

                newsfeeds.Add(newsfeed);

                if (newsfeed.Title == null || newsfeed.UrlToNewsfeed == null || newsfeed.Image == null || newsfeed.ShortDescription == null)
                {
                    throw new Exception();
                }
            }
            return(newsfeeds);
        }
Пример #2
0
        public JsonResult InsertNews(Newsfeed feed)
        {
            User_Backend bck_end = new User_Backend();
            string       result  = bck_end.insertNews(feed);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        public JsonResult getNewsForSiteAdminView(long ID)
        {
            User_Backend bck_end = new User_Backend();
            Newsfeed     result  = bck_end.getNewsForSiteAdminView(ID);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public IHttpActionResult PutNewsfeed(int id, Newsfeed newsfeed)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != newsfeed.Id)
            {
                return(BadRequest());
            }

            db.Entry(newsfeed).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!NewsfeedExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #5
0
        public EmptyResult DeleteNewsfeed(int id)
        {
            Newsfeed note = Newsfeed.Load(id);

            note.Delete();
            return(null);
        }
Пример #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            Newsfeed newsfeed = db.Newsfeed.Find(id);

            db.Newsfeed.Remove(newsfeed);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #7
0
 public ActionResult Edit([Bind(Include = "TileId,TileType,Title,RssUrl,RefreshPeriod")] Newsfeed newsfeed)
 {
     if (ModelState.IsValid)
     {
         db.Entry(newsfeed).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(newsfeed));
 }
Пример #8
0
 public IHttpActionResult PostNewsfeed(Newsfeed newsfeed)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     db.Newsfeed.Add(newsfeed);
     db.SaveChanges();
     return(CreatedAtRoute("DefaultApi", new { id = newsfeed.NewsfeedId }, newsfeed));
 }
Пример #9
0
        public IHttpActionResult GetNewsfeed(int id)
        {
            Newsfeed newsfeed = db.Newsfeed.Find(id);

            if (newsfeed == null)
            {
                return(NotFound());
            }
            return(Ok(newsfeed));
        }
Пример #10
0
        public ActionResult Create([Bind(Include = "TileId,TileType,Title,RssUrl,RefreshPeriod")] Newsfeed newsfeed)
        {
            if (ModelState.IsValid)
            {
                newsfeed.TileType = 3;
                db.Tile.Add(newsfeed);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(newsfeed));
        }
Пример #11
0
    protected virtual void Awake()
    {
        gameMgr = GameObject.FindObjectOfType<GameManager>();
        tileMgr = GameObject.FindObjectOfType<TileManager>();
        newsfeed = GameObject.FindObjectOfType<Newsfeed>();

        goatUseEffectPrefab = Resources.Load<GameObject>("Prefabs/Goat Use");

        GetComponent<SpriteRenderer>().sprite = messages[Random.Range(0, 3)];

        transform.localScale = Vector2.one * 1.5f;
    }
Пример #12
0
        public IHttpActionResult DeleteLeerling(int id)
        {
            Newsfeed newsfeed = db.Newsfeed.Find(id);

            if (newsfeed == null)
            {
                return(NotFound());
            }
            db.Newsfeed.Remove(newsfeed);
            db.SaveChanges();

            return(Ok(newsfeed));
        }
Пример #13
0
        // GET: Newsfeeds/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Newsfeed newsfeed = db.Newsfeed.Find(id);

            if (newsfeed == null)
            {
                return(HttpNotFound());
            }
            return(View(newsfeed));
        }
Пример #14
0
 private static bool checkIfStorySubscribe(PostOptions po, Newsfeed storyitem)
 {
     if ((po.SubscriptionPhotos == 1 && checkIfPhotoStoryItem(storyitem)) ||
         (po.SubscriptionLinks == 1 && storyitem.Type == Global.LINK) ||
         (po.SubscriptionStatus == 1 && storyitem.Type == Global.TEXT_POST) ||
         (po.SubscriptionVideos == 1 && checkIfVideoStoryItem(storyitem))
         )
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Пример #15
0
        public Story(byte[] ProfilePicture, Newsfeed n)
        {
            newsFeed = n;
            InitializeComponent();
            //ProfileImage.Source = ImageSource.FromStream(() => new MemoryStream(ProfilePicture));
            ProfileImage.HeightRequest = 50;
            ProfileFrame.HeightRequest = 50;

            var client = new WebClient();

            ProfileImage.Source = ImageSource.FromUri(new Uri(@"https://pbs.twimg.com/profile_images/891014228777226240/-_N7QxuJ_400x400.jpg"));

            AddPicture(client.DownloadData(@"https://assets-cdn.github.com/images/modules/open_graph/github-logo.png"));
            AddPicture(client.DownloadData(@"https://www.petri.com/wp-content/uploads/2015/11/Visual-Studio-Hero.jpg"));
        }
Пример #16
0
        public override void OnNavigatedTo(NavigatedToEventArgs e, Dictionary <string, object> viewModelState)
        {
            if (sessionStateService.SessionState.ContainsKey("NewsfeedNextFrom"))
            {
                nextFrom = (string)sessionStateService.SessionState["NewsfeedNextFrom"];
            }

            if (sessionStateService.SessionState.ContainsKey("Newsfeed"))
            {
                var newsfeed = (PaginatedCollection <VKNewsfeedItem>)sessionStateService.SessionState["Newsfeed"];
                newsfeed.LoadMoreItems = LoadMoreItems;
                Newsfeed = newsfeed;

                if (sessionStateService.SessionState.ContainsKey("NewsfeedSuspended"))
                {
                    sessionStateService.SessionState.Remove("NewsfeedSuspended");
                    var notification = new AppNotification
                    {
                        Type       = AppNotificationType.Warning,
                        Title      = "Новости могли устареть",
                        Content    = "Коснитесь, чтобы обновить",
                        Duration   = TimeSpan.FromSeconds(10),
                        ActionToDo = () =>
                        {
                            FirstVisibleIndex = 0;
                            nextFrom          = null;
                            Newsfeed.Refresh();
                        }
                    };
                    appNotificationsService.SendNotification(notification);
                }

                if (sessionStateService.SessionState.ContainsKey("FirstVisibleNewsfeedIndex"))
                {
                    FirstVisibleIndex = (int)sessionStateService.SessionState["FirstVisibleNewsfeedIndex"];
                }
            }
            else
            {
                Newsfeed = new PaginatedCollection <VKNewsfeedItem>(LoadMoreItems);
            }

            base.OnNavigatedTo(e, viewModelState);
        }
        public void AddNews(string username, string content, DateTime createdOn, bool isImportant)
        {
            Guard.WhenArgument(username, "username").IsNullOrEmpty().Throw();
            Guard.WhenArgument(content, "content").IsNullOrEmpty().Throw();

            using (var uow = this.unitOfWork())
            {
                var newsfeed = new Newsfeed();
                var user     = this.userRepo.GetFirst(x => x.UserName == username);
                Guard.WhenArgument(user, "user").IsNull().Throw();

                newsfeed.Content     = content;
                newsfeed.CreatedOn   = createdOn;
                newsfeed.IsImportant = isImportant;

                user.NewsFeed.Add(newsfeed);
                uow.Commit();
            }
        }
        private PendingIntent GetContentIntent(Newsfeed newsfeed)
        {
            MvxBundle bundle = new MvxBundle();

            bundle.Write(newsfeed);

            MvxViewModelRequest <NewsfeedItemViewModel> request = new MvxViewModelRequest <NewsfeedItemViewModel>(bundle, null);

            IMvxNavigationSerializer converter = Mvx.IoCProvider.Resolve <IMvxNavigationSerializer>();
            string requestText = converter.Serializer.SerializeObject(request);

            Intent intent = new Intent(Application.Context, typeof(MainActivity));

            // We only want one activity started
            intent.AddFlags(flags: ActivityFlags.SingleTop);
            intent.PutExtra("Request", requestText);

            // Create Pending intent, with OneShot. We're not going to want to update this.
            return(PendingIntent.GetActivity(Application.Context, (int)(DateTimeOffset.Now.ToUnixTimeMilliseconds() / 1000), intent, PendingIntentFlags.OneShot));
        }
Пример #19
0
        // periodic callback for general game management
        public ActionResult Update()
        {
            // time warp actions
            if (Halloween_Game.Session.CurrentSession.State == Halloween_Game.Session.SessionState.TimeWarp)
            {
                return(TimeWarp());
            }

            // reset
            if (Halloween_Game.Session.CurrentSession.State == Halloween_Game.Session.SessionState.Reset)
            {
                if (Halloween_Game.Session.CurrentSession.TimeSinceLastModified.TotalSeconds > 90)
                {
                    Halloween_Game.Session.StartNewSession();
                }
                return(null);
            }

            // look for any expired tasks
            PlayerTask.ExpireTasks();

            foreach (Team team in Team.GetAll())
            {
                team.StockWarehouse();
            }

            // once every few seconds consider assign new tasks to players - high enough that we never have two of these executing simultaneously
            if (DateTime.Now.Subtract(HGameApp.LastTaskUpdate).TotalSeconds > 10)
            {
                foreach (var player in Player.GetAll())
                {
                    PlayerTask.AssignTaskMaybe(player.id);
                }
                HGameApp.LastTaskUpdate = DateTime.Now;
            }

            Newsfeed.AddNewsfeedItem();

            return(null);
        }
Пример #20
0
        public async Task <List <Newsfeed> > LoadSurrender(HtmlDocument Document, NewsCategory page)
        {
            List <Newsfeed> newsfeeds = new List <Newsfeed>();

            _nextPageUrls[page] = Document.DocumentNode.SelectSingleNode("//a[@class='nav-btm-right']").Attributes["href"].Value;
            HtmlNodeCollection nodes = Document.DocumentNode.SelectNodes("//div[@class='post-outer']");

            foreach (HtmlNode node in nodes)
            {
                Newsfeed newsfeed = new Newsfeed();
                try
                {
                    newsfeed.Title = HttpUtility.HtmlDecode(node.SelectSingleNode(".//h1[@class='news-title']").InnerText).RemoveSpaceFromString();
                    newsfeed.Date  = HttpUtility.HtmlDecode(node.SelectSingleNode(".//span[@class='news-date']").InnerText).RemoveSpaceFromString();
                    if (_operatingSystemService.GetSystemType() == SystemType.Android)
                    {
                        newsfeed.UrlToNewsfeed = node.SelectSingleNode(".//h1[@class='news-title']").SelectSingleNode(".//a").Attributes["href"].Value + "?m=1";
                    }
                    else if (_operatingSystemService.GetSystemType() == SystemType.UWP)
                    {
                        newsfeed.UrlToNewsfeed = node.SelectSingleNode(".//h1[@class='news-title']").SelectSingleNode(".//a").Attributes["href"].Value;
                        newsfeed.Image         = await _cookieWebClientService.GetImage(node.SelectSingleNode(".//img").Attributes["src"].Value.ToString());
                    }

                    newsfeed.ShortDescription = HttpUtility.HtmlDecode(node.SelectSingleNode(".//div[@class='news-content']").InnerText)
                                                .RemoveSpaceFromString()
                                                .RemoveContinueReadingString();
                    newsfeed.Page = page;
                }
                catch { continue; }

                newsfeeds.Add(newsfeed);

                //if (newsfeed.Title == null || newsfeed.UrlToNewsfeed == null || newsfeed.Image == null || newsfeed.ShortDescription == null)
                //{
                //    throw new Exception();
                //}
            }
            return(newsfeeds);
        }
        public void ShowNewPostNotification(Newsfeed newsfeed, NewsCategory page)
        {
            Notification notification = new NotificationCompat.Builder(Application.Context, CHANNEL_ID)
                                        .SetContentTitle(newsfeed.Title)
                                        .SetContentText(newsfeed.ShortDescription)
                                        .SetSmallIcon(Resource.Drawable.AppIcon)
                                        .SetContentIntent(GetContentIntent(newsfeed))
                                        .SetShowWhen(true)
                                        .SetAutoCancel(true)
                                        .Build();

            NotificationManagerCompat notificationManager = NotificationManagerCompat.From(Application.Context);

            if (page == NewsCategory.Official)
            {
                notificationManager.Notify(1000, notification);
            }
            else
            {
                notificationManager.Notify(1001, notification);
            }
        }
        public async void CreateNewfeed(object obj)
        {
            Newsfeed newNewsfeed = new Newsfeed()
            {
                Date      = Datum,
                Inhoud    = Inhoud,
                Opleiding = vOpleiding,
                Title     = Titel,
                Type      = vType
            };

            HttpClient          client     = new HttpClient();
            Uri                 theUri     = new Uri("http://localhost:6468/api/newsfeeds");
            var                 jsonObject = JsonConvert.SerializeObject(newNewsfeed);
            StringContent       content    = new StringContent(jsonObject, System.Text.Encoding.UTF8, "application/json");
            HttpResponseMessage response   = await client.PostAsync(theUri, content);

            if (response.IsSuccessStatusCode)
            {
                mvm.SelectedViewModel = new Adminstatistieken(mvm);
            }
        }
Пример #23
0
        public List <Newsfeed> ShowAllNewsfeed()
        {
            List <Newsfeed> obj = new List <Newsfeed>();

            using (SqlConnection con = new SqlConnection(conn))
            {
                string Query = @"select admin.Newsfeed.ID,Isnull(admin.Newsfeed.Title,'') as Title,Isnull(admin.Newsfeed.Description,'') as Description,
                                    Isnull(admin.Newsfeed.EventImage,'') as EventImage,convert(varchar,admin.Newsfeed.CreatedDate,121) as CreatedDate,Status 
                                    from admin.Newsfeed where admin.Newsfeed.Status=1 order by admin.Newsfeed.CreatedDate desc";
                try
                {
                    SqlCommand command = new SqlCommand(Query, con);

                    if (con.State == System.Data.ConnectionState.Broken ||
                        con.State == System.Data.ConnectionState.Closed)
                    {
                        con.Open();
                        SqlDataReader reader = command.ExecuteReader();
                        while (reader.Read())
                        {
                            Newsfeed tempfeed = new Newsfeed()
                            {
                                ID          = Convert.ToInt64(reader["ID"]),
                                Title       = Convert.ToString(reader["Title"]),
                                Description = Convert.ToString(reader["Description"]),
                                CreatedDate = Convert.ToDateTime(reader["CreatedDate"]),
                                EventImage  = Convert.ToString(reader["EventImage"]),
                                Status      = Convert.ToBoolean(reader["Status"]),
                            }; obj.Add(tempfeed);
                        }
                    }
                }
                catch (SqlException exc) { Console.WriteLine(exc.Message); }
            }
            return(obj);
        }
Пример #24
0
 protected override async Task NavigateToAsync(Newsfeed newsfeed)
 {
     await _navigationService.Navigate <NewsfeedItemViewModel, Newsfeed>(newsfeed);
 }
Пример #25
0
 private static bool checkIfVideoStoryItem(Newsfeed storyitem)
 {
     return(storyitem.Type == Global.VIDEO || storyitem.Type == Global.TAG_VIDEO || storyitem.Type == Global.TAG_PHOTO || storyitem.Type == Global.TAG_PHOTO_ALBUM);
 }
Пример #26
0
 private static bool checkIfPhotoStoryItem(Newsfeed storyitem)
 {
     return(storyitem.Type == Global.PHOTO || storyitem.Type == Global.PHOTO_ALBUM || storyitem.Type == Global.POST_VIDEOLINK || storyitem.Type == Global.TAG_VIDEOLINK);
 }
Пример #27
0
        protected override async Task NavigateToAsync(Newsfeed newsfeed)
        {
            NewsfeedItemViewModel vm = MvxIoCProvider.Instance.Resolve <NewsfeedItemViewModel>();

            vm.Prepare(newsfeed);
        }
Пример #28
0
 public void ShowNewPostNotification(Newsfeed newsfeed, NewsCategory page)
 {
     throw new NotImplementedException();
 }
Пример #29
0
 private static bool checkIfVideoStoryItem(Newsfeed storyitem)
 {
     return (storyitem.Type == Global.VIDEO || storyitem.Type == Global.TAG_VIDEO || storyitem.Type == Global.TAG_PHOTO || storyitem.Type == Global.TAG_PHOTO_ALBUM);
 }
Пример #30
0
        // routine that runs at the end of a game session
        private static ActionResult TimeWarp()
        {
            double secElapsed = Halloween_Game.Session.CurrentSession.TimeSinceLastModified.TotalSeconds;

            if (Halloween_Game.Session.TimeWarpLevel == 0)
            {
                PlayerItem finalItem = PlayerItem.Load((int)System.Web.HttpContext.Current.Application["TimeWarp PlayerItem Id"]);
                // all that initial stuff
                Newsfeed.Create("BREAKING - massive gravitation waves resulting from an experiment at <b>" + finalItem.GetPlayer.GetTeam.name + "</b> research laboratories is causing wide-spread damage and chaos through the local coordinated star systems.", Newsfeed.Context.danger);
                // global notification
                Notification.CreateGlobal("Anomalies in local spacetime have disrupted all normal activities.");

                // remove all player tasks & items
                foreach (Player player in Player.GetAll())
                {
                    foreach (PlayerTask playerTask in player.GetTasks)
                    {
                        playerTask.Delete();
                    }
                    foreach (PlayerItem playerItem in player.GetItems)
                    {
                        playerItem.Delete();
                    }
                    player.MustReload = true;
                }

                Halloween_Game.Session.TimeWarpLevel++;
            }
            else if (secElapsed > 10 && Halloween_Game.Session.TimeWarpLevel == 1)
            {
                Notification.CreateGlobal("Direct all queries to Central Display.");
                Halloween_Game.Session.TimeWarpLevel++;
            }
            else if (secElapsed > 30 && Halloween_Game.Session.TimeWarpLevel == 2)
            {
                Newsfeed.Create("Atomic chronometers reportedly becoming unreliable. Scientists puzzled. Clocks are running slowly, or stopping completely.", Newsfeed.Context.warning);
                Halloween_Game.Session.TimeWarpLevel++;
            }
            else if (secElapsed > 40 && Halloween_Game.Session.TimeWarpLevel == 3)
            {
                Newsfeed.Create("System-wide entropy decreasing. Natural processes have begun running backwards.", Newsfeed.Context.danger);
                Halloween_Game.Session.TimeWarpLevel++;
            }
            else if (secElapsed > 48 && Halloween_Game.Session.TimeWarpLevel == 4)
            {
                Newsfeed.Create("Some hope that a cure for aging has been discovered.", Newsfeed.Context.success);
                Notification.CreateGlobal("You feel yourself becoming younger. Knowledge is slipping from your mind. Mistakes and accomplishments are being unmade.");
                Halloween_Game.Session.TimeWarpLevel++;
            }
            else if (secElapsed > 64 && Halloween_Game.Session.TimeWarpLevel == 5)
            {
                Newsfeed.Create("Connection lost. Critical system failure imminent.", Newsfeed.Context.warning);
                Halloween_Game.Session.TimeWarpLevel++;
            }
            else if (secElapsed > 74 && Halloween_Game.Session.TimeWarpLevel == 6)
            {
                for (int i = 0; i < 7; i++)
                {
                    Newsfeed.Create("GENERAL SYSTEM ERROR", Newsfeed.Context.danger);
                }
                Halloween_Game.Session.TimeWarpLevel++;
            }
            else if (secElapsed > 90 && Halloween_Game.Session.TimeWarpLevel == 7)
            {
                Halloween_Game.Session.CurrentSession.SetState(Halloween_Game.Session.SessionState.Reset);
                foreach (Player player in Player.GetAll())
                {
                    player.MustReload = true;
                    player.Save();
                }
            }

            return(null);
        }
Пример #31
0
 private static bool checkIfPhotoStoryItem(Newsfeed storyitem)
 {
     return (storyitem.Type == Global.PHOTO || storyitem.Type == Global.PHOTO_ALBUM || storyitem.Type == Global.POST_VIDEOLINK || storyitem.Type == Global.TAG_VIDEOLINK);
 }
Пример #32
0
 private static bool checkIfStorySubscribe(PostOptions po, Newsfeed storyitem)
 {
     if ((po.SubscriptionPhotos == 1 && checkIfPhotoStoryItem(storyitem)) ||
         (po.SubscriptionLinks == 1 && storyitem.Type == Global.LINK) ||
         (po.SubscriptionStatus == 1 && storyitem.Type == Global.TEXT_POST) ||
         (po.SubscriptionVideos == 1 && checkIfVideoStoryItem(storyitem))
        )
     {
         return true;
     }
     else
     {
         return false;
     }
 }
 protected abstract Task NavigateToAsync(Newsfeed newsfeed);
Пример #34
0
        public void OrderItemsDescendingCorrectly()
        {
            var mockedNewsfeedRepository = new Mock <IRepository <Newsfeed> >();
            var mockedUserRepo           = new Mock <IRepository <User> >();
            var mockedUnitOfWork         = new Mock <IUnitOfWork>();

            var newsDataService = new NewsDataService(
                mockedNewsfeedRepository.Object,
                mockedUserRepo.Object,
                () => mockedUnitOfWork.Object);

            var item1 = new Newsfeed()
            {
                IsImportant = false,
                CreatedOn   = DateTime.Now.AddDays(-2),
                Content     = "test content 1",
                User        = new User()
                {
                    AvatarPictureUrl = "test url 1"
                }
            };
            var item2 = new Newsfeed()
            {
                IsImportant = false,
                Content     = "test content 2",
                CreatedOn   = DateTime.Now.AddDays(-1),
                User        = new User()
                {
                    AvatarPictureUrl = "test url 2"
                }
            };
            var item3 = new Newsfeed()
            {
                IsImportant = false,
                Content     = "test content 3",
                CreatedOn   = DateTime.Now,
                User        = new User()
                {
                    AvatarPictureUrl = "test url 3"
                }
            };

            var expectedResult = new List <Newsfeed>()
            {
                item1, item2, item3
            };

            mockedNewsfeedRepository
            .Setup(x => x.GetAll(
                       It.IsAny <Expression <Func <Newsfeed, bool> > >(),
                       It.IsAny <Expression <Func <Newsfeed, NewsModel> > >()))
            .Returns((Expression <Func <Newsfeed, bool> > predicate,
                      Expression <Func <Newsfeed, NewsModel> > projection) =>
                     expectedResult.Where(predicate.Compile()).Select(projection.Compile()));

            var actualResult = newsDataService.GetNews().ToList();

            Assert.AreEqual(actualResult[2].CreatedOn.ToString("dd:HH:mm:ss"), expectedResult[0].CreatedOn.ToString("dd:HH:mm:ss"));
            Assert.AreEqual(actualResult[1].CreatedOn.ToString("dd:HH:mm:ss"), expectedResult[1].CreatedOn.ToString("dd:HH:mm:ss"));
            Assert.AreEqual(actualResult[0].CreatedOn.ToString("dd:HH:mm:ss"), expectedResult[2].CreatedOn.ToString("dd:HH:mm:ss"));
        }