示例#1
0
        internal T AdicionarBloco <T>(Estilo estilo) where T : BlocoBase
        {
            var bloco = CriarBloco <T>(estilo);

            Blocos.Add(bloco);
            return(bloco);
        }
示例#2
0
        internal T AdicionarBloco <T>() where T : BlocoEventoBase
        {
            var bloco = CriarBloco <T>();

            Blocos.Add(bloco);
            return(bloco);
        }
示例#3
0
        public ActionResult Create(Blocos blocos, HttpPostedFileBase Imagem, string fotoExistente = "")
        {
            if (!string.IsNullOrEmpty(fotoExistente))
            {
                blocos.Imagem = fotoExistente;
                ModelState.Remove("Imagem");
            }

            if (ModelState.IsValid)
            {
                blocos.Excluido     = false;
                blocos.DataCadastro = DateTime.Now;

                db.Blocos.Add(blocos);

                if (db.SaveChanges() > 0)
                {
                    #region image e slug
                    if (Imagem != null)
                    {
                        //   var path1400x629 = Server.MapPath(string.Format(pathFoto1400x629, blocos.Id));
                        var path744x500 = Server.MapPath(string.Format(pathFoto744x500, blocos.Id));
                        var path405x270 = Server.MapPath(string.Format(pathFoto405x270, blocos.Id));
                        var path365x240 = Server.MapPath(string.Format(pathFoto365x240, blocos.Id));
                        var path260x173 = Server.MapPath(string.Format(pathFoto260x173, blocos.Id));

                        var fileOriginal = Server.MapPath(string.Format(pathOriginal, blocos.Id));

                        blocos.Imagem = Utils.SaveFileBase(fileOriginal, Imagem);

                        //Utils.resizeImageAndSave3(Path.Combine(fileOriginal, blocos.Imagem), 1400, 629, path1400x629);
                        Utils.resizeImageAndSave3(Path.Combine(fileOriginal, blocos.Imagem), 744, 500, path744x500);
                        Utils.resizeImageAndSave3(Path.Combine(fileOriginal, blocos.Imagem), 405, 270, path405x270);
                        Utils.resizeImageAndSave3(Path.Combine(fileOriginal, blocos.Imagem), 365, 240, path365x240);
                        Utils.resizeImageAndSave3(Path.Combine(fileOriginal, blocos.Imagem), 260, 173, path260x173);
                    }

                    int suffix = 0;

                    do
                    {
                        blocos.Chave = blocos.Nome.GenerateSlug() + (suffix > 0 ? suffix.ToString() : "");
                        suffix++;
                    } while (db.Blocos.Where(o => o.Chave == blocos.Chave).Count() > 0);
                    #endregion

                    db.Entry(blocos).State = EntityState.Modified;
                    db.SaveChanges();
                }

                GerenciaLogs.saveLog(ref db, WebSecurity.GetUserId(User.Identity.Name), areaADM, TipoAcesso.Insercao, blocos.Id);
                return(RedirectToAction("Index"));
            }

            return(View(blocos));
        }
示例#4
0
        //
        // GET: /Blocos/Delete/5

        public ActionResult Delete(int id = 0)
        {
            Blocos blocos = db.Blocos.Find(id);

            if (blocos == null)
            {
                return(HttpNotFound());
            }
            return(View(blocos));
        }
示例#5
0
        public ActionResult DeleteConfirmed(int id)
        {
            Blocos blocos = db.Blocos.Find(id);

            //db.Blocos.Remove(blocos);
            blocos.Excluido        = true;
            db.Entry(blocos).State = EntityState.Modified;
            db.Entry(blocos).Property(x => x.DataCadastro).IsModified = false;
            db.Entry(blocos).Property(x => x.Ativo).IsModified        = false;

            db.SaveChanges();
            GerenciaLogs.saveLog(ref db, WebSecurity.GetUserId(User.Identity.Name), areaADM, TipoAcesso.Exclusao, blocos.Id);
            return(RedirectToAction("Index"));
        }
示例#6
0
        public static Blocos GerarBlocos(string numeroTexto)
        {
            List<Centena> centenas = QuebrarCentenas(numeroTexto);

            var blocos = new Blocos();

            for (int i = 0; i < centenas.Count; i++)
            {
                int ordem = centenas.Count - i;
                var bloco = new Bloco(centenas[i], ordem);

                blocos.Add(bloco);
            }

            return blocos;
        }
示例#7
0
        private static string ColocarSeparadorDeCentena(Bloco bloco, Blocos blocos)
        {
            // - Array do bloco atual
            int indiceBloco = blocos.IndexOf(bloco);

            // - Array do bloco atual
            bool primeiroBloco = indiceBloco == 0;

            // - Array do bloco atual
            bool ultimoBloco = indiceBloco == blocos.Count - 1;

            // - Não é o primeiro bloco, então haverá separador
            bool jaEstaPreenchido = indiceBloco > 0;

            // - Tem dezena zerada: Para não separar os blocos de centena em caso de:
            //    - 1.000.200 = "um milhão e duzentos"    // possui "e"
            //    - 1.000.201 = "um milhão duzentos e um" // não possui "e"
            bool temDezenaZerada = bloco.Centena.Dezena.ToInt() == 0;

            // - Centena menor que cem:
            //    - "mil e setenta"  // possui "e"
            bool centenaMenorQueCem = bloco.Centena.ToInt() < 100;

            // - Todas as centenas pra frente estão zeradas,
            //   acabou de descrever o número
            //    - "um milhão"             // "1.000.000"  pára no primeiro bloco
            //    - "um milhão e cem mil"   // "1.100.000"  pára no segundo bloco
            bool proximasCentenasZeradas = ProximasCentenasZeradas(blocos, indiceBloco);

            // - Bloco zerado é ignorado
            var blocoZerado = bloco.Centena.ToInt() == 0;
            if (blocoZerado)
            {
                return string.Empty;
            }

            // - O primeiro bloco não possui separados
            if (primeiroBloco)
            {
                return string.Empty;
            }

            // - Só possui um bloco então não precisa de separador
            var possuiApenasUmBloco = blocos.Count == 1;
            if (possuiApenasUmBloco)
            {
                return string.Empty;
            }

            // - Último bloco com valor, então o separador é "e"
            if (jaEstaPreenchido
             && (proximasCentenasZeradas || ultimoBloco))
            {
                return " e ";
            }

            // - Último bloco com valor, então o separador é "e"
            if (jaEstaPreenchido)
            {
                return ", ";
            }

            var sb = new StringBuilder();
            sb.AppendLine("Regra para SEPARADOR não encontrada!");
            sb.AppendLine(blocos.ToString());
            sb.AppendFormat("bloco atual:{0}", bloco);
            throw new Exception(sb.ToString());
        }
示例#8
0
 internal void AdicionarBloco(BlocoBase bloco)
 {
     Blocos.Add(bloco);
 }