public ActionResult AddBrasao(string img) { int idUsuario = SessionManager.GetUsuario().Id; Time time = db.Times.FirstOrDefault(_time => _time.UsuarioID == idUsuario); if (time != null) { time.pathBrasao = "~/Uploads/" + img; db.SaveChanges(); } else { time = new Time(); time.Deputados = new List<DeputadoTime>(); time.UsuarioID = idUsuario; time.pathBrasao = "~/Uploads/" + img; db.Times.Add(time); //criando a chave int timesPorChave = Convert.ToInt32(ConfigurationManager.AppSettings["times_por_chave"]); Chave chave = db.Chaves.FirstOrDefault(_chave => _chave.Times.Count() > timesPorChave); //se nao há nenhuma chave livre if (chave == null) { chave = new Chave(); db.Chaves.Add(chave); PopularChave(chave, 11); } chave.Times.Add(time); db.SaveChanges(); } return Content("ok"); }
public ActionResult Add(int idDeputado) { int idUsuario = SessionManager.GetUsuario().Id; Time time = db.Times.FirstOrDefault(_time => _time.UsuarioID == idUsuario); if (time == null) { time = new Time(); time.Deputados = new List<DeputadoTime>(); time.UsuarioID = idUsuario; db.Times.Add(time); //criando a chave int timesPorChave = Convert.ToInt32(ConfigurationManager.AppSettings["times_por_chave"]); Chave chave = db.Chaves.FirstOrDefault(_chave => _chave.Times.Count() > timesPorChave); //se nao há nenhuma chave livre if (chave == null) { chave = new Chave(); db.Chaves.Add(chave); PopularChave(chave, 11); } chave.Times.Add(time); db.SaveChanges(); } Deputado deputado = db.Deputadoes.First(_deputado => _deputado.Id == idDeputado); DeputadoTime deputadoTime = new DeputadoTime() { DeputadoID = deputado.Id, TimeID = time.Id }; time.Deputados.Add(deputadoTime); db.SaveChanges(); return Content("ok"); }
private void PopularChave(Chave chave,int totalTimes) { Usuario bot = db.Usuarios.FirstOrDefault(_usuario => _usuario.IdFacebook == "bot"); if (bot == null) { bot = new Usuario { Nome = "jogador ", Sobrenome = "do sistema", IdFacebook = "bot", UltimoLogin = DateTime.Now, FotoPerfil = "~/Images/usuario.png" }; db.Usuarios.Add(bot); db.SaveChanges(); } int j = 1; for (int i = chave.Times.Count(); i <= totalTimes; i++) { Time time = new Time(); time.Deputados = new List<DeputadoTime>(); time.UsuarioID = bot.Id; time.Chave = chave; time.pathBrasao = "~/Content/Images/brasao" + (int)(j) + ".jpg"; time.bot = true; time.Nome = "Computador " + i; db.Times.Add(time); db.SaveChanges(); var deputados = db.Deputadoes.OrderBy(r => Guid.NewGuid()).Take(14). ToList().ConvertAll(_deputado => new DeputadoTime { DeputadoID = _deputado.Id, TimeID = time.Id }); time.Deputados.AddRange(deputados); db.SaveChanges(); j++; } }
public ActionResult FacebookCallback(string code) { var fb = new FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = ConfigurationManager.AppSettings["facebook_app_id"], client_secret = ConfigurationManager.AppSettings["facebook_app_secret"], redirect_uri = Util.getFacebookUrl(Url, Request.Url).AbsoluteUri, code = code }); var accessToken = result.access_token; Session["AccessToken"] = accessToken; fb.AccessToken = accessToken; dynamic me = fb.Get("me?fields=first_name,last_name,id,email"); string email = me.email; //cria um usuario Usuario usuarioFb = new Usuario(); usuarioFb.Email = me.email; usuarioFb.Nome = me.first_name; usuarioFb.Sobrenome = me.last_name; usuarioFb.IdFacebook = me.id; usuarioFb.UltimoLogin = DateTime.Now; string foto = GetPictureUrl(me.id); usuarioFb.FotoPerfil = foto; if (db.Usuarios.Count(_usuario => _usuario.IdFacebook == usuarioFb.IdFacebook) == 0) { db.Usuarios.Add(usuarioFb); db.SaveChanges(); Time time = db.Times.FirstOrDefault(_time => _time.UsuarioID == usuarioFb.Id); Time timeBot = null; if (time == null) { time = new Time(); time.Deputados = new List<DeputadoTime>(); time.UsuarioID = usuarioFb.Id; db.Times.Add(time); //criando a chave int timesPorChave = Convert.ToInt32(ConfigurationManager.AppSettings["times_por_chave"]); Chave chave = db.Chaves.FirstOrDefault(_chave => _chave.Times.Count(_time => !_time.bot) <= timesPorChave); //se nao há nenhuma chave livre if (chave == null) { chave = new Chave(); db.Chaves.Add(chave); PopularChave(chave, 11); } else { //recupera o primeiro time do computador nesta chave timeBot = chave.Times.First(_time => _time.bot); List<Partida> partidas = db.Partidas.Where(_partida => _partida.TimeDeForaID == timeBot.Id || _partida.TimeDaCasaID == timeBot.Id).ToList(); //altera as partidas jah existentes foreach (var partida in partidas) { if (partida.TimeDaCasaID == timeBot.Id) { partida.TimeDaCasaID = time.Id; } else { partida.TimeDeForaID = time.Id; } } } //salva as mudancas chave.Times.Add(time); db.SaveChanges(); //se utilizou a substituicao de times apaga o time do computador if (timeBot != null) { //arrumar isso, nao deveria ser necessario recuperar de novo o time para poder excluilo timeBot = db.Times.First(_time => _time.Id == timeBot.Id); db.Times.Remove(timeBot); db.SaveChanges(); } } } else { usuarioFb = db.Usuarios.Where(_usuario => _usuario.IdFacebook == usuarioFb.IdFacebook).First(); usuarioFb.UltimoLogin = DateTime.Now; usuarioFb.FotoPerfil = foto; db.SaveChanges(); } SessionManager.SetUsuario(usuarioFb); return RedirectToAction("Index", "Home"); }