Beispiel #1
0
        private void ProcessNews(IEnumerable <NewsEvent> events)
        {
            newsObserver = null;
            var newNews = events.Select(evt => new NewsContainer(evt))
                          .Except(News, new LambdaComparer <NewsContainer>((l, r) => l.Event.Level == r.Event.Level && l.Event.Name == r.Event.Name && l.Event.Time == r.Event.Time));

            if (_useDb)
            {
                ForexStorage.UseForexContext(c => {
                    var dateLast = c.Event__News.Max(e => e.Time);
                    newNews.ToList().Select(evt => evt.Event)
                    //.Where(evt => evt.Time > dateLast)
                    .ForEach(evt => {
                        c.Event__News.Add(new Event__News()
                        {
                            Level   = (evt.Level + "").Substring(0, 1),
                            Country = evt.Country,
                            Name    = evt.Name,
                            Time    = evt.Time
                        });
                        c.SaveConcurrent();
                    });
                }, (c, exc) => Log = exc);
            }
            ReactiveUI.RxApp.MainThreadScheduler.Schedule(() => {
                newNews.ForEach(evt => News.Add(evt));
                NewsView.GroupDescriptions.Clear();
                NewsView.GroupDescriptions.Add(new PropertyGroupDescription("Date"));
                NewsView.Refresh();
                UpdateNewsColor();
            });
        }
Beispiel #2
0
        protected void LoadInfo()
        {
            int id = WS.RequestInt("id");

            if (id < 0)
            {
                return;
            }

            News n = NewsView.GetModelByID(id.ToS());

            if (n.ID < 0)
            {
                Js.Jump("?");
                return;
            }

            if (n.AutorID != UserAction.opuser.ID)
            {
                Js.AlertAndChangUrl("这不是您投递的文章,无权修改", "PostList.aspx");
                return;
            }

            ddl_Class.SelectedValue = n.ClassID.ToS();
            txt_Title.Text          = n.Title;
            txtFtitle.Text          = n.FTitle;
            txt_Keyword.Text        = n.KeyWords;
            txt_Description.Text    = n.Description;
            txt_Author.Text         = n.Author;
            txt_Source.Text         = n.Source;
            txt_Content.Text        = n.Content;
        }
        private void CreateSampleWorker(object[] args)
        {
            SampleUtilities.CreateUsersAndRoles();
            SampleUtilities.RegisterToolboxWidget("NewsRotator Widget", typeof(Rotator), "Samples");
            SampleUtilities.RegisterTheme(SamplesThemeName, SamplesThemePath);
            SampleUtilities.RegisterTemplate(new Guid(SamplesTemplateId), SamplesTemplateName, SamplesTemplateName, SamplesTemplatePath, SamplesThemeName);

            SampleUtilities.UploadImages(HttpRuntime.AppDomainAppPath + "Images", "Thumbnails");
            this.CreateNewsItems();

            var result = SampleUtilities.CreatePage(new Guid(NewsPageId), "News");

            if (result)
            {
                SampleUtilities.SetTemplateToPage(new Guid(NewsPageId), new Guid(SamplesTemplateId));

                NewsView newsView = new NewsView();
                SampleUtilities.AddControlToPage(new Guid(NewsPageId), newsView, "Content", "News");
            }

            result = SampleUtilities.CreatePage(new Guid(NewsRotatorWidgetPageId), NewsRotatorWidgetPageName, true);

            if (result)
            {
                SampleUtilities.SetTemplateToPage(new Guid(NewsRotatorWidgetPageId), new Guid(SamplesTemplateId));

                Rotator newsRotator = new Rotator();
                SampleUtilities.AddControlToPage(new Guid(NewsRotatorWidgetPageId), newsRotator, "Content", "NewsRotator Widget");
            }
        }
        public ActionResult CreateNews(NewsView model)
        {
            USOSContext context = this.initContext();

            if (!ModelState.IsValid)
            {
                ViewBag.Message = "Dodano";
                return(View(model));
            }

            using (context)
            {
                News Obj = new News();

                if (context.News.Any(x => x.ID == model.ID))
                {
                    ModelState.AddModelError("", "Ta nazwa już istnieje");
                    return(View(model));
                }
                Obj.Text   = model.Text;
                Obj.Header = model.Header;
                Obj.Date   = DateTime.Now;

                ViewBag.Message = "Dodano";
                context.News.Add(Obj);
                context.SaveChanges();
            }
            return(RedirectToAction("News"));
        }
        public ActionResult EditNews(NewsView model)
        {
            USOSContext context = this.initContext();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (context)
            {
                int id = model.ID;


                News Obj = context.News.Find(id);


                if (context.News.Where(x => x.ID != id).Any(x => x.Text == model.Text))

                {
                    ModelState.AddModelError("", "Aktualność już istnieje");
                }
                Obj.Text   = model.Text;
                Obj.Header = model.Header;
                Obj.Date   = DateTime.Now;



                context.SaveChanges();
            }
            return(RedirectToAction("News"));
        }
 public ActionResult News_Edit(int id, NewsView entity)
 {
     try
     {
         ModelState.Remove("IsLock");
         if (ModelState.IsValid)
         {
             var model = base.NewsBLL.Where(c => c.Id == entity.Id).FirstOrDefault();
             model.Author     = entity.Author;
             model.CategoryId = entity.CategoryId;
             model.IsLock     = entity.IsLock;
             base.NewsBLL.SaveChanges();
             GetIist();
             return(RedirectToAction("News"));
         }
         GetIist();
         return(View());
     }
     catch (System.Exception ex)
     {
         ModelState.AddModelError("", ex.Message);
         GetIist();
         return(View());
     }
 }
        public HttpResponseMessage Profile(int school_id, int user_id)
        {
            try
            {
                using (Entities entities = new Entities())
                {
                    Expression <Func <NEWS, bool> > expr = n => n.SCHOOL_ID == school_id && n.USER_ID == user_id;
                    var numNews      = entities.NEWS.Where(expr).Count();
                    int numTotalPage = (int)Math.Ceiling(numNews / 10.0);


                    var newsList = NewsView.getNewsClassList(entities, expr, 1);

                    if (newsList.Count == 0)
                    {
                        return(Request.CreateResponse(HttpStatusCode.OK, new Result()
                        {
                            statusCode = 404, totalPage = numTotalPage, status = "There are not news", results = newsList
                        }));
                    }

                    return(Request.CreateResponse(HttpStatusCode.OK, new Result()
                    {
                        statusCode = 200, totalPage = numTotalPage, numResult = newsList.Count, page = 1, status = "Success", results = newsList
                    }));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, new Result()
                {
                    statusCode = 400, status = ex.Message
                }));
            }
        }
