예제 #1
0
        //Alterar o estado da candidatura na base de dados para 2 (VerificarCandidatura) ou cria uma nova com o estado a 2
        public void SubmeterDb(UserAccountExposicao userAccountExposicao)
        {
            var submeterCandidatura = db.UserAccountExposicao.Where(u => u.UserAccountID == userAccountExposicao.UserAccountID).SingleOrDefault(u => u.ExposicaoID == userAccountExposicao.ExposicaoID);

            if (submeterCandidatura != null)
            {
                submeterCandidatura.Assigned        = 2;
                submeterCandidatura.InformacaoExtra = null;
                db.Entry(submeterCandidatura).State = EntityState.Modified;
                db.SaveChanges();
            }
            else
            {
                userAccountExposicao.Assigned = 2;
                db.UserAccountExposicao.Add(userAccountExposicao);
                db.SaveChanges();
            }
        }
예제 #2
0
        //método que remove ou adiciona temas a uma exposição ou a um utilizador. ITabelas pode ser um utilizador ou uma exposição
        public void UpdateTemas(string[] selectedTemas, ITabelas tabela, OurDBContext dbContext)
        {
            var userAccountTemas = new HashSet <int>(tabela.Temas.Select(t => t.TemaID));

            if (selectedTemas == null)
            {
                if (tabela.Temas.Count != 0)
                {
                    foreach (var tema in dbContext.Tema)
                    {
                        if (tabela.Temas.Contains(tema))
                        {
                            tabela.Temas.Remove(tema);
                        }
                    }
                }
                dbContext.Entry(tabela).State = EntityState.Modified;
                dbContext.SaveChanges();
                return;
            }
            var selectedTemasHs = new HashSet <string>(selectedTemas);

            foreach (var tema in dbContext.Tema)
            {
                if (selectedTemasHs.Contains(tema.TemaID.ToString()))
                {
                    if (!userAccountTemas.Contains(tema.TemaID))
                    {
                        tabela.Temas.Add(tema);
                    }
                }
                else
                {
                    if (userAccountTemas.Contains(tema.TemaID))
                    {
                        tabela.Temas.Remove(tema);
                    }
                }
            }
            dbContext.Entry(tabela).State = EntityState.Modified;
            dbContext.SaveChanges();
        }
예제 #3
0
        public ActionResult Edit(int UserAccountID, string nome, string morada, int numTelefone)
        {
            int id = UserAccountID;        //Convert.ToInt32(Session["UserAccountID"]);
            var userAccountToUpdate = db.UserAccount.Include(u => u.Temas).SingleOrDefault(u => u.UserAccountID == id);

            if (TryUpdateModel(museuDB.EditUser(userAccountToUpdate, nome, morada, numTelefone), "",
                               new string[] { "Nome,Morada,Idade,Sexo,NumTelefone,Email,Password,ConfirmPassword,TipoUtilizadorID" }))
            {
                try
                {
                    db.Entry(museuDB.EditUser(userAccountToUpdate, nome, morada, numTelefone)).State = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("PerfilUser"));
                }
                catch (RetryLimitExceededException /* dex */)
                {
                    ModelState.AddModelError("", "Nao foi possivel atualizar o user");
                }
            }
            return(View(museuDB.EditUser(userAccountToUpdate, nome, morada, numTelefone)));
        }
예제 #4
0
        public ActionResult ExtraInfo(string UserID, int ExposicaoID, string InformacaoExtra)
        {
            int uID = Int32.Parse(UserID);

            UserAccountExposicao userAccountExposicaoToUpdate = db.UserAccountExposicao.Find(uID, ExposicaoID);

            if (userAccountExposicaoToUpdate != null)
            {
                userAccountExposicaoToUpdate.InformacaoExtra = InformacaoExtra;
                db.Entry(userAccountExposicaoToUpdate).State = EntityState.Modified;
                db.SaveChanges();
            }
            return(RedirectToAction("Candidatura", "UserAccountExposicao"));
        }
예제 #5
0
 public ActionResult Edit([Bind(Include = "MarcacaoID,NomeRequerente,Idade,NumTelefoneRequerente,Data,HoraDeInicio,HoraDeFim,NumPessoas,ExposicaoID,UserAccountID")] Marcacao marcacao)
 {
     if (ModelState.IsValid)
     {
         Exposicao exposicao = db.Exposicao.Find(marcacao.ExposicaoID);
         if (dbMuseu.DataExposicaoMarcacao(marcacao.Data, exposicao.DataInicial, exposicao.DataFinal))
         {
             TimeSpan dur = TimeSpan.Parse(exposicao.Duracao.Hour + ":" + exposicao.Duracao.Minute);
             marcacao.HoraDeFim       = marcacao.HoraDeInicio.Add(dur);
             db.Entry(marcacao).State = EntityState.Modified;
             db.SaveChanges();
             return(RedirectToAction("Edit", "Marcacao", new { id = marcacao.MarcacaoID }));
         }
         ModelState.AddModelError("Data", "Esta Exposição occore de " + exposicao.DataInicial.ToShortDateString() + " a " + exposicao.DataFinal.ToShortDateString());
     }
     UserAccountDropdownListMarcacao(marcacao.ExposicaoID, marcacao.MarcacaoID, marcacao.UserAccount);
     return(View(marcacao));
 }