Example #1
0
 public PageDto Add(PageDto dto)
 {
     var entity = new Page() { Name = dto.Name };
     this.uow.Pages.Add(entity);
     this.uow.SaveChanges();
     return new PageDto(entity);
 }
Example #2
0
        private void Validate(Models.Page record)
        {
            // add any code to check for validity
            //ModelState.AddModelError("Record", "Suchandsuch cannot be whatever.");
            string url = record.URLRewriteTitle;

            //if (!IsRouteFree(url)) {
            //  ModelState.AddModelError("URLRewriteTitle", "URL is already in use.");
            //}
            if (url.IsNotBlank())
            {
#if PageRevisions
                var sql = new Sql("select * from page where URLRewriteTitle=", url.Sqlize_Text(), " and RevisionStatus = ", "Live".SqlizeText(), "");
#else
                var sql = new Sql("select * from page where URLRewriteTitle=", url.Sqlize_Text());
#endif
                if (!record.IsNewRecord)
                {
                    sql.Add("and pageid<>", record.PageID);
                }
                if (PageList.Load(sql).Active.Count > 0)
                {
                    ModelState.AddModelError("URLRewriteTitle", "URL is already in use.");
                }
            }
        }
            public ViewModel(Models.Page page)
            {
                // check for admin preview
                if (Web.Request["preview"] == "adminonly")
                {
                    // force login if not already
                    if (!Security.IsLoggedIn)
                    {
                        throw new Beweb.ProgrammingErrorException("force login required");
                    }
                }
                else if (!page.GetIsActive())
                {
                    if (!Security.IsLoggedIn)
                    {
                        throw new Beweb.BadUrlException("Page not available with ID of [" + page.ID + "]");
                    }
                }

                //page.CheckUserAccess();           // uncomment this if using page user access control

                TrackingBreadcrumb.Current.AddBreadcrumb(1, page.Title);
#if pages
                ContentPage = page;
#endif
            }
Example #4
0
 /// <summary>
 /// Create a nav item from a Page.
 /// </summary>
 public NavItem(Page page)
 {
     PageID        = page.ID;
     Title         = page.GetNavTitle();
     Url           = page.GetFullUrl();
     PageCode      = page.PageCode;
     Page          = page;
     IsExternalUrl = page.LinkUrlIsExternal;
 }
Example #5
0
        private static Models.Page RemoveReference(this Models.Page item)
        {
            var obj = new Models.Page();

            if (item != null)
            {
                obj.Id       = item.Id;
                obj.Name     = item.Name;
                obj.IsActive = item.IsActive;
            }
            return(obj);
        }
Example #6
0
        //private bool IsRouteFree(string url) {
        //  // make sure URL is unique and does not conflict with a controller
        //  foreach (Route route in RouteTable.Routes) {
        //    if (url == route.Defaults["controller"].ToString().ToLower())
        //      return false;
        //    if (url == route.Defaults["action"].ToString().ToLower())
        //      return false;
        //  }
        //  return true;
        //}


        private void Save(Models.Page record, bool isNew)
        {
            // add any code to update other fields/tables here

            //record.Fields.Picture.MetaData = record.GetMetaData();
            record.Save();
            //record.Resources.Save();
            CheckLock(record);
            lockobj.UnLockTable(record.GetTableName(), record.ID);
            PageCache.Rebuild();
#if AutocompletePhrase
            AutocompletePhrase.AddPagePhrase(record);
#endif
            // save subform or related checkboxes here eg record.Lines.Save();
        }
Example #7
0
        protected ActionResult ProcessForm(Models.Page record)
        {
            try {
                record.UpdateFromRequest();
                //record.RelatedPages.UpdateFromRequestSubForm();
                // read subform or related checkboxes here eg record.Lines.UpdateFromRequest();
                //ifsubform: record.example.UpdateFromRequest();
#if PageRevisions
                record.RevisionStatus = "Live";
#endif

                Validate(record);
                if (ModelState.IsValid)
                {
                    Save(record, record.IsNewRecord);
                    record.RelatedPages.Save();
                    Web.InfoMessage += "Page " + record.GetName() + " saved.";
                }
            } catch (UserErrorException e) {
                ModelState.AddModelError("Record", e.Message);
            }

            if (!ModelState.IsValid)
            {
                // invalid so redisplay form with validation message(s)
#if PageRevisions
                return(View("PageEditRevisions", record));
#else
                return(View("PageEdit", record));
#endif
            }
            else if (Web.Request["SaveAndRefreshButton"] != null)
            {
                return(RedirectToEdit(record.ID));
            }
            else if (Web.Request["DuplicateButton"] != null)
            {
                var newRecord = new Models.Page();
                newRecord.UpdateFrom(record);
                newRecord.Save();
                Web.InfoMessage += "Copy of Page " + record.GetName() + " created. You are now editing the new copy.";
                return(RedirectToEdit(newRecord.ID));
            }
            else
            {
                return(RedirectToReturnPage());
            }
        }
