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)); }
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); }
//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(); } }
//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)); }
//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(); } }
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")); }
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")); }
//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(); } }
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")); }
//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; }
//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; }
//passa do estado de aguardaenvio/rejeitada para submetido public override void Submeter(UserAccountExposicao userAccountExposicao) { db.SubmeterDb(userAccountExposicao); decisorCandidatura.EstadoActual = decisorCandidatura.VerificarCandidatura; }
public virtual void PedirInformacao(UserAccountExposicao userAccountExposicao) { }
public virtual void Rejeitar(UserAccountExposicao userAccountExposicao) { }
//metodos a implementar public virtual void Submeter(UserAccountExposicao userAccountExposicao) { }
//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; }