public List<TabHistorico> RankingExemplares() { List<TabHistorico> exRank = new List<TabHistorico>(); var teste = (from p in db.TabHistorico where p.dsStatus == 5 group p by p.fkIdExemplar into g select new { fkIdExemplar = g.Key, Quantidade = g.Count() } ).OrderByDescending(c => c.Quantidade); var count = 1; foreach (var registro in teste) { TabHistorico exemplar = new TabHistorico(); TabExemplar tbex = new TabExemplar(); TabTitulo tbTit = new TabTitulo(); tbex = db.TabExemplar.Where(model => model.idExemplar == registro.fkIdExemplar).FirstOrDefault(); tbTit = db.TabTitulo.Where(model => model.idTitulo == tbex.fkIdTitulo).FirstOrDefault(); tbex.TabTitulo = tbTit; exemplar.idHistorico = count; count++; exemplar.fkIdExemplar = registro.fkIdExemplar; exemplar.dsStatus = registro.Quantidade; exemplar.TabExemplar = tbex; exRank.Add(exemplar); } return exRank; }
public ActionResult Cadastrar(TabExemplar exemplar, string titulo,int idLeitor) { var leitor = leitorBC.Obter(idLeitor); if (ModelState.IsValid) { var result = exemplarBC.Criar(exemplar, titulo, idLeitor); return View("~/Views/Exemplar/ConfirmSucessoCriarExemplar.cshtml",new Tuple<String,int>(result.Item2,idLeitor)); } return View("ComecarCorrente", new Tuple<TabExemplar, TabLeitor>(exemplar, leitor)); }
public Tuple<TabExemplar, string> Criar(TabExemplar exemplar, string titulo,int idLeitor) { TabExemplar novoExemplar = new TabExemplar(); TabHistorico novoHistorico = new TabHistorico(); //Pesquisa no banco se o título informado já existe var _titulo = db.TabTitulo.Where(model => model.nmTitulo.ToLower() == titulo.ToLower()).FirstOrDefault(); //Senão NÃO existir, preenche a TabTitulo e TabExemplar com as informações passada como parâmetro if (_titulo == null) { //Monta o objeto TabTitulo TabTitulo novoTitulo = new TabTitulo(); novoTitulo.nmTitulo = titulo; //Adiciona o titulo no contexto do EF novoTitulo = db.TabTitulo.Add(novoTitulo); //Monta o objeto TabExemplar novoExemplar.nmEditora = exemplar.nmEditora; novoExemplar.nmAutor = exemplar.nmAutor; novoExemplar.dsEdicao = exemplar.dsEdicao; novoExemplar.fkIdTitulo = novoTitulo.idTitulo; novoExemplar.dsStatus = (int)StatusRegistroExemplar.DISPONIVEL; novoExemplar.dsObs = exemplar.dsObs; //Adiciona o exemplar no contexto do EF novoExemplar = db.TabExemplar.Add(novoExemplar); //Monta o objeto historico novoHistorico.dtHistorico = DateTime.Now; novoHistorico.dsStatus = (int)EnumStatusHistorico.CADASTRADO; novoHistorico.fkIdExemplar = novoExemplar.idExemplar; novoHistorico.fkIdLeitor = idLeitor; novoHistorico.fkIdReceptor = null; //Adiciona o historico no contexto do EF db.TabHistorico.Add(novoHistorico); db.SaveChanges(); } //Mas se JÁ existir, preenche somente a tabela exemplar else { //Monta o objeto TabExemplar novoExemplar.nmEditora = exemplar.nmEditora; novoExemplar.nmAutor = exemplar.nmAutor; novoExemplar.dsEdicao = exemplar.dsEdicao; novoExemplar.fkIdTitulo = _titulo.idTitulo; novoExemplar.dsStatus = (int)StatusRegistroExemplar.DISPONIVEL; //Persiste o exemplar novoExemplar = db.TabExemplar.Add(novoExemplar); //Monta o objeto historico novoHistorico.dtHistorico = DateTime.Now; novoHistorico.dsStatus = (int)EnumStatusHistorico.CADASTRADO; novoHistorico.fkIdExemplar = novoExemplar.idExemplar; novoHistorico.fkIdLeitor = idLeitor; novoHistorico.fkIdReceptor = null; //Adiciona o historico no contexto do EF db.TabHistorico.Add(novoHistorico); db.SaveChanges(); } return new Tuple<TabExemplar, string>(novoExemplar, "Corrente iniciada !! :D"); }