Example #8
0
        public ActionResult SubNav(string sectionCode, Models.Page page)
        {
            var data = new NavViewModel();
            //var sql = new Sql("where ParentPageID=", page.ID);

            var sql = new Sql();

            if (page.ParentPageID != null)
            {
                sql.Add("where ParentPageID=", page.ParentPageID.Value);
            }
            else
            {
                sql.Add("where ParentPageID=", page.ID);
            }

            sql.AndIsActive <Page>();
            var pages = PageList.Load(sql);

            foreach (var childPage in pages)
            {
                var item = new NavItem(childPage);
                if (childPage.ID == page.ID)
                {
                    item.IsSelected = true;
                }

                data.NavItems.Add(item);
            }

            int selectedItemIndex = data.NavItems.FindIndex(item => item.IsSelected);

            if (selectedItemIndex > -1)
            {
                data.NavItems[selectedItemIndex].CssClass = "active";
            }

            return(View(data));
        }
Example #9
0
        private List <NavItem> GetChildren(Models.Page page, string sectionCode)
        {
            List <NavItem> children = new List <NavItem>();

            // example code: how to add records from other tables as children in the nav
            //if(page.PageCode.ToLower() == "flights"){
            //  foreach (var region in Region.LoadRegionsWithCurrentDeals("flights")){
            //    item.SubPages.Add(new NavItem{Title=region.Name, Url = region.GetUrl()});
            //  }
            //}
            //if(page.PageCode.ToLower() == "holidays"){
            //  foreach (var destination in Destination.LoadDestinationsWithCurrentDeals("holidays")){
            //    item.SubPages.Add(new NavItem{Title=destination.Title, Url = destination.GetUrl()});
            //  }
            //}
            foreach (var childPage in page.ChildPages.Active)
            {
                var navItem = new NavItem(childPage);
                children.Add(navItem);
                navItem.SubPages = GetChildren(childPage, sectionCode);
            }
            return(children);
        }
Example #10
0
        /// <summary>
        /// Populates defaults and opens edit form to add new record
        /// GET: /Admin/Page/Create
        /// </summary>
        public ActionResult Create()
        {
            Breadcrumbs.Current.AddBreadcrumb(3, "Add Page");
            var record = new Models.Page();

            if (Web.Request["ParentPageID"] != null)
            {
                record.ParentPageID = Web.Request["ParentPageID"].ToInt(null);
            }

            if (Web.Request["code"].IsNotBlank())
            {
                var parent = Models.Page.LoadByPageCode(Web.Request["code"]);
                record.ParentPageID = parent.ID;
            }
            record.TemplateCode = ListHelper.GetDefaultTemplateCode(record);
            // any default values can be set here or in partial class Page.InitDefaults()
#if PageRevisions
            return(View("PageEditRevisions", record));
#else
            return(View("PageEdit", record));
#endif
        }
