public ActionResult Definir(int id, int exp, DateTime[] selectedDatas)
        {
            UserAccountExposicao userAccountExposicao = _db.UserAccountExposicao.Find(id, exp);

            if (userAccountExposicao != null)
            {
                if (selectedDatas != null)
                {
                    foreach (var data in selectedDatas)
                    {
                        Disponibilidade disponibilidade = new Disponibilidade
                        {
                            DataDisponibilidade = data,
                            ExposicaoID         = exp,
                            UserAccountID       = id
                        };
                        _db.Disponibilidade.Add(disponibilidade);
                    }
                    _db.SaveChanges();
                    return(RedirectToAction("PerfilUser", "Account", new { id = id }));
                }
                return(RedirectToAction("Definir", new { id = id, exp = exp }));
            }
            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }
示例#2
0
        public DecisorCandidatura(UserAccountExposicao userAccountExposicao)
        {
            this.userAccountExposicao = userAccountExposicao;
            //procura o estado atual da exposicao selecionada para o utilizador que fez o pedido
            EstadoActual = BuscarEstadoAtual();

            AguardarEnvio             = new AguardarEnvio(this);
            CandidaturaAceite         = new CandidaturaAceite(this);
            EsperaInformacaoAdicional = new EsperaInformacaoAdicional(this);
            VerificarCandidatura      = new VerificarCandidatura(this);
        }
示例#3
0
        //Alterar o estado da candidatura na base de dados para 1 (AguardarEnvio)
        public void RejeitarDb(UserAccountExposicao userAccountExposicao)
        {
            var rejeitarCandidatura = db.UserAccountExposicao.Where(u => u.UserAccountID == userAccountExposicao.UserAccountID).SingleOrDefault(u => u.ExposicaoID == userAccountExposicao.ExposicaoID);

            if (rejeitarCandidatura != null)
            {
                rejeitarCandidatura.Assigned        = 1;
                db.Entry(rejeitarCandidatura).State = EntityState.Modified;
                db.SaveChanges();
            }
        }
示例#4
0
        //Alterar o estado da candidatura na base de dados para 4 (CandidaturaAceite)
        public void AceitarDb(UserAccountExposicao userAccountExposicao)
        {
            var candidaturaAceitar = db.UserAccountExposicao.Where(u => u.UserAccountID == userAccountExposicao.UserAccountID).SingleOrDefault(u => u.ExposicaoID == userAccountExposicao.ExposicaoID);

            if (candidaturaAceitar != null)
            {
                candidaturaAceitar.Assigned        = 4;
                db.Entry(candidaturaAceitar).State = EntityState.Modified;
                db.SaveChanges();
            }
        }
        public ActionResult Definir(int id, int exp)
        {
            UserAccountExposicao userAccountExposicao = _db.UserAccountExposicao.Find(id, exp);

            if (userAccountExposicao != null)
            {
                Exposicao exposicao = _db.Exposicao.Find(userAccountExposicao.ExposicaoID);
                ViewBag.Datas = PopulateDatasExposicao(exposicao);
                return(View(userAccountExposicao));
            }
            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }
示例#6
0
        //Alterar o estado da candidatura na base de dados para 3 (EsperaInformacaoAdicional)
        public void PedirInformacaoDb(UserAccountExposicao userAccountExposicao)
        {
            var pedirInformacao = db.UserAccountExposicao
                                  .Where(u => u.UserAccountID == userAccountExposicao.UserAccountID).SingleOrDefault(u => u.ExposicaoID == userAccountExposicao.ExposicaoID);

            if (pedirInformacao != null)
            {
                pedirInformacao.Assigned        = 3;
                db.Entry(pedirInformacao).State = EntityState.Modified;
                db.SaveChanges();
            }
        }
示例#7
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"));
        }
示例#8
0
        public ActionResult Candidatura(string UserID, string ExposicaoID)
        {
            UserAccountExposicao userAccountExposicao = new UserAccountExposicao();

            if (ExposicaoID != "")
            {
                userAccountExposicao.ExposicaoID   = Int32.Parse(ExposicaoID);
                userAccountExposicao.UserAccountID = Int32.Parse(UserID);
                DecisorCandidatura decisorCandidatura = new DecisorCandidatura(userAccountExposicao);
                decisorCandidatura.EstadoActual = decisorCandidatura.BuscarEstadoAtual();
                decisorCandidatura.Submeter();
            }
            return(RedirectToAction("Candidatura"));
        }
示例#9
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();
            }
        }
示例#10
0
        public ActionResult GestaoCandidaturas(int UserID, int ExposicaoID, string Evento)
        {
            UserAccountExposicao userAccountExposicaoToUpdate = db.UserAccountExposicao.Find(UserID, ExposicaoID);

            if (userAccountExposicaoToUpdate != null)
            {
                DecisorCandidatura decisorCandidatura = new DecisorCandidatura(userAccountExposicaoToUpdate);
                decisorCandidatura.EstadoActual = decisorCandidatura.BuscarEstadoAtual();
                if (Evento == "Aceitar")
                {
                    decisorCandidatura.Aceitar();
                }
                else if (Evento == "Rejeitar")
                {
                    decisorCandidatura.Rejeitar();
                }
                else
                {
                    decisorCandidatura.PedirInformacao();
                }
            }
            return(RedirectToAction("GestaoCandidaturas", "UserAccountExposicao"));
        }
示例#11
0
 //passa do estado de ""ter informação e estar à espera de resposta" para o estado "rejeitado"
 public override void Rejeitar(UserAccountExposicao userAccountExposicao)
 {
     stateDb.RejeitarDb(userAccountExposicao);
     decisorCandidatura.EstadoActual = decisorCandidatura.AguardarEnvio;
 }
示例#12
0
 //passa do estado de "espera por resposta"/submetido para o estado onde o user tem de introduzir mais informação para voltar a ser avaliado
 public override void PedirInformacao(UserAccountExposicao userAccountExposicao)
 {
     db.PedirInformacaoDb(userAccountExposicao);
     decisorCandidatura.EstadoActual = decisorCandidatura.EsperaInformacaoAdicional;
 }
示例#13
0
 //passa do estado de aguardaenvio/rejeitada para submetido
 public override void Submeter(UserAccountExposicao userAccountExposicao)
 {
     db.SubmeterDb(userAccountExposicao);
     decisorCandidatura.EstadoActual = decisorCandidatura.VerificarCandidatura;
 }
示例#14
0
 public virtual void PedirInformacao(UserAccountExposicao userAccountExposicao)
 {
 }
示例#15
0
 public virtual void Rejeitar(UserAccountExposicao userAccountExposicao)
 {
 }
示例#16
0
 //metodos a implementar
 public virtual void Submeter(UserAccountExposicao userAccountExposicao)
 {
 }
示例#17
0
 //passa do estado de ""ter informação e estar à espera de resposta" para o estado "aceite"
 public override void Aceitar(UserAccountExposicao userAccountExposicao)
 {
     stateDb.AceitarDb(userAccountExposicao);
     decisorCandidatura.EstadoActual = decisorCandidatura.CandidaturaAceite;
 }