Beispiel #8
0
        [ActionName("Edit")]       //重名处理
        public ActionResult EditArticle()
        {
            var basicInformation = new BasicInformation();
            var relations        = new Relations();

            //使用白名单更新实体,防止表单绑定分配漏洞
            var basicInformationWhite = new[] { "PublishTime", "ExpireDate", "Title", "Description", "Content", "Source", "KeyWords", "IsExtURL",
                                                "ExtURL", "Author", "AuthorFirst", "AuthorPhoto", "AuthorCompany", "Image", "AttachFile", "Hits", "SubTitle"
                                                //Hits Status  Type
            };
            var relationsWhite = new[] { "IsSortTop", "SortTopExpireDate", "Order"
                                         //NewsId
            };

            var isValid = TryUpdateModel(basicInformation, basicInformationWhite);

            isValid = isValid && TryUpdateModel(relations, relationsWhite);
            if (isValid)
            {
                _service.AddNews(basicInformation, relations);
                return(RedirectToAction("List"));
            }
            else
            {
                var newsViewWhite = new[] { "PublishTime", "ExpireDate", "Title", "Description", "Content", "Source", "KeyWords", "IsExtURL",
                                            "ExtURL", "Author", "AuthorFirst", "AuthorPhoto", "AuthorCompany", "Image", "AttachFile", "Hits", "SubTitle",
                                            "IsSortTop", "SortTopExpireDate", "Order"
                                            //Hits Status  Type
                };
                var news = new NewsView();
                isValid = TryUpdateModel(news, newsViewWhite);
                return(View(news));//返回带错误信息的模型
            }
            //TryValidateModel(basicInformation);
        }
Beispiel #9
0
        /// <summary>
        /// 通过关键词读取新闻
        /// </summary>
        /// <param name="count"></param>
        /// <param name="TitleLength"></param>
        /// <param name="showTime"></param>
        /// <param name="key"></param>
        /// <param name="Order"></param>
        /// <returns></returns>
        public string getnewsbykeywords(string count, string TitleLength, string showTime, string key, string Order)
        {
            string str_sql = "";

            str_sql += "(";
            string[] keys = Regex.Replace(key, "\\s+", ",").Split(',');
            foreach (string k in keys)
            {
                str_sql += " keywords like '%" + k + "%' or ";
            }
            str_sql += " 1=2)";



            List <News>   nlist = NewsView.GetModelList(str_sql + " " + Order, count.ToInt32());
            StringBuilder sb    = new StringBuilder();

            foreach (News n in nlist)
            {
                string title = n.Title;
                if (TitleLength.ToInt32() > 0)
                {
                    title = title.CutString(TitleLength.ToInt32());
                }
                string timespan = "";
                if (showTime.ToInt32() > 0)
                {
                    timespan = string.Format("<span class=\"news_time_span\">{0}</span>", n.NewsTime.ToString("yyyy/MM/dd"));
                }

                sb.AppendLine(string.Format("<li>{0}{1}<a href='{2}' title='{3}'>{4}</a></li>", "", timespan, BasePage.GetNewsUrl(n, NewsView.GetNewsClass(n)), n.Title, title));
            }
            return(sb.ToS());
        }
Beispiel #10
0
        protected void btn_createPage_Click(object sender, EventArgs e)
        {
            string[] ids = WS.RequestString("id").Split(',');
            foreach (string id in ids)
            {
                News n = NewsView.GetModelByID(id);
                CreatePage.CreateContentPage(n, NewsView.GetNewsClass(n));

                News news_pre = GetPreNews(n, NewsView.GetNewsClass(n));

                if (news_pre != null)
                {
                    CreatePage.CreateContentPage(news_pre, NewsView.GetNewsClass(n));
                }
            }

            if (cls > 0)
            {
                try
                {
                    CreatePage.CreateListPage(ClassView.GetModelByID(cls.ToS()), 1);
                }
                catch { }
            }
            CreatePage.GreateIndexPage();
            Js.Jump(url);
        }
