public List <ConfPage> GetAllConfiguredPages() { var list = new List <ConfPage>(); var pages = _operationalDataContext.ConfigurationViews.ToList(); if (pages != null && pages.Any()) { foreach (var item in pages) { bool addPage = true; bool addDetails = true; var pge = new ConfPage(); pge.PageId = (int)item.PageId; pge.PageName = item.Name; pge.LayoutId = item.LayoutId; pge.PageDetails = new ObservableCollection <ConfPageDetails>(); if (list.Any(x => x.PageId == item.PageId)) { pge = list.FirstOrDefault(x => x.PageId == item.PageId); addPage = false; } var pgeDetail = new ConfPageDetails(); pgeDetail.PlaceHolderLayoutId = (int)item.LayoutPlaceHolderId; pgeDetail.UserControl = new ConfPageDetailsControl(); pgeDetail.UserControl.UserControlId = item.UserControlId; pgeDetail.UserControl.UserControlName = item.UserControlName; pgeDetail.PlaceHolderName = item.PlaceHolderName; if (pge.PageDetails.Any(x => x.PlaceHolderLayoutId == (int)item.LayoutPlaceHolderId)) { pgeDetail = pge.PageDetails.FirstOrDefault(x => x.PlaceHolderLayoutId == (int)item.LayoutPlaceHolderId); addDetails = false; } if (item.MessageTypeId > -1 && !pgeDetail.UserControl.SubscriberMessages.Any(x => x.UserControlMessageTypeId == item.MessageTypeId)) { pgeDetail.UserControl.SubscriberMessages.Add(new MessageTypes() { UserControlMessageTypeId = item.MessageTypeId, MessageTypeName = item.SubscriberMessage, IsSelected = true }); } if (item.PublisherMessageTypeId > -1 && !pgeDetail.UserControl.PublisherMessages.Any(x => x.UserControlMessageTypeId == item.PublisherMessageTypeId)) { pgeDetail.UserControl.PublisherMessages.Add(new MessageTypes() { UserControlMessageTypeId = item.PublisherMessageTypeId, MessageTypeName = item.PublisherMessage, IsSelected = true, Expression = item.PublisherExpression }); } if (addDetails) { pge.PageDetails.Add(pgeDetail); } if (addPage) { list.Add(pge); } } } return(list); }
public bool SaveConfiguration(ConfPage page) { var pageEntity = new Conf_Pages(); if (page.PageId.HasValue) { pageEntity = _operationalDataContext.Conf_Pages.FirstOrDefault(x => x.PageId == page.PageId.Value); } if (pageEntity != null) { pageEntity.Name = page.PageName; if (pageEntity.Conf_UsersPages == null) { pageEntity.Conf_UsersPages = new Collection <Conf_UsersPages>(); } if (pageEntity.Conf_UsersPages.FirstOrDefault(x => x.UserId == 1) == null) { pageEntity.Conf_UsersPages.Add(new Conf_UsersPages { UserId = 1 }); } if (page.PageId.HasValue) { var oldDetails = _operationalDataContext.Conf_PageDetails.Where(x => x.PageId == page.PageId.Value); var oldSubsMessages = _operationalDataContext.Conf_ControlPageMessages.Where(x => oldDetails.Any(y => y.PageDetailsId == x.PageDetailsId)); var oldPublishMessages = _operationalDataContext.Conf_ControlPagePublisherMessages.Where(x => oldDetails.Any(y => y.PageDetailsId == x.PageDetailsId)); _operationalDataContext.Conf_ControlPageMessages.RemoveRange(oldSubsMessages); _operationalDataContext.Conf_ControlPagePublisherMessages.RemoveRange(oldPublishMessages); _operationalDataContext.Conf_PageDetails.RemoveRange(oldDetails); } pageEntity.Conf_PageDetails = new Collection <Conf_PageDetails>(); foreach (var item in page.PageDetails) { var pageDetail = new Conf_PageDetails(); pageDetail.UserControlId = item.UserControl.UserControlId; pageDetail.LayoutPlaceHolderId = item.PlaceHolderLayoutId; pageDetail.Conf_ControlPageMessages = new Collection <Conf_ControlPageMessages>(); pageDetail.Conf_ControlPagePublisherMessages = new Collection <Conf_ControlPagePublisherMessages>(); if (item.UserControl.SubscriberMessages != null && item.UserControl.SubscriberMessages.Any(x => x.IsSelected)) { foreach (var msg in item.UserControl.SubscriberMessages.Where(x => x.IsSelected)) { pageDetail.Conf_ControlPageMessages.Add(new Conf_ControlPageMessages() { UserControlMessageId = msg.UserControlMessageTypeId }); } } if (item.UserControl.PublisherMessages != null && item.UserControl.PublisherMessages.Any(x => x.IsSelected)) { foreach (var msg in item.UserControl.PublisherMessages.Where(x => x.IsSelected)) { pageDetail.Conf_ControlPagePublisherMessages.Add(new Conf_ControlPagePublisherMessages() { UserControlPublisherMessageId = msg.UserControlMessageTypeId, PublisherExpression = msg.Expression }); } } pageEntity.Conf_PageDetails.Add(pageDetail); if (!page.PageId.HasValue) { _operationalDataContext.Conf_Pages.Add(pageEntity); } } } var count = _operationalDataContext.SaveChanges(); return(count > 0); }
public bool SaveConfiguration(ConfPage Page) { return(new ConfigurationDAL().SaveConfiguration(Page)); }