public string Adicionar(EventoViewModel entity) { try { var eventoExiste = Db.Evento.Count(x => x.Nome == entity.Nome && x.AgendaEventoId == entity.AgendaEventoId) > 0; if (Db.AgendaEvento.Count(x => x.Id == entity.AgendaEventoId) > 0) { if (!eventoExiste) { var eventoModel = Mapper.Map <EventoViewModel, Evento>(entity); string path = HttpContext.Current.Server.MapPath("~/Imagens/Eventos/"); var bits = Convert.FromBase64String(eventoModel.PathImagem); string nomeImagem = Guid.NewGuid().ToString() + DateTime.Now.ToString("ddMMyyyyHHmmss") + ".jpg"; string imgPath = Path.Combine(path, nomeImagem); File.WriteAllBytes(imgPath, bits); eventoModel.PathImagem = nomeImagem; eventoModel.Cancelado = false; Db.Evento.Add(eventoModel); foreach (var item in entity.Funcionario) { EventoFuncionario e = new EventoFuncionario { EventoId = eventoModel.Id, FuncionarioId = item.Id }; Db.EventoFuncionario.Add(e); } Db.SaveChanges(); return("OK"); } throw new Exception("Evento existente."); } throw new Exception("Agenda não existe."); } catch (Exception e) { return(e.Message); } }
public string Editar(EventoViewModel entity) { try { string path = HttpContext.Current.Server.MapPath("~/Imagens/Eventos/"); var bits = Convert.FromBase64String(entity.PathImagem); string nomeImagem = Guid.NewGuid().ToString() + DateTime.Now.ToString("ddMMyyyyHHmmss") + ".jpg"; string imgPath = Path.Combine(path, nomeImagem); File.WriteAllBytes(imgPath, bits); entity.PathImagem = nomeImagem; var eventoModel = entity; var eventoSalvo = Db.Evento.FirstOrDefault(x => x.Id == entity.Id); var eventosParticipante = Db.ParticipanteEvento.Where(x => x.EventoId == entity.Id).ToList(); if (eventoSalvo.Local != eventoModel.Local || eventoSalvo.DataInicio != eventoModel.DataInicio) { var descricao = "O evento <b>" + eventoSalvo.Nome + "</b>, no qual você está inscrito, teve alteração na sua data e/ou local. Ele agora ocorrerá <b>" + eventoModel.DataInicio.ToLongDateString() + "</b> no(a) <b>" + eventoModel.Local + "</b>. Estaremos esperando por você :)"; foreach (var item in eventosParticipante) { var usuario = Db.Usuario.Find(item.ParticipanteId); GmailEmailService gmail = new GmailEmailService(); EmailMessage msg = new EmailMessage { Body = $"<html><head> </head> <body> <form> <h1>Notificação Konoha</h1><h3>Olá {usuario.Nome}</h3><p>{descricao}</p> </form></body> </html>", IsHtml = true, Subject = "Notificação sobre o evento: " + eventoModel.Nome, ToEmail = usuario.Email }; gmail.SendEmailMessage(msg); } } var existeFoto = Path.Combine(path, eventoSalvo.PathImagem); eventoSalvo.Local = eventoModel.Local; eventoSalvo.Nome = eventoModel.Nome; eventoSalvo.NumeroVagas = eventoModel.NumeroVagas; eventoSalvo.PathImagem = eventoModel.PathImagem; eventoSalvo.Descricao = eventoModel.Descricao; eventoSalvo.DataInicio = eventoModel.DataInicio; eventoSalvo.DataEncerramento = eventoModel.DataEncerramento; eventoSalvo.CargaHoraria = eventoModel.CargaHoraria; eventoSalvo.Apresentador = eventoModel.Apresentador; eventoSalvo.AgendaEventoId = eventoModel.AgendaEventoId; foreach (var item in entity.Funcionario) { EventoFuncionario e = new EventoFuncionario { EventoId = eventoModel.Id, FuncionarioId = item.Id }; var isModerador = Db.EventoFuncionario.Where(x => x.EventoId == eventoModel.Id && x.FuncionarioId == item.Id).ToList(); if (isModerador.Count() == 0) { Db.EventoFuncionario.Add(e); Db.SaveChanges(); } } if (File.Exists(existeFoto)) { File.Delete(existeFoto); } //Db.Entry(eventoModel).State = EntityState.Modified; Db.SaveChanges(); return("OK"); } catch (Exception e) { return(e.Message); } }