Beispiel #11
0
 public NewsView GetView(long id)
 {
     try
     {
         var _item = DbContext.News.Find(id);
         if (_item != null && _item.ID != 0)
         {
             NewsView news = new NewsView();
             news.Avatar      = _item.Avatar;
             news.Content     = _item.Content;
             news.Desc        = _item.Desc;
             news.ID          = _item.ID;
             news.MetaDesc    = _item.MetaDesc;
             news.MetaKeyword = _item.MetaKeyword;
             news.MetaTitle   = _item.MetaTitle;
             news.Title       = _item.Title;
             news.ViewNumber  = _item.ViewNumber;
             return(news);
         }
         return(null);
     }
     catch (Exception)
     {
         return(null);
     }
 }
Beispiel #12
0
        public IActionResult Get(int page, int count)
        {
            if (page <= 0 || count < 0)
            {
                return(UnprocessableEntity("Invalid query parameters: page < 1 or count < 0"));
            }
            var userId          = HttpContext.Session.GetString("userId");
            var currUser        = usersCollection.Find(a => a.Id == Guid.Parse(userId)).FirstOrDefault();
            var usersInGroup    = usersCollection.Find(a => a.GroupId == currUser.GroupId).ToList();
            var usersInGroupIds = usersInGroup.Select(a => a.Id).ToList();
            var news            = newsCollection.Find(n => usersInGroupIds.Contains(n.AuthorId))
                                  .SortByDescending(n => n.Date)
                                  .Skip((page - 1) * count)
                                  .Limit(count)
                                  .ToList();
            var correctNews = new List <NewsView>();

            for (var i = 0; i < news.Count; i++)
            {
                var newsView = new NewsView(news[i]);
                var user     = usersCollection.Find(e => e.Id == news[i].AuthorId).FirstOrDefault();
                newsView.AuthorName    = user.Name;
                newsView.AuthorSurname = user.Surname;
                var comments = commentsCollection.Find(c => news[i].Comments.Contains(c.Id)).ToList().OrderBy(e => e.Date);
                newsView.Comments = comments;
                correctNews.Add(newsView);
            }
            return(new ObjectResult(correctNews));
        }
Beispiel #13
0
        public void Post()
        {
            if (!Permission.PremissionNeed(Request, Response, Session, UserRank.TEACHER))
            {
                return;
            }

            User   user    = (User)Session["user"];
            string title   = Request.Form["title"];
            string content = Request.Form["content"];

            if (title.Length != 0 && content.Length != 0)
            {
                log.Info("uid:" + user.uid + "发布新闻:" + title);
                News news = new News
                {
                    publisher = user.uid,
                    title     = title,
                    content   = content,
                    date      = DateTime.Now
                };
                NewsView.PostNewNews(news);
            }

            newsCache = NewsView.GetAllNews();
            Response.Redirect("/News");
        }
        public HttpResponseMessage Get(int school_id, DateTime start_date, DateTime end_date)
        {
            try
            {
                using (Entities entities = new Entities())
                {
                    Expression <Func <NEWS, bool> > expr = n => n.SCHOOL_ID == school_id && n.EVENT_DATE != null && n.EVENT_DATE >= start_date && n.EVENT_DATE <= end_date;
                    var numNews      = entities.NEWS.Where(expr).Count();
                    int numTotalPage = (int)Math.Ceiling(numNews / 10.0);


                    var newsList = NewsView.getNewsClassList(entities, expr);

                    if (newsList.Count == 0)
                    {
                        return(Request.CreateResponse(HttpStatusCode.OK, new Result()
                        {
                            statusCode = 404, totalPage = numTotalPage, status = "There are not events", results = newsList
                        }));
                    }

                    return(Request.CreateResponse(HttpStatusCode.OK, new Result()
                    {
                        statusCode = 200, totalPage = numTotalPage, numResult = newsList.Count, page = 1, status = "Success", results = newsList
                    }));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, new Result()
                {
                    statusCode = 400, status = ex.Message
                }));
            }
        }
Beispiel #15
0
        // GET: News
        public ActionResult Index(int id = 1)
        {
            IOrderedQueryable <News> news = null;

            if (newsCache != null)
            {
                news = newsCache;
            }
            else
            {
                news      = NewsView.GetAllNews();
                newsCache = news;
            }

            int totalPageNumber = pager.GetPageNumber(news);

            if (id < 1 || id > totalPageNumber)
            {
                id = 1;
            }

            ViewBag.news            = pager.GetPage(news, id);
            ViewBag.totalPageNumber = totalPageNumber;
            ViewBag.page            = id;

            return(View());
        }
Beispiel #16
0
        public CASEView()
        {
            InitializeComponent();
            edenIF = new EdenIF("admin", "98321abc");
            //QEng.bActiveWACC = true;
            ISIN = "KR7005930003";

            // init chile views
            ProfileView.Init(edenIF);
            AnalysisView.Init(edenIF);
            ChartView.Init(edenIF);
            FinancialsView.Init(edenIF);
            NewsView.Init(edenIF);
            DisclosureView.Init(edenIF);
            //ReportView.Init(edenIF);

            DataTable properties = edenIF.GetProperties();

            foreach (DataRow row in properties.Rows)
            {
                companyList.Add(row[1].ToString());
            }

            // initialize
            UpdateContent(ISIN);
            UpdateChildViews(ISIN);

            // init configurations
            configManager = new ConfigManager("configurations.xml");
            configManager.Load();
            configManager.AddSection("watchlist");
            InitWatchlist();
        }
