Beispiel #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            Desafio desafio = db.Desafios.Find(id);

            db.Desafios.Remove(desafio);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #2
0
 public ActionResult Edit([Bind(Include = "DesafioId,TipoTrabalho,ApplicationUserId,Descricao,TipoAvaliacaoId,valor,Visualizacoes,DataCriacao,lat,lon,IdSolucaoVencedora")] Desafio desafio)
 {
     if (ModelState.IsValid)
     {
         db.Entry(desafio).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(desafio));
 }
Beispiel #3
0
        // GET: Desafios/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Desafio desafio = db.Desafios.Find(id);

            if (desafio == null)
            {
                return(HttpNotFound());
            }
            return(View(desafio));
        }
Beispiel #4
0
        private void preencherTagDesafio(Desafio desafio)
        {
            var tags      = db.Tags;
            var tagsUsers = new HashSet <int>(desafio.Tags.Select(a => a.Id));
            var viewModel = new List <TagDesafio>();

            foreach (var tag in tags)
            {
                viewModel.Add(new TagDesafio
                {
                    TagId        = tag.Id,
                    Nome         = tag.NomeTag,
                    Seleccionado = tagsUsers.Contains(tag.Id)
                });
            }
            ViewBag.TagsDesafio = viewModel;
        }
Beispiel #5
0
        private ICollection <Tag> atualizarTagsDesafio(Desafio desafio,
                                                       string[] selectedTag)
        {
            ICollection <Tag> listaTags;
            var selectedTagsHS = new HashSet <string>(selectedTag);
            var Tags           = db.Tags.ToList();

            listaTags = new List <Tag>();
            foreach (var Tag in Tags)
            {
                if (selectedTagsHS.Contains(Tag.Id.ToString()))
                {
                    listaTags.Add(Tag);
                    Tag.Desafios.Add(desafio);
                }
            }
            return(listaTags);
        }
Beispiel #6
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));
        }
Beispiel #7
0
        // GET: Desafios/Details/5
        public ActionResult Details(int?id)
        {
            var userId = User.Identity.GetUserId();
            var desafioVisualizacoes = db.Desafios.Where(d => d.DesafioId == id && d.ApplicationUserId != userId).FirstOrDefault();

            System.Diagnostics.Debug.WriteLine(desafioVisualizacoes);
            if (desafioVisualizacoes != null)
            {
                desafioVisualizacoes.Visualizacoes++;
                db.Entry(desafioVisualizacoes).State = EntityState.Modified;
                db.SaveChanges();
            }
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Desafio desafio = db.Desafios.Find(id);

            if (desafio == null)
            {
                return(HttpNotFound());
            }
            return(View(desafio));
        }
        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));
        }