Ejemplo n.º 1
0
        public ActionResult Create(DesafioCreate model, string[] selectedTag, HttpPostedFileBase file)
        {
            TipoAvaliacao TipoAvaliacao = db.TiposAvaliacao.Where(i => i.TipoAvaliacaoId == 1).FirstOrDefault();

            System.Diagnostics.Debug.WriteLine(model.lat);
            if (ModelState.IsValid)
            {
                Desafio desafio = new Desafio();
                Anexo   anexo   = new Anexo();
                desafio.lat               = model.lat;
                desafio.lon               = model.lon;
                desafio.TipoTrabalho      = model.TipoTrabalho;
                desafio.Descricao         = model.Descricao;
                desafio.DataCriacao       = DateTime.Now;
                desafio.TipoAvaliacao     = TipoAvaliacao;
                desafio.valor             = model.ValorMonetario;
                desafio.ApplicationUserId = User.Identity.GetUserId();

                var listaTags = atualizarTagsDesafio(desafio, selectedTag);
                desafio.Tags = listaTags;


                db.Desafios.Add(desafio);

                db.SaveChanges();

                if (file.ContentLength > 0)
                {
                    string filePath = Path.Combine(HttpContext.Server.MapPath("~/Anexos/"),
                                                   Path.GetFileName(file.FileName));
                    file.SaveAs(filePath);
                    anexo.Caminho      = filePath;
                    anexo.DesafioId    = desafio.DesafioId;
                    anexo.NomeFicheiro = file.FileName;
                    db.Anexos.Add(anexo);
                }

                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            preencherTagDesafio();
            return(View(model));
        }
Ejemplo n.º 2
0
        public void verificaAlteraEstadoDesafio(IQueryable <Desafio> desafios)
        {
            TipoAvaliacao TipoAvaliacaoAberto      = db.TiposAvaliacao.Where(i => i.TipoAvaliacaoId == 1).FirstOrDefault();
            TipoAvaliacao TipoAvaliacaoSolucao     = db.TiposAvaliacao.Where(i => i.TipoAvaliacaoId == 2).FirstOrDefault();
            TipoAvaliacao TipoAvaliacaoEmAvaliacao = db.TiposAvaliacao.Where(i => i.TipoAvaliacaoId == 3).FirstOrDefault();
            TipoAvaliacao TipoAvaliacaoFechado     = db.TiposAvaliacao.Where(i => i.TipoAvaliacaoId == 4).FirstOrDefault();
            DateTime      data = DateTime.Now;

            foreach (var desafio in desafios)
            {
                var diasVotacao   = desafio.DiasVotacao;
                var diasAvaliacao = desafio.DiasAvaliacao + desafio.DiasVotacao;

                DateTime dataFinal = desafio.DataFinalSolucoes.AddDays(diasAvaliacao + diasAvaliacao);


                if (dataFinal <= data)
                {
                    desafio.TipoAvaliacao = TipoAvaliacaoFechado;
                }
                else if (desafio.DataFinalSolucoes.AddDays(diasAvaliacao) <= data)
                {
                    desafio.TipoAvaliacao = TipoAvaliacaoEmAvaliacao;
                }
                else if (desafio.DataFinalSolucoes.AddDays(diasVotacao) <= data)
                {
                    desafio.TipoAvaliacao = TipoAvaliacaoSolucao;
                }
                else if (desafio.DataFinalSolucoes < data)
                {
                    desafio.TipoAvaliacao = TipoAvaliacaoAberto;
                }
            }

            db.SaveChanges();
        }
Ejemplo n.º 3
0
        public ActionResult Create(DesafioCreate model, string[] selectedTag, HttpPostedFileBase file)
        {
            TipoAvaliacao TipoAvaliacao = db.TiposAvaliacao.Where(i => i.TipoAvaliacaoId == 1).FirstOrDefault();

            System.Diagnostics.Debug.WriteLine(model.lat);
            if (selectedTag == null)
            {
                ModelState.AddModelError("TagErro", "Tem que Seleccionar pelo menos uma tag");
            }
            if (file == null)
            {
                ModelState.AddModelError("ErroFicheiro", "Tem que Submeter pelo menos um ficheiro");
            }

            if (file != null)
            {
                string extensao = Path.GetExtension(file.FileName);
                if (extensao != ".zip")
                {
                    ModelState.AddModelError("Zip", "Compacte os ficheiros e envie em formato .Zip");
                }
            }



            if (ModelState.IsValid)
            {
                Desafio desafio = new Desafio();
                Anexo   anexo   = new Anexo();
                desafio.lat               = model.lat;
                desafio.lon               = model.lon;
                desafio.TipoTrabalho      = model.TipoTrabalho;
                desafio.Descricao         = model.Descricao;
                desafio.DataCriacao       = DateTime.Now;
                desafio.TipoAvaliacao     = TipoAvaliacao;
                desafio.valor             = model.ValorMonetario;
                desafio.Pontos            = model.Pontos;
                desafio.DataFinalSolucoes = model.DesafioSolucao;
                desafio.ApplicationUserId = User.Identity.GetUserId();
                desafio.DiasAvaliacao     = obtemDias(model.DesafioSolucao);
                desafio.DiasVotacao       = obtemDias(model.DesafioSolucao);

                var listaTags = atualizarTagsDesafio(desafio, selectedTag);
                desafio.Tags = listaTags;



                db.Desafios.Add(desafio);

                db.SaveChanges();

                if (file.ContentLength > 0)
                {
                    string filePath = Path.Combine(HttpContext.Server.MapPath("~/Anexos/"),
                                                   Path.GetFileName(file.FileName));
                    file.SaveAs(filePath);
                    anexo.Caminho      = filePath;
                    anexo.DesafioId    = desafio.DesafioId;
                    anexo.NomeFicheiro = file.FileName;
                    db.Anexos.Add(anexo);
                }

                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            preencherTagDesafio();
            return(View(model));
        }