Beispiel #17
0
        public void UpdateChildViews(string isin)
        {
            if (edenIF.ContainsFinancials(ISIN, AccountingStandard.IFRS_CON) == true)
            {
                standard = AccountingStandard.IFRS_CON;
            }
            else if (edenIF.ContainsFinancials(ISIN, AccountingStandard.IFRS_SEP) == true)
            {
                standard = AccountingStandard.IFRS_SEP;
            }
            else
            {
                standard = AccountingStandard.Undefined;
            }

            QEng.TrySetCompany(ISIN, standard, false);
            QEng.Pricing();

            ProfileView.UpdateContent(isin, QEng);
            AnalysisView.UpdateContent(isin, QEng);
            ChartView.UpdateContent(isin, QEng);
            FinancialsView.UpdateContent(isin, QEng);
            NewsView.UpdateContent(isin, QEng);
            DisclosureView.UpdateContent(isin, QEng);
            //ReportView.UpdateContent(isin, QEng);
        }
Beispiel #18
0
        public void Create(NewsView newData)
        {
            newData.CreateTime = DateTime.Now;
            News data = Mapper.Map <News>(newData);

            _newsrepository.Create(data);
            _db.Save();
        }
Beispiel #19
0
        // GET: RSS
        public ActionResult RSSContent()
        {
            RSS      RSSService = new RSS();
            NewsView StockNews  = new NewsView();

            StockNews = RSSService.RSSNews();

            return(PartialView(StockNews));
        }
Beispiel #20
0
        /// <summary>
        /// Initialize news page.
        /// </summary>
        /// <param name="nvm">View model for news page.</param>
        /// <param name="userNews">True if this is user page.</param>
        public NewsPage(NewsViewModel nvm, bool userNews = false)
        {
            InitializeComponent();

            _newsVm = nvm;
            NewsView.SetBinding(_newsVm);
            Title = nvm.Topic;
            SetUserNews(userNews);
        }
Beispiel #21
0
 public ActionResult Edit([Bind(Include = "NewsContent,NewsDateTime,UserLastName,UserName,NewsId,NewsTitle,UserMiddleName")] NewsView newsView)
 {
     if (ModelState.IsValid)
     {
         db.Entry(newsView).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(newsView));
 }
Beispiel #22
0
        public void Edit(NewsView nowData)
        {
            var data = GetDataById(nowData.N_Id);

            data.Title      = nowData.Title;
            data.Detail     = nowData.Detail;
            data.CreateTime = DateTime.Now;
            _newsrepository.Update(data);
            _db.Save();
        }
Beispiel #23
0
        public async Task <ActionResult> Index(int source, string sort)
        {
            FormData d = new FormData {
                Source = source, Sort = sort, Page = 1
            };
            NewsView news = new NewsView {
                Sources = await _getNews.GetSourceNewsAsync(), News = await _getNews.GetNewsAsync(sort, source), Pagination = await GetPaginationAsync(d), Source = d.Source, Sort = d.Sort
            };

            return(View(news));
        }
Beispiel #24
0
        public ActionResult Detail(int id = 1)
        {
            News news = NewsView.GetNewsById(id);

            if (news == null)
            {
                Response.Redirect("/Index");
                return(null);
            }

            ViewBag.news = news;
            return(View());
        }
Beispiel #25
0
        /// <summary>
        /// 获取下一篇文章
        /// </summary>
        /// <param name="news"></param>
        /// <param name="cls"></param>
        /// <returns></returns>
        public static News GetNextNews(News news, Class cls)
        {
            List <News> lresult = NewsView.GetModelList(string.Format("classID={0} and ID>{1} order by ID Asc", cls.ID, news.ID), 1);

            if (lresult.Count == 0)
            {
                return(null);
            }
            else
            {
                return(lresult.First());
            }
        }
Beispiel #26
0
        // GET: News/Edit/5
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            NewsView newsView = db.NewsView.Find(id);

            if (newsView == null)
            {
                return(HttpNotFound());
            }
            return(View(newsView));
        }
        public ActionResult News(int id = 1)
        {
            Pager <News> pager = new Pager <News>();

            string keyword = Request.QueryString["content"];
            IOrderedQueryable <News> news = NewsView.GetNewsByKeyword(keyword);

            ViewBag.page       = id;
            ViewBag.news       = pager.GetPage(news, id);
            ViewBag.pageNumber = pager.GetPageNumber(news);
            ViewBag.keyword    = keyword;

            return(View());
        }
Beispiel #28
0
        public async Task <ActionResult> Index(FormData data)
        {
            data = Helper.CheckFormData(data);
            Pagination p = await GetPaginationAsync(data);

            NewsView news = data != null
                ? new NewsView {
                Sources = await _getNews.GetSourceNewsAsync(), News = await _getNews.GetNewsAsync(data.Sort, data.Source, p.CurrentPage), Pagination = p, Source = data.Source, Sort = data.Sort
            }
                : new NewsView {
                Sources = await _getNews.GetSourceNewsAsync(), News = new List <News>(), Pagination = p, Source = 0, Sort = "date"
            };

            return(View(news));
        }
Beispiel #29
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (WS.RequestString("action") == "del")
            {
                int id = WS.RequestInt("id");
                if (id > 0)
                {
                    NewsView.Del(string.Format("id={0}", id));
                }
            }

            if (!IsPostBack)
            {
                BindList();
            }
        }