Example #11
0
        public void CriaArquivosZip()
        {
            //nomes padrão
            var nomePastaArquivos = "attachments";
            var nomePastaPaginas = "pages";
            var nomePastaShared = "shared";
            var nomePastaCss = "css";
            var nomePastaJs = "js";
            var nomePastaImages = "images";
            var nomeArquivoThumb = "thumb.jpg";

            //diretorios padrão
            var diretorioRaiz = this.GetDiretorioModeloIpadArquivosFisico();
            var diretorioArquivos = diretorioRaiz + nomePastaArquivos + @"\";
            var diretorioPaginas = diretorioRaiz + nomePastaPaginas + @"\";
            var diretorioShared = diretorioRaiz + nomePastaPaginas + @"\" + nomePastaShared + @"\";
            var diretorioCss = diretorioRaiz + nomePastaPaginas + @"\" + nomePastaCss + @"\";
            var diretorioJs = diretorioRaiz + nomePastaPaginas + @"\" + nomePastaJs + @"\";
            var diretorioImages = diretorioRaiz + nomePastaPaginas + @"\" + nomePastaImages + @"\";

            Util.Arquivo.DeleteDirectoryIfExists(diretorioRaiz, true);

            // keys do arquivo info.plist
            var keysAttachments = string.Empty;
            List<Page> keysPages = new List<Page>();

            Util.Arquivo.CreateDirectoryIfNotExists(diretorioRaiz);

            #region gera HTMLs

                // SE FOR UM VA - APRESENTAÇÃO
                if (this.ProdutoVaCategoria.Tipo == (char)ProdutoVaCategoria.EnumTipo.Apresentacao)
                {
                    //cria diretorio para as paginas do VA
                    Util.Arquivo.CreateDirectoryIfNotExists(diretorioPaginas);

                    //cria diretorio para os arquivos compartilhados do HTML
                    Util.Arquivo.CreateDirectoryIfNotExists(diretorioShared);
                    Util.Arquivo.CreateDirectoryIfNotExists(diretorioCss);
                    Util.Arquivo.CreateDirectoryIfNotExists(diretorioJs);
                    Util.Arquivo.CreateDirectoryIfNotExists(diretorioImages);

                    //////////////////////////////////////////
                    #region CRIA THUMB DO VA SE POSSIVEL

                    var primeiroSlide = this.ProdutoVaSlides.OrderBy(s => s.Ordem).FirstOrDefault();

                    if (primeiroSlide.Tipo == ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg)
                    {
                        //coloca o thumb do primeiro slide como thumb do VA
                        var caminhoThumb = Util.Url.GetCaminhoFisico(primeiroSlide.ProdutoVaSlideArquivos.First().GetCaminhoArquivo(ProdutoVaSlideArquivo.EnumTamanho.Thumb, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg));
                        File.Copy(caminhoThumb, diretorioRaiz + nomeArquivoThumb, true);
                    }
                    else if (primeiroSlide.Tipo == ProdutoVaSlideArquivo.EnumTipoArquivo.Zip)
                    {
                        //coloca o thumb do primeiro slide como thumb do VA
                        var caminhoThumb = Util.Url.GetCaminhoFisico(primeiroSlide.ProdutoVaSlideArquivos.First().GetCaminhoArquivo(ProdutoVaSlideArquivo.EnumTamanho.Thumb));

                        if (File.Exists(caminhoThumb))
                        {
                            File.Copy(caminhoThumb, diretorioRaiz + nomeArquivoThumb, true);
                        }
                    }
                    else if (primeiroSlide.Tipo == ProdutoVaSlideArquivo.EnumTipoArquivo.Mp4)
                    {
                        //coloca o thumb do primeiro slide como thumb do VA
                        var caminhoThumb = Util.Url.GetCaminhoFisico(primeiroSlide.ProdutoVaSlideArquivos.First().GetCaminhoArquivo(ProdutoVaSlideArquivo.EnumTamanho.Thumb, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg));

                        if (File.Exists(caminhoThumb))
                        {
                            File.Copy(caminhoThumb, diretorioRaiz + nomeArquivoThumb, true);
                        }
                    }

                    #endregion
                    ////////////////////////////////////////

                    //copia o que tiver na pasta shared da pasta modelo para a pasta shared do VA
                    foreach (var arquivo in Directory.GetFiles(Util.Url.GetCaminhoFisico(Util.Sistema.AppSettings.Diretorios.DiretorioModelos) + @"shared"))
                    {
                        File.Copy(arquivo, diretorioShared + Path.GetFileName(arquivo), true);
                    }

                    var modeloPagina = Util.Arquivo.LerArquivo(Util.Url.GetCaminhoFisico(Util.Sistema.AppSettings.Diretorios.DiretorioModelos) + @"modelo_pagina.html");

                    var modeloPaginaFarmacia = Util.Arquivo.LerArquivo(Util.Url.GetCaminhoFisico(Util.Sistema.AppSettings.Diretorios.DiretorioModelos + "pharmacy/index.html"));

                    var cont = 0;

                    #region cria as paginas do VA

                    var slides = this.ProdutoVaSlides;

                    foreach (var slide in slides.OrderBy(s => s.Ordem))
                    {
                        cont++;
                        var paginaAtual = "page" + cont;
                        var arquivo = slide.ProdutoVaSlideArquivos.First();

                        var diretorioPaginaAtual = diretorioPaginas + paginaAtual + "\\";

                        //cria pasta da pagina
                        Util.Arquivo.CreateDirectoryIfNotExists(diretorioPaginaAtual);

                        var isHTML = false;
                        var isVideo = false;

                        #region cria thumb

                        if (slide.Tipo == ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg)
                        {
                            //coloca o thumb do slide como thumb do VA
                            var caminhoThumb = Util.Url.GetCaminhoFisico(slide.ProdutoVaSlideArquivos.First().GetCaminhoArquivo(ProdutoVaSlideArquivo.EnumTamanho.Thumb, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg));
                            File.Copy(caminhoThumb, diretorioPaginaAtual + "thumb.jpg", true);
                        }
                        else if (slide.Tipo == ProdutoVaSlideArquivo.EnumTipoArquivo.Zip)
                        {
                            //coloca o thumb do slide como thumb do VA
                            var caminhoThumb = Util.Url.GetCaminhoFisico(slide.ProdutoVaSlideArquivos.First().GetCaminhoArquivo(ProdutoVaSlideArquivo.EnumTamanho.Thumb));

                            if (File.Exists(caminhoThumb))
                            {
                                File.Copy(caminhoThumb, diretorioPaginaAtual + "thumb.jpg", true);
                            }
                        }
                        else if (slide.Tipo == ProdutoVaSlideArquivo.EnumTipoArquivo.Mp4)
                        {
                            //coloca o thumb do slide como thumb do VA
                            var caminhoThumb = Util.Url.GetCaminhoFisico(slide.ProdutoVaSlideArquivos.First().GetCaminhoArquivo(ProdutoVaSlideArquivo.EnumTamanho.Thumb, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg));

                            if (File.Exists(caminhoThumb))
                            {
                                File.Copy(caminhoThumb, diretorioPaginaAtual + "thumb.jpg", true);
                            }
                        }

                        #endregion

                        #region cria pagina

                        if (arquivo.Tipo == (char)ProdutoVaSlideArquivo.EnumTipoArquivo.Zip)
                        { //zip

                            isHTML = true;

                            //copia SHARED

                            if (Directory.Exists(this.GetDiretorioSharedFisico()))
                            {
                                Util.Arquivo.CopyDirectoryIfExists(this.GetDiretorioSharedFisico(), diretorioShared, true);

                                //copia o que tiver na pasta shared do VA para a pasta shared do VA
                                //foreach (var arquivoShared in Directory.GetFiles(this.GetDiretorioSharedFisico())){

                                //    File.Copy(arquivoShared, diretorioShared + Path.GetFileName(arquivoShared), true);

                                //}
                            }

                            //copia CSS

                            if (Directory.Exists(this.GetDiretorioCssFisico()))
                            {
                                Util.Arquivo.CopyDirectoryIfExists(this.GetDiretorioCssFisico(), diretorioCss, true);

                                //copia o que tiver na pasta shared do VA para a pasta shared do VA
                                //foreach (var arquivoCss in Directory.GetFiles(this.GetDiretorioCssFisico()))
                                //{
                                //    File.Copy(arquivoCss, diretorioCss + Path.GetFileName(arquivoCss), true);
                                //}
                            }

                            //copia JS

                            if (Directory.Exists(this.GetDiretorioJsFisico()))
                            {
                                Util.Arquivo.CopyDirectoryIfExists(this.GetDiretorioJsFisico(), diretorioJs, true);

                                //copia o que tiver na pasta shared do VA para a pasta shared do VA
                                //foreach (var arquivoJS in Directory.GetFiles(this.GetDiretorioJsFisico()))
                                //{

                                //    File.Copy(arquivoJS, diretorioJs + Path.GetFileName(arquivoJS), true);

                                //}
                            }

                            //copia IMAGES

                            if (Directory.Exists(this.GetDiretorioImagesFisico()))
                            {
                                Util.Arquivo.CopyDirectoryIfExists(this.GetDiretorioImagesFisico(), diretorioImages, true);

                                //copia o que tiver na pasta shared do VA para a pasta shared do VA
                                //foreach (var arquivoImages in Directory.GetFiles(this.GetDiretorioImagesFisico()))
                                //{

                                //    File.Copy(arquivoImages, diretorioImages + Path.GetFileName(arquivoImages), true);

                                //}
                            }

                            var diretorioArquivosPagina = Util.Url.GetCaminhoFisico(this.GetDiretorio() + slide.Id);

                            if (Directory.Exists(diretorioArquivosPagina))
                            {
                                //copia o que tiver na pasta do slide do VA para a pasta do slide do VA do Ipad
                                foreach (var arquivoPagina in Directory.GetFiles(diretorioArquivosPagina))
                                {

                                    File.Copy(arquivoPagina, diretorioPaginas + paginaAtual + "\\" + Path.GetFileName(arquivoPagina), true);

                                }
                            }

                        }
                        else
                        {

                            //copia imagem para a pasta
                            File.Copy(Util.Url.GetCaminhoFisico(arquivo.GetCaminhoArquivo()), diretorioPaginas + paginaAtual + "\\" + arquivo.GetNomeArquivo(), true);

                            //cria pagina
                            File.Delete(diretorioPaginas + paginaAtual + "\\" + "index.html");
                            FileStream fsPagina = File.Open(diretorioPaginas + paginaAtual + "\\" + "index.html", FileMode.Create, FileAccess.Write);

                            StreamWriter swPagina = new StreamWriter(fsPagina, System.Text.Encoding.UTF8);

                            var conteudoArquivo = String.Empty;

                            if (arquivo.Tipo == (char)ProdutoVaSlideArquivo.EnumTipoArquivo.Mp4)
                            { //video

                                //copia imagem do video para a pasta
                                File.Copy(Util.Url.GetCaminhoFisico(arquivo.GetCaminhoArquivo(ProdutoVaSlideArquivo.EnumTamanho.Normal, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg)), diretorioPaginas + paginaAtual + "\\" + arquivo.GetNomeArquivo(ProdutoVaSlideArquivo.EnumTamanho.Normal, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg), true);

                                isVideo = true;

                                //<video id='video_gp_"+arquivo.Id+"' controls='controls' width='100%' height='100%'><source src=\"" + arquivo.GetNomeArquivo() + "\" /></video>
                                conteudoArquivo = modeloPagina.ReplaceChaves(new
                                {

                                    titulo = "Página " + cont,
                                    conteudo = "<div id='divVideo_gp_" + arquivo.Id + "' style='width: 100%; height: 100%;'></div>",
                                    scriptStart =
                                        @"<script type='text/javascript' charset='utf-8'>
                                                    function startAnimation() {
                                                                videoDiv = document.getElementById('divVideo_gp_" + arquivo.Id + @"');
                                                                video = document.createElement('video');
                                                                video.setAttribute('id', 'video_gp_" + arquivo.Id + @"');
                                                                video.setAttribute('controls', 'controls');
                                                                video.setAttribute('width', '100%');
                                                                video.setAttribute('height', '100%');
                                                                videoDiv.appendChild(video);

                                                                video.src='" + arquivo.GetNomeArquivo() + @"';
                                                                " + ((arquivo.VideoAutoPlay.HasValue && arquivo.VideoAutoPlay.Value) ? "video.play();" : "") + @"
                                                    }
                                                    function stopAnimation() {
                                                                video = document.getElementById('video_gp_" + arquivo.Id + @"');
                                                                video.pause();
                                                                video.src = '';
                                                                video.parentNode.removeChild(video);
                                                    }
                                            </script>"

                                });
                            }
                            else if (arquivo.Tipo == (char)ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg)
                            { //pdf
                                conteudoArquivo = modeloPagina.ReplaceChaves(new
                                {

                                    titulo = "Página " + cont,
                                    conteudo = "<img src=\"" + arquivo.GetNomeArquivo() + "\">",
                                    scriptStart = ""

                                });
                            }
                            else if (arquivo.Tipo == (char)ProdutoVaSlideArquivo.EnumTipoArquivo.Farmacia)
                            {
                                //se for farmacia utiliza o modelo de pagina de farmacia
                                conteudoArquivo = modeloPaginaFarmacia.ReplaceChaves(new
                                {

                                    titulo = "Página " + cont,
                                    conteudo = arquivo.GetNomeArquivo(),
                                    scriptStart = ""

                                });
                            }

                            swPagina.Write(conteudoArquivo);

                            swPagina.Close();
                            swPagina.Dispose();

                        }

                        #endregion

                        var page = new Page();

                        page.Slide = slide;

                        if (isVideo)
                        {
                            page.Conteudo = @"<dict>
                                                <key>id</key>
                                                <string>" + slide.Id + @"</string>
                                                <key>thumbFile</key>
                                                <string>" + nomePastaPaginas + "/" + paginaAtual + @"/thumb.jpg</string>
                                                <key>items</key>
                                                <array>
                                                    <dict>
                                                        <key>hidden</key>
                                                        <false/>
                                                        <key>name</key>
                                                        <string>" + nomePastaPaginas + "/" + paginaAtual + "/" + arquivo.GetNomeArquivo(ProdutoVaSlideArquivo.EnumTamanho.Normal, ProdutoVaSlideArquivo.EnumTipoArquivo.Jpg) + @"</string>
                                                        <key>type</key>
                                                        <string>image</string>
                                                        <key>x</key>
                                                        <integer>0</integer>
                                                        <key>y</key>
                                                        <integer>0</integer>
                                                        <key>width</key>
                                                        <integer>1024</integer>
                                                        <key>height</key>
                                                        <integer>768</integer>
                                                    </dict>
                                                    <dict>
                                                        <key>loop</key>
                                                        <false/>
                                                        <key>autoplay</key>
                                                        <" + ((arquivo.VideoAutoPlay.HasValue && arquivo.VideoAutoPlay.Value) ? "true" : "false") + @"/>
                                                        <key>name</key>
                                                        <string>" + nomePastaPaginas + "/" + paginaAtual + "/" + arquivo.GetNomeArquivo() + @"</string>
                                                        <key>type</key>
                                                        <string>movie</string>
                                                        <key>width</key>
                                                        <integer>1024</integer>
                                                        <key>height</key>
                                                        <integer>768</integer>
                                                        <key>x</key>
                                                        <integer>0</integer>
                                                        <key>y</key>
                                                        <integer>0</integer>
                                                    </dict>
                                                </array>
                                                <key>enableDisableButton</key>
                                                <false/>
                                                <key>enableInteraction</key>
                                                <true/>
                                              </dict>
                                            ";
                        }
                        else if (arquivo.Tipo == (char)ProdutoVaSlideArquivo.EnumTipoArquivo.Farmacia)
                        {

                            page.Conteudo = @"<dict>
                                                <key>id</key>
                                                <string>" + slide.Id + @"</string>
                                                <key>thumbFile</key>
                                                <string>" + nomePastaPaginas + "/" + paginaAtual + @"/thumb.jpg</string>
                                                <key>items</key>
                                                <array>
                                                    <dict>
                                                        <key>path</key>
                                                        <string>" + nomePastaPaginas + "/" + paginaAtual + "/" + @"index.html</string>
                                                        <key>height</key>
                                                        <integer>768</integer>
                                                        <key>type</key>
                                                        <string>pharmacy</string>
                                                        <key>width</key>
                                                        <integer>1024</integer>
                                                        <key>x</key>
                                                        <integer>0</integer>
                                                        <key>y</key>
                                                        <integer>0</integer>
                                                    </dict>
                                                </array>
                                            </dict>";

                        }
                        else
                        {
                            page.Conteudo = @"<dict>
                                                <key>id</key>
                                                <string>" + slide.Id + @"</string>
                                                <key>thumbFile</key>
                                                <string>" + nomePastaPaginas + "/" + paginaAtual + @"/thumb.jpg</string>
                                                <key>items</key>
                                                <array>
                                                    <dict>
                                                        <key>path</key>
                                                        <string>" + nomePastaPaginas + "/" + paginaAtual + "/" + @"index.html</string>
                                                        <key>height</key>
                                                        <integer>768</integer>
                                                        <key>type</key>
                                                        <string>webview</string>
                                                        <key>width</key>
                                                        <integer>1024</integer>
                                                        <key>x</key>
                                                        <integer>0</integer>
                                                        <key>y</key>
                                                        <integer>0</integer>
                                                        <key>enableDisableButton</key>
                                                        <" + ((isHTML) ? "true" : "false") + @"/>
                                                        <key>enableDisableInteraction</key>
                                                        <true/>
                                                    </dict>
                                                </array>
                                            </dict>";
                        }

                        //preenche keysPages que será inserido no arquivo info.plist
                        keysPages.Add(page);
                    }

                    #endregion

                }

                if (this.ProdutoVaCategoria.Tipo == (char)ProdutoVaCategoria.EnumTipo.Anexo)
                {
                    //cria diretorio dos arquivos do VA
                    Util.Arquivo.CreateDirectoryIfNotExists(diretorioArquivos);

                    #region cria arquivos anexos do VA

                    foreach (var arquivo in this.ProdutoVaArquivos)
                    {

                        //copia arquivo para a pasta attachments
                        File.Copy(arquivo.GetCaminhoFisico(), diretorioArquivos + arquivo.GetNome(), true);

                        //preenche keysAttachments que será inserido no arquivo info.plist
                        keysAttachments += Util.Texto.NewLine(
                            @"<dict>
                                <key>id</key>
                                <string>" + arquivo.Id + @"</string>
                                <key>name</key>
                                <string>" + arquivo.Nome + @"</string>
                                <key>path</key>
                                <string>" + nomePastaArquivos + "/" + arquivo.GetNome() + @"</string>
                             </dict>");
                    }

                    #endregion
                }

            #endregion

            #region Gera Arquivo info.plist

                var modelo = Util.Arquivo.LerArquivo(Util.Url.GetCaminhoFisico(Util.Sistema.AppSettings.Diretorios.DiretorioModelos) + @"info.plist");

                File.Delete(diretorioRaiz + "info.plist");

                //cria arquivo info.plist com todas as paginas
                FileStream fs = File.Open(diretorioRaiz + "info.plist", FileMode.Create, FileAccess.Write);

                StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8);

                #region Modelo atual de 24/03/2011

                /*
                <?xml version="1.0" encoding="UTF-8"?>
                <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
                <plist version="1.0">
                <dict>
                    <key>attachments</key>
                    <array>
                        <string>attachments/image1.png</string>
                        <string>attachments/image2.png</string>
                        <string>attachments/pdf1.png</string>
                    </array>
                    <key>description</key>
                    <string>Apresentação Institucional da EMS</string>
                    <key>id</key>
                    <string>i01</string>
                    <key>name</key>
                    <string>EMS Institucional</string>
                    <key>pages</key>
                    <array>
                        <dict>
                            <key>id</key>
                            <string>100</string>
                            <key>path</key>
                            <string>pages/page1/index.html</string>
                        </dict>
                        <dict>
                            <key>id</key>
                            <string>101</string>
                            <key>path</key>
                            <string>pages/page2/index.html</string>
                        </dict>
                        <dict>
                            <key>id</key>
                            <string>102</string>
                            <key>path</key>
                            <string>pages/page3/index.html</string>
                        </dict>
                        <dict>
                            <key>id</key>
                            <string>103</string>
                            <key>path</key>
                            <string>pages/page4/index.html</string>
                        </dict>
                        <dict>
                            <key>id</key>
                            <string>104</string>
                            <key>path</key>
                            <string>pages/page5/index.html</string>
                        </dict>
                        <dict>
                            <key>id</key>
                            <string>105</string>
                            <key>path</key>
                            <string>pages/page6/index.html</string>
                        </dict>
                    </array>
                    <key>thumbFile</key>
                    <string>ems-thumb.png</string>
                    <key>version</key>
                    <string>1.0</string>
                </dict>
                </plist>

                 */

            #endregion

                string pages = string.Empty;

                foreach (var page in keysPages)
                {
                    pages += page.Conteudo;
                }

                var endDate = (this.DataLimiteVeiculacao != null) ? this.DataLimiteVeiculacao.Value.Year + "-" + this.DataLimiteVeiculacao.Value.Month.ToString().PadLeft(2, '0') + "-" + this.DataLimiteVeiculacao.Value.Day.ToString().PadLeft(2, '0') + "T09:00:00Z" : "";

                var conteudo = modelo.ReplaceChaves(new
                {
                    attachments = keysAttachments,
                    description = this.Nome,
                    id = this.Id,
                    productId = this.Produto.Id,
                    name = this.Produto.Nome,
                    pages = pages,
                    thumbFile = nomeArquivoThumb,
                    version = this.Versao,
                    endDate = endDate
                });

                sw.Write(conteudo);

                sw.Close();
                sw.Dispose();

                //cria arquivos info.plist de acordo com a especialidade
                foreach (var especialidade in this.GetEspecialidades())
                {
                    fs = File.Open(diretorioRaiz + "info-" + especialidade.Nome.ToUpper() + ".plist", FileMode.Create, FileAccess.Write);

                    sw = new StreamWriter(fs, System.Text.Encoding.UTF8);

                                                                                                                                                                                                                                                                                #region  Modelo atual de 24/03/2011

            /*
            <?xml version="1.0" encoding="UTF-8"?>
            <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
            <plist version="1.0">
            <dict>
                <key>attachments</key>
                <array>
                    <string>attachments/image1.png</string>
                    <string>attachments/image2.png</string>
                    <string>attachments/pdf1.png</string>
                </array>
                <key>description</key>
                <string>Apresentação Institucional da EMS</string>
                <key>id</key>
                <string>i01</string>
                <key>name</key>
                <string>EMS Institucional</string>
                <key>pages</key>
                <array>
                    <dict>
                        <key>id</key>
                        <string>100</string>
                        <key>path</key>
                        <string>pages/page1/index.html</string>
                    </dict>
                    <dict>
                        <key>id</key>
                        <string>101</string>
                        <key>path</key>
                        <string>pages/page2/index.html</string>
                    </dict>
                    <dict>
                        <key>id</key>
                        <string>102</string>
                        <key>path</key>
                        <string>pages/page3/index.html</string>
                    </dict>
                    <dict>
                        <key>id</key>
                        <string>103</string>
                        <key>path</key>
                        <string>pages/page4/index.html</string>
                    </dict>
                    <dict>
                        <key>id</key>
                        <string>104</string>
                        <key>path</key>
                        <string>pages/page5/index.html</string>
                    </dict>
                    <dict>
                        <key>id</key>
                        <string>105</string>
                        <key>path</key>
                        <string>pages/page6/index.html</string>
                    </dict>
                </array>
                <key>thumbFile</key>
                <string>ems-thumb.png</string>
                <key>version</key>
                <string>1.0</string>
            </dict>
            </plist>*/

            #endregion

                    pages = string.Empty;

                    foreach (var page in keysPages)
                    {
                        if (page.Slide.ProdutoVaSlideEspecialidades.Any(e => e.Especialidade.Id == especialidade.Id))
                        {
                            pages += page.Conteudo;
                        }
                    }

                    //insere os conteudos no modelo

                    conteudo = modelo.ReplaceChaves(new
                    {
                        attachments = keysAttachments,
                        description = this.Nome,
                        id = this.Id,
                        name = this.Produto.Nome,
                        pages = pages,
                        thumbFile = nomeArquivoThumb,
                        version = this.Versao,
                        endDate = endDate
                    });

                    sw.Write(conteudo);

                    sw.Close();
                    sw.Dispose();

                }

            #endregion

            using (ZipFile zip = new ZipFile())
            {
                zip.AddDirectory(this.GetDiretorioModeloIpadArquivosFisico());

                zip.Save(this.GetDiretorioModeloIpadFisico() + this.GetNomeVAZipado());
            }
        }
