public void InserirCertificacao(string codAvaliacao) { lock (certificacoes) { if (!certificacoes.ContainsKey(codAvaliacao)) { certificacoes.Add(codAvaliacao, new Avaliacao()); using (var e = new Models.Contexto()) { int numIdentificador = 0; int semestre = 0; int ano = 0; if (codAvaliacao.Length == 13) { string codigo = codAvaliacao; int.TryParse(codigo.Substring(codigo.Length - 4), out numIdentificador); codigo = codigo.Remove(codigo.Length - 4); int.TryParse(codigo.Substring(codigo.Length - 1), out semestre); codigo = codigo.Remove(codigo.Length - 1); int.TryParse(codigo.Substring(codigo.Length - 4), out ano); codigo = codigo.Remove(codigo.Length - 4); int codTipoAvaliacao = e.TipoAvaliacao.FirstOrDefault(t => t.Sigla == codigo).CodTipoAvaliacao; Models.AvalCertificacao avalCertificacao = e.AvalCertificacao.FirstOrDefault(acad => acad.Ano == ano && acad.Semestre == semestre && acad.NumIdentificador == numIdentificador && acad.CodTipoAvaliacao == codTipoAvaliacao); certificacoes[codAvaliacao].MapearQuestao(avalCertificacao.Avaliacao.Questao.Select(q => q.CodQuestao).ToList()); } } } } }
public void Prorrogar(string codAvaliacao, int duracao, string observacao) { if (duracao > 0) { var mapping = avaliacoes.SelecionarAcademica(codAvaliacao); using (var e = new Models.Contexto()) { int numIdentificador = 0; int semestre = 0; int ano = 0; if (codAvaliacao.Length == 13) { string codigo = codAvaliacao; int.TryParse(codigo.Substring(codigo.Length - 4), out numIdentificador); codigo = codigo.Remove(codigo.Length - 4); int.TryParse(codigo.Substring(codigo.Length - 1), out semestre); codigo = codigo.Remove(codigo.Length - 1); int.TryParse(codigo.Substring(codigo.Length - 4), out ano); codigo = codigo.Remove(codigo.Length - 4); int codTipoAvaliacao = e.TipoAvaliacao.FirstOrDefault(t => t.Sigla == codigo).CodTipoAvaliacao; Models.Avaliacao aval = e.Avaliacao.FirstOrDefault(acad => acad.Ano == ano && acad.Semestre == semestre && acad.NumIdentificador == numIdentificador && acad.CodTipoAvaliacao == codTipoAvaliacao); var prorrogacao = new Models.AvaliacaoProrrogacao(); prorrogacao.DtProrrogacao = DateTime.Now; prorrogacao.Observacao = String.IsNullOrWhiteSpace(observacao) ? null : observacao; prorrogacao.DuracaoAnterior = aval.Duracao.Value; prorrogacao.DuracaoNova = prorrogacao.DuracaoAnterior + duracao; aval.Duracao = prorrogacao.DuracaoNova; aval.AvaliacaoProrrogacao.Add(prorrogacao); e.SaveChanges(); Clients.Clients(mapping.ListarConnectionIdAvaliados()).prorrogar(duracao); } } } }