Beispiel #30
0
        public async Task <IActionResult> Create(NewsView nv, string[] checkbox)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            await _newsServices.AddNews(nv, checkbox);

            return(RedirectToAction(nameof(Index)));
            //if (ModelState.IsValid)
            //{
            //    await _newsServices.AddNews(nv, checkbox);
            //    return RedirectToAction(nameof(Create));
            //}
            //return View(nv);
        }
        // PAGES:

        private void CreateHomePage()
        {
            var result = SampleUtilities.CreateLocalizedPage(new Guid(SampleConstants.HomePageId), "Home", true, false, "en");

            if (result)
            {
                SampleUtilities.SetTemplateToLocalizedPage(new Guid(SampleConstants.HomePageId), new Guid(SampleConstants.EducationTemplateId), "en");

                var mainLayoutControl = new LayoutControl();
                var mainLayoutColumns = new List<ColumnDetails>();

                var mainLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 15, 0, 0),
                    PlaceholderId = "Left"
                };
                mainLayoutColumns.Add(mainLayoutColumn1);

                var mainLayoutColumn2 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 15),
                    PlaceholderId = "Right"
                };
                mainLayoutColumns.Add(mainLayoutColumn2);

                mainLayoutControl.Layout = SampleUtilities.GenerateLayoutTemplate(mainLayoutColumns, string.Empty);
                mainLayoutControl.ID = "Main";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), mainLayoutControl, "content", "50% + 50% (custom)", "en");

                //Left content

                #region Latest News Content Block

                var latestNewsBlockLayout = new LayoutControl();
                var latestNewsBlockLayoutColumns = new List<ColumnDetails>();

                var latestNewsBlockLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    PlaceholderId = "Content"
                };
                latestNewsBlockLayoutColumns.Add(latestNewsBlockLayoutColumn1);

                latestNewsBlockLayout.Layout = SampleUtilities.GenerateLayoutTemplate(latestNewsBlockLayoutColumns, string.Empty);
                latestNewsBlockLayout.ID = "LatestNewsBlockLayout";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), latestNewsBlockLayout, "Main_Left", "100%", "en");

                ContentBlockBase latestNewsBlock = new ContentBlockBase();
                latestNewsBlock.Html = @"<h1>Latest university news</h1>";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), latestNewsBlock, "LatestNewsBlockLayout_Content", "Content block", "en");

                #endregion

                #region Latest News View

                var latestNewsViewLayout = new LayoutControl();
                var latestNewsViewLayoutColumns = new List<ColumnDetails>();

                var latestNewsViewLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    PlaceholderId = "Content"
                };
                latestNewsViewLayoutColumns.Add(latestNewsViewLayoutColumn1);

                latestNewsViewLayout.Layout = SampleUtilities.GenerateLayoutTemplate(latestNewsViewLayoutColumns, string.Empty);
                latestNewsViewLayout.ID = "LatestNewsViewLayout";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), latestNewsViewLayout, "Main_Left", "100%", "en");

                NewsView latestNews = new NewsView();
                latestNews.MasterViewName = SampleConstants.EducationNewsSummaryContentViewName;
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), latestNews, "LatestNewsViewLayout_Content", "News", "en");

                #endregion

                #region Videos Content Block

                var videosBlockLayout = new LayoutControl();
                var videosBlockLayoutColumns = new List<ColumnDetails>();

                var videosBlockLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    PlaceholderId = "Content"
                };
                videosBlockLayoutColumns.Add(videosBlockLayoutColumn1);

                videosBlockLayout.Layout = SampleUtilities.GenerateLayoutTemplate(videosBlockLayoutColumns, string.Empty);
                videosBlockLayout.ID = "VideosBlockLayout";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), videosBlockLayout, "Main_Left", "100%", "en");

                ContentBlockBase videosBlock = new ContentBlockBase();
                videosBlock.Html = @"<h1>Videos</h1>";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), videosBlock, "VideosBlockLayout_Content", "Content block", "en");

                #endregion

                #region Videos view

                var videosViewLayout = new LayoutControl();
                var videosViewLayoutColumns = new List<ColumnDetails>();

                var videosViewLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    PlaceholderId = "Content"
                };
                videosViewLayoutColumns.Add(videosViewLayoutColumn1);

                videosViewLayout.Layout = SampleUtilities.GenerateLayoutTemplate(videosViewLayoutColumns, string.Empty);
                videosViewLayout.ID = "VideosViewLayout";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), videosViewLayout, "Main_Left", "100%", "en");

                VideosView videoGallery = new VideosView();
                videoGallery.MasterViewName = SampleConstants.VideosEducationFrontendLightBoxViewName;
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), videoGallery, "VideosViewLayout_Content", "Video gallery", "en");

                #endregion

                #region Meet us Image

                var meetUsImageLayout = new LayoutControl();
                var meetUsImageLayoutColumns = new List<ColumnDetails>();

                var meetUsImageLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    PlaceholderId = "Content"
                };
                meetUsImageLayoutColumns.Add(meetUsImageLayoutColumn1);

                meetUsImageLayout.Layout = SampleUtilities.GenerateLayoutTemplate(meetUsImageLayoutColumns, string.Empty);
                meetUsImageLayout.ID = "MeetUsImageLayout";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), meetUsImageLayout, "Main_Left", "100%", "en");

                ImageControl meetUsImage = new ImageControl();
                meetUsImage.CssClass = "sfimageWrp bottomImage";
                meetUsImage.ImageId = SampleUtilities.GetLocalizedImageId("1meet_us", "en");
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), meetUsImage, "MeetUsImageLayout_Content", "Image", "en");

                #endregion

                //Right content

                #region Upcoming events block

                var upcomingEventsBlockLayout = new LayoutControl();
                var upcomingEventsBlockLayoutColumns = new List<ColumnDetails>();

                var upcomingEventsBlockLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    PlaceholderId = "Content"
                };
                upcomingEventsBlockLayoutColumns.Add(upcomingEventsBlockLayoutColumn1);

                upcomingEventsBlockLayout.Layout = SampleUtilities.GenerateLayoutTemplate(upcomingEventsBlockLayoutColumns, string.Empty);
                upcomingEventsBlockLayout.ID = "UpcomingEventsBlockLayout";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), upcomingEventsBlockLayout, "Main_Right", "100%", "en");

                ContentBlockBase upcomingEventsBlock = new ContentBlockBase();
                upcomingEventsBlock.Html = @"<h1>Upcoming events</h1>";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), upcomingEventsBlock, "UpcomingEventsBlockLayout_Content", "Content block", "en");

                #endregion

                #region Upcoming events image

                var upcomingEventsImageLayout = new LayoutControl();
                var upcomingEventsImageLayoutColumns = new List<ColumnDetails>();

                var upcomingEventsImageLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    PlaceholderId = "Content"
                };
                upcomingEventsImageLayoutColumns.Add(upcomingEventsImageLayoutColumn1);

                upcomingEventsImageLayout.Layout = SampleUtilities.GenerateLayoutTemplate(upcomingEventsImageLayoutColumns, string.Empty);
                upcomingEventsImageLayout.ID = "UpcomingEventsImageLayout";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), upcomingEventsImageLayout, "Main_Right", "100%", "en");

                ImageControl upcomingEventsImage = new ImageControl();
                upcomingEventsImage.ImageId = SampleUtilities.GetLocalizedImageId("event", "en");
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), upcomingEventsImage, "UpcomingEventsImageLayout_Content", "Image", "en");

                #endregion

                #region Welcome block

                var welcomeBlockLayout = new LayoutControl();
                var welcomeBlockLayoutColumns = new List<ColumnDetails>();

                var welcomeBlockLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    PlaceholderId = "Content"
                };
                welcomeBlockLayoutColumns.Add(welcomeBlockLayoutColumn1);

                welcomeBlockLayout.Layout = SampleUtilities.GenerateLayoutTemplate(welcomeBlockLayoutColumns, string.Empty);
                welcomeBlockLayout.ID = "WelcomeBlockLayout";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), welcomeBlockLayout, "Main_Right", "100%", "en");

                ContentBlockBase welcomeBlock = new ContentBlockBase();
                Guid deanImageId = SampleUtilities.GetLocalizedImageId("dadean", "en");
                //string deanImageUrl = SampleUtilities.GetLocalizedImageDefaultUrl("dadean", "en");

                welcomeBlock.Html = string.Format(@"<h1>Welcome from the dean</h1> <p><img alt="""" src=""[images]{0}"" /><em>Welcome to Telerik International University. As dean of the university, I am proud of what we have to offer, and I am delighted that you are interested in learning more about us. Our region has a fascinating history, a creative arts community and fantastic recreational opportunities.</em><br /> <br /> </p>", deanImageId);
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), welcomeBlock, "WelcomeBlockLayout_Content", "Content block", "en");

                #endregion

                #region Photos block

                var photosBlockLayout = new LayoutControl();
                var photosBlockLayoutColumns = new List<ColumnDetails>();

                var photosBlockLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    PlaceholderId = "Content"
                };
                photosBlockLayoutColumns.Add(photosBlockLayoutColumn1);

                photosBlockLayout.Layout = SampleUtilities.GenerateLayoutTemplate(photosBlockLayoutColumns, string.Empty);
                photosBlockLayout.ID = "PhotosBlockLayout";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), photosBlockLayout, "Main_Right", "100%", "en");

                ContentBlockBase photosBlock = new ContentBlockBase();
                photosBlock.Html = @"<h1>Photos</h1>";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), photosBlock, "PhotosBlockLayout_Content", "Content block", "en");

                #endregion

                #region Images view

                var photosGalleryLayout = new LayoutControl();
                var photosGalleryLayoutColumns = new List<ColumnDetails>();

                var photosGalleryLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    PlaceholderId = "Content"
                };
                photosGalleryLayoutColumns.Add(photosGalleryLayoutColumn1);

                photosGalleryLayout.Layout = SampleUtilities.GenerateLayoutTemplate(photosGalleryLayoutColumns, string.Empty);
                photosGalleryLayout.ID = "PhotosGalleryLayout";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), photosGalleryLayout, "Main_Right", "100%", "en");

                ImagesView gallery = new ImagesView();
                gallery.MasterViewName = "ImagesFrontendEducationThumbnailsListLightBox";

                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), gallery, "PhotosGalleryLayout_Content", "Images gallery", "en");

                #endregion

                #region Announcements list

                var announcementsListLayout = new LayoutControl();
                var announcementsListLayoutColumns = new List<ColumnDetails>();

                var announcementsListLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    PlaceholderId = "Content"
                };
                announcementsListLayoutColumns.Add(announcementsListLayoutColumn1);

                announcementsListLayout.Layout = SampleUtilities.GenerateLayoutTemplate(announcementsListLayoutColumns, string.Empty);
                announcementsListLayout.ID = "AnnouncementsListLayout";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), announcementsListLayout, "Main_Right", "100%", "en");

                Telerik.Sitefinity.Modules.Lists.Web.UI.ListView announcements = new Telerik.Sitefinity.Modules.Lists.Web.UI.ListView();
                announcements.Mode = ListViewMode.Expanded;
                announcements.SelectedListText = "Announcements";
                announcements.SelectedListIds = string.Format(@"[""{0}""]", SampleConstants.AnnouncementsListId);
                announcements.CurrentMasterTemplateId = new Guid(SampleUtilities.GetControlTemplateKey(typeof(ExpandedListItemsMasterView), SampleConstants.EducationAnnouncementsTemplateName));

                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), announcements, "AnnouncementsListLayout_Content", "List items", "en");
                #endregion
            }

            result = SampleUtilities.CreateLocalizedPage(new Guid(SampleConstants.HomePageId), "Startseite", false, false, "de");

            if (result)
            {
                SampleUtilities.SetTemplateToLocalizedPage(new Guid(SampleConstants.HomePageId), new Guid(SampleConstants.EducationTemplateId), "de");

                var mainLayoutControl = new LayoutControl();
                var mainLayoutColumns = new List<ColumnDetails>();

                var mainLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 15, 0, 0),
                    PlaceholderId = "Left"
                };
                mainLayoutColumns.Add(mainLayoutColumn1);

                var mainLayoutColumn2 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 15),
                    PlaceholderId = "Right"
                };
                mainLayoutColumns.Add(mainLayoutColumn2);

                mainLayoutControl.Layout = SampleUtilities.GenerateLayoutTemplate(mainLayoutColumns, string.Empty);
                mainLayoutControl.ID = "Main";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), mainLayoutControl, "content", "50% + 50% (custom)", "de");

                //Lates news block
                ContentBlockBase latestNewsBlock = new ContentBlockBase();
                latestNewsBlock.Html = @"<h1>Universit&auml;tsnachrichten</h1>";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), latestNewsBlock, "Main_Left", "Content block", "de");

                //Latest  news view
                NewsView latestNews = new NewsView();
                latestNews.MasterViewName = SampleConstants.EducationNewsSummaryContentViewName;
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), latestNews, "Main_Left", "News", "de");

                //Meet us image
                ImageControl meetUsImage = new ImageControl();
                meetUsImage.ImageId = SampleUtilities.GetLocalizedImageId("besuchen", "de");
                meetUsImage.CssClass = "sfimageWrp bottomImage";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), meetUsImage, "Main_Left", "Image", "de");

                //Upcoming events
                ContentBlockBase upcomingEventsBlock = new ContentBlockBase();
                upcomingEventsBlock.Html = @"<h1>Veranstaltungen</h1>";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), upcomingEventsBlock, "Main_Right", "Content block", "de");

                //Upcoming events image
                ImageControl upcomingEventsImage = new ImageControl();
                upcomingEventsImage.ImageId = SampleUtilities.GetLocalizedImageId("event", "de");
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), upcomingEventsImage, "Main_Right", "Image", "de");

                //Welcome block
                ContentBlockBase welcomeBlock = new ContentBlockBase();
                Guid deanImageId = SampleUtilities.GetLocalizedImageId("dadean", "de");

                welcomeBlock.Html = string.Format(@"<h1>Begr&uuml;&szlig;ung des Dekans</h1> <p><img alt="""" src=""[images]{0}"" /><em>Herzlich willkommen auf die Telerik International University. Als Dekan der Universit&auml;t bin ich stolz auf das, was wir zu bieten haben, und ich freue mich, dass Sie an weiteren Informationen &uuml;ber uns interessiert sind. Unsere Region hat eine faszinierende Geschichte, eine kreative Kunst Community und fantastische M&ouml;glichkeiten zur Freizeitgestaltung.</em><br /><br /></p>",
                    deanImageId);
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), welcomeBlock, "Main_Right", "Content block", "de");

                Telerik.Sitefinity.Modules.Lists.Web.UI.ListView announcements = new Telerik.Sitefinity.Modules.Lists.Web.UI.ListView();
                announcements.Mode = ListViewMode.Expanded;
                announcements.SelectedListText = "Announcements";
                announcements.SelectedListIds = string.Format(@"[""{0}""]", SampleConstants.AnnouncementsListId);
                announcements.CurrentMasterTemplateId = new Guid(SampleUtilities.GetControlTemplateKey(typeof(ExpandedListItemsMasterView), SampleConstants.EducationAnnouncementsTemplateName));

                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.HomePageId), announcements, "Main_Right", "List items", "de");
            }
        }
        private void CreateNewsPage()
        {
            var result = SampleUtilities.CreateLocalizedPage(new Guid(SampleConstants.NewsPageId), "News", new Guid(SampleConstants.AboutTheUniversityPageId), "en");

            if (result)
            {
                SampleUtilities.SetTemplateToLocalizedPage(new Guid(SampleConstants.NewsPageId), new Guid(SampleConstants.EducationTemplateId), "en");

                ContentBlockBase newsBlock = new ContentBlockBase();
                newsBlock.Html = @"<h2>News</h2>";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.NewsPageId), newsBlock, "content", "Content block", "en");

                var mainLayoutControl = new LayoutControl();
                List<ColumnDetails> mainLayoutColumns = new List<ColumnDetails>();
                ColumnDetails mainLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    ColumnWidthPercentage = 25,
                    PlaceholderId = "Left"
                };
                mainLayoutColumns.Add(mainLayoutColumn1);
                ColumnDetails mainLayoutColumn2 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 12),
                    ColumnWidthPercentage = 75,
                    PlaceholderId = "Right"
                };
                mainLayoutColumns.Add(mainLayoutColumn2);

                mainLayoutControl.Layout = SampleUtilities.GenerateLayoutTemplate(mainLayoutColumns, string.Empty);
                mainLayoutControl.ID = "Main";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.NewsPageId), mainLayoutControl, "content", "25% + 75%", "en");

                var navigationControl = new NavigationControl();
                navigationControl.NavigationMode = NavigationModes.VerticalSimple;
                navigationControl.SelectionMode = PageSelectionModes.CurrentPageSiblings;
                navigationControl.Skin = "left";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.NewsPageId), navigationControl, "Main_Left", "Navigation", "en");

                NewsView latestNews = new NewsView();
                latestNews.MasterViewName = SampleConstants.EducationNewsSummaryContentViewName;
                latestNews.DetailViewName = SampleConstants.EducationNewsItemDetailView;
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.NewsPageId), latestNews, "Main_Right", "News", "en");
            }

            result = SampleUtilities.CreateLocalizedPage(new Guid(SampleConstants.NewsPageId), "Nachrichten", "de");

            if (result)
            {
                SampleUtilities.SetTemplateToLocalizedPage(new Guid(SampleConstants.NewsPageId), new Guid(SampleConstants.EducationTemplateId), "de");

                ContentBlockBase newsBlock = new ContentBlockBase();
                newsBlock.Html = @"<h2>Nachrichten</h2>";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.NewsPageId), newsBlock, "content", "Content block", "de");

                var mainLayoutControl = new LayoutControl();
                List<ColumnDetails> mainLayoutColumns = new List<ColumnDetails>();
                ColumnDetails mainLayoutColumn1 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 0),
                    ColumnWidthPercentage = 25,
                    PlaceholderId = "Left"
                };
                mainLayoutColumns.Add(mainLayoutColumn1);
                ColumnDetails mainLayoutColumn2 = new ColumnDetails()
                {
                    ColumnSpaces = new ColumnSpaces(0, 0, 0, 12),
                    ColumnWidthPercentage = 75,
                    PlaceholderId = "Right"
                };
                mainLayoutColumns.Add(mainLayoutColumn2);

                mainLayoutControl.Layout = SampleUtilities.GenerateLayoutTemplate(mainLayoutColumns, string.Empty);
                mainLayoutControl.ID = "Main";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.NewsPageId), mainLayoutControl, "content", "25% + 75%", "de");

                var navigationControl = new NavigationControl();
                navigationControl.NavigationMode = NavigationModes.VerticalSimple;
                navigationControl.SelectionMode = PageSelectionModes.CurrentPageSiblings;
                navigationControl.Skin = "left";
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.NewsPageId), navigationControl, "Main_Left", "Navigation", "de");

                NewsView latestNews = new NewsView();
                latestNews.MasterViewName = SampleConstants.EducationNewsSummaryContentViewName;
                latestNews.DetailViewName = SampleConstants.EducationNewsItemDetailView;
                SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.NewsPageId), latestNews, "Main_Right", "News", "de");
            }
        }
        public HomeMasterView(HomeViewModel viewModel)
        {
            this.Icon = "slideout.png";
            BindingContext = viewModel;

            var layout = new StackLayout { Spacing = 0 };

            var label = new ContentView {
                Padding = new Thickness(10, 36, 0, 5),
                BackgroundColor = Color.Transparent,
                Content = new Label {
                    Text = "Menu",
                    Font = Font.SystemFontOfSize (NamedSize.Medium)
                }
            };

            layout.Children.Add(label);

            var listView = new ListView ();

            var cell = new DataTemplate(typeof(ListImageCell));

            cell.SetBinding (TextCell.TextProperty, HomeViewModel.TitlePropertyName);
            cell.SetBinding (ImageCell.ImageSourceProperty, "Icon");

            listView.ItemTemplate = cell;

            listView.ItemsSource = viewModel.MenuItems;
            if (news == null)
                news = new NewsView ();

            PageSelection = about;
            //Change to the correct page
            listView.ItemSelected += (sender, args) =>
            {
                var menuItem = listView.SelectedItem as MenuItem;
                menuType = menuItem.MenuType;
                switch(menuItem.MenuType){
                    case MenuType.About:
                        if(about == null)
                            about = new AboutView();

                        PageSelection = about;
                        break;
                    case MenuType.Groups:
                        if(groupMatches == null)
                            groupMatches = new GroupMatchView();
                        PageSelection = groupMatches;
                        break;
                    case MenuType.Knockout:
                        if(knockoutMatches == null)
                            knockoutMatches = new KnockoutMatchView();

                        PageSelection = knockoutMatches;
                        break;
                    case MenuType.Map:
                        if(map == null)
                            map =new MapView();
                        PageSelection = map;
                        break;
                    case MenuType.News:
                        if(news == null)
                            news = new NewsView();

                        PageSelection = news;
                        break;
                    case MenuType.Teams:
                        if(teams == null)
                            teams = new TeamsView();
                        PageSelection = teams;
                        break;
                    case MenuType.Podcast:
                        if(podcast ==null)
                            podcast = new PodcastView();

                        PageSelection = podcast;
                        break;
                }
            };

            listView.SelectedItem = viewModel.MenuItems[0];
            layout.Children.Add(listView);

            Content = layout;
        }