Example #12
0
 public PageTemplateViewModel(Models.Page page)
 {
     ContentPage = page;
 }
        public static Tile CreateQuestionaryTile(questionary questionary, WindowsUIView view, IContentContainer parent)
        {
            var qTile = CreateTile(TileItemSize.Wide, 1);
            qTile.Elements[0].Appearance.Assign(AppearanceMid);
            qTile.Elements[0].Text = questionary.ToString();
            qTile.Tag = TagHelper.GetQuestionaryTag(questionary, TagHelper.TagType.Tile);

            var questionaryDocument = new Document()
            {
                Caption = questionary.ToString(),
                ControlName = "Questionary",
                Tag = TagHelper.GetQuestionaryTag(questionary, TagHelper.TagType.Document)
            };
            var questionaryPage = new Page
            {
                Caption = questionaryDocument.Caption,
                Document = questionaryDocument,
                Parent = parent,
                Tag = TagHelper.GetQuestionaryTag(questionary, TagHelper.TagType.Container)
            };
            qTile.ActivationTarget = questionaryPage;

            view.Documents.Add(questionaryDocument);
            view.ContentContainers.Add(questionaryPage);
            return qTile;
        }
        public static object CreateFormTile(IForm fd, IContentContainer parent, bool isArchive = false)
        {
            var dTile = CreateTile(TileItemSize.Wide, 5);
            
            dTile.Tag = TagHelper.GetFormDataTag(TagHelper.TagType.Tile, fd);
            
            dTile.Elements[0].Appearance.Assign(AppearanceMid);
            dTile.Elements[0].Text = fd.form.name;
            dTile.Elements[0].Appearance.Normal.TextOptions.WordWrap = WordWrap.Wrap;
            dTile.Elements[0].Appearance.Normal.TextOptions.Trimming = Trimming.EllipsisPath;
            dTile.Elements[0].TextAlignment = TileItemContentAlignment.TopLeft;
            dTile.Elements[0].Height = 32;

            dTile.Elements[1].Appearance.Assign(AppearanceText);
            dTile.Elements[1].TextAlignment = TileItemContentAlignment.BottomLeft;

            dTile.Elements[2].Appearance.Assign(AppearanceMid);
            dTile.Elements[2].TextAlignment = TileItemContentAlignment.MiddleRight;
            dTile.Elements[2].Text = fd.send_date.ToString("yyyy");

            dTile.Elements[3].Appearance.Assign(AppearanceMid);
            dTile.Elements[3].TextAlignment = TileItemContentAlignment.MiddleLeft;
            dTile.Elements[3].Text = string.Format("Срок подачи {0:dd.MM}\nЗагружена {1:dd.MM}", fd.form.submission_date, fd.send_date);

            dTile.Elements[4].ImageAlignment = TileItemContentAlignment.BottomRight;
            dTile.Elements[4].ImageIndex = fd.status;
            var doc = new Document
            {
                Tag = TagHelper.GetFormDataTag(TagHelper.TagType.Document, fd),
                Caption = fd.form.name,
                ControlName = string.Format("{1}FormData{0}", fd.form.form_type_id, isArchive ? "Archive" : "")
            };
            
            var page = new Page
            {
                Document = doc,
                Subtitle = String.Format("{0} {1:d MMMM yyyy}", doc.Caption, fd.send_date),
                Caption = doc.Caption,
                Tag = TagHelper.GetFormDataTag(TagHelper.TagType.Container, fd),
                Parent = parent
            };
            dTile.ActivationTarget = page;

            dTile.SearchTags = new[]
            {
                fd.form.name,
                fd.send_date.ToString("yyyy MMMM dd"),
                TileResources.FormDataText[(Status)fd.status]
            };

            return new { Page = page, Document = doc, Tile = dTile };
        }