public ActionResult DeleteNews(Guid id)
        {
            var NewsModel = new NewsModel();

            NewsModel.DeleteNews(id);

            return RedirectToRoute(new { controller = "News", action = "Yeah" } );
        }
        public async Task<ActionResult> Index(string sortOrder, int page = 1)
        {
            ApplicationUser userData;
           
            string userId = null;
            if (User.Identity.IsAuthenticated)
            {
                userData = await UserManager.FindByNameAsync(User.Identity.Name);
                userId = userData.Id;
            }

            ViewBag.CurrentSort = sortOrder;
            ViewBag.NameSortParm = sortOrder == "ByAuthor" ? "" : "ByAuthor";
            ViewBag.DateSortParm = sortOrder == "ByDate" ? "" : "ByDate";
            
            var newsModel = new NewsModel();

            var listOfNews = newsModel.NewsOnScreen();
            listOfNews = newsModel.SortNewsBy(sortOrder, listOfNews);

            int countVisibleNews = 0;
            foreach (var newsData in listOfNews)
            {
                if (newsData.IsVisible || User.IsInRole("admin") || User.IsInRole("editor") || (newsData.AuthorId == userId && User.IsInRole("journalist")))
                    countVisibleNews++;
            }

            NewsListViewModel dataList;

            if (countVisibleNews > 3)
            {
                int pageSize = 3;
                dataList = new NewsListViewModel
                {

                    UserId = userId,
                    NewsPerPages = listOfNews.Skip((page - 1) * pageSize).Take(pageSize),
                    PageData = new PageInfo
                    {
                        PageNumber = page,
                        PageSize = pageSize,
                        TotalItems = listOfNews.Count
                    }
                };
            }
            else
            {
                dataList = new NewsListViewModel
                {
                    UserId = userId,
                    NewsPerPages = listOfNews,
                    PageData = new PageInfo { PageSize = 0 }
                };
            }

            return View(dataList);
        }
        public ActionResult Edit(NewsViewModel EditedData)
        {
            if (!ModelState.IsValid)
                return View(EditedData);

            var NewsModel = new NewsModel();

            NewsModel.Edit(EditedData);

            return RedirectToAction("Index", "News");
        }
        public ActionResult MoreInfo(Guid id)
        {
            var NewsModel = new NewsModel();

            var SelectedNew = NewsModel.MoreInfo(id);

            if (!SelectedNew.IsVisible && User.IsInRole("journalist"))
                return RedirectToRoute(new { controller = "News", action = "Index" });

            return View(SelectedNew);
        }
        public async System.Threading.Tasks.Task<ActionResult> AddNew(NewsViewModel NewAdd)
        {
            if (!ModelState.IsValid)
                return View(NewAdd);

            var UserData = await UserManager.FindByNameAsync(User.Identity.Name);

            var NewsModel = new NewsModel();

            NewAdd.AuthorId = UserData.Id;
            NewAdd.Author = UserData.UserName;

            NewsModel.AddNew(NewAdd);
            
            return RedirectToRoute(new { controller = "News", action = "Yeah" });
        }
        public ActionResult Edit(Guid id)
        {
            var NewsModel = new NewsModel();
            var SelectedNew = NewsModel.Edit(id);

            if (User.IsInRole("journalist"))
            {
                if (User.Identity.Name == SelectedNew.Author)
                {
                    return View(SelectedNew);
                }
            }
            else
            {
                return View(SelectedNew);
            }
            return RedirectToAction("Index", "News");
        }