Beispiel #1
0
        // GET api/usuario
        public IEnumerable<Models.Usuario> Get(int? id = null, string nome = null, int? grupo = null)
        {
            using (var c = new Models.DbMeNotaDataContext())
            {

                var r = from u in c.Usuarios
                        select u;

                if (id.HasValue)
                {
                    r = r.Where(u => u.Id == id);
                }
                else if (!string.IsNullOrEmpty(nome))
                {
                    var strNome = nome.Trim().ToLower();
                    r = r.Where(u => u.Nome.ToLower().Contains(strNome));
                }
                else if (grupo.HasValue)
                {
                    r = r.Where(u => u.GrupoUsuarios.SingleOrDefault(g => g.IdGrupo == grupo) != null);
                }

                return r.ToList();
            }
        }
Beispiel #2
0
 // POST api/usuario
 public void Post([FromBody] string value)
 {
     List<Models.Usuario> lst = JsonConvert.DeserializeObject<List<Models.Usuario>>(value);
     using (var c = new Models.DbMeNotaDataContext())
     {
         c.Usuarios.InsertAllOnSubmit(lst);
         c.SubmitChanges();
     }
 }
Beispiel #3
0
 // DELETE api/grupo/5
 public void Delete(int id)
 {
     using (var c = new Models.DbMeNotaDataContext())
     {
         Models.Grupo grp = c.Grupos.SingleOrDefault(g => g.Id == id);
         c.GrupoUsuarios.DeleteAllOnSubmit(grp.GrupoUsuarios);
         c.Grupos.DeleteOnSubmit(grp);
         c.SubmitChanges();
     }
 }
Beispiel #4
0
 // PUT api/grupo/5
 public void Put(int id, [FromBody] string value)
 {
     Models.Grupo x = JsonConvert.DeserializeObject<Models.Grupo>(value);
     using (var c = new Models.DbMeNotaDataContext())
     {
         Models.Grupo grp = c.Grupos.SingleOrDefault(g => g.Id == id);
         grp.Descricao = x.Descricao;
         c.SubmitChanges();
     }
 }
Beispiel #5
0
 // DELETE api/usuario/5
 public void Delete(int id)
 {
     using (var c = new Models.DbMeNotaDataContext())
     {
         Models.Usuario usr = c.Usuarios.SingleOrDefault(u => u.Id == id);
         c.GrupoUsuarios.DeleteAllOnSubmit(usr.GrupoUsuarios);
         c.Grupos.DeleteAllOnSubmit(usr.Grupos);
         c.Usuarios.DeleteOnSubmit(usr);
         c.SubmitChanges();
     }
 }
 // DELETE api/grupousuario?grupo=5&usuario=2
 public void Delete(int grupo, int usuario)
 {
     using (var c = new Models.DbMeNotaDataContext())
     {
         Models.GrupoUsuario grp = c.GrupoUsuarios.SingleOrDefault(g => g.IdGrupo == grupo && g.IdUsuario == usuario);
         if (grp != null)
         {
             c.GrupoUsuarios.DeleteOnSubmit(grp);
             c.SubmitChanges();
         }
     }
 }
Beispiel #7
0
 // PUT api/usuario/5
 public void Put(int id, [FromBody] string value)
 {
     Models.Usuario x = JsonConvert.DeserializeObject<Models.Usuario>(value);
     using (var c = new Models.DbMeNotaDataContext())
     {
         Models.Usuario usr = c.Usuarios.SingleOrDefault(u => u.Id == id);
         if (usr != null)
         {
             usr.Nome = x.Nome;
             usr.Url = x.Url;
             c.SubmitChanges();
         }
     }
 }
Beispiel #8
0
 // POST api/grupo
 public void Post([FromBody] string value)
 {
     List<Models.Grupo> lst = JsonConvert.DeserializeObject<List<Models.Grupo>>(value);
     using (var c = new Models.DbMeNotaDataContext())
     {
         c.Grupos.InsertAllOnSubmit(lst);
         c.SubmitChanges();
         for (int i = 0, length = lst.Count; i < length; i++)
         {
             c.GrupoUsuarios.InsertOnSubmit(new Models.GrupoUsuario { IdGrupo = lst[i].Id, IdUsuario = lst[i].IdAdm });
         }
         c.SubmitChanges();
     }
 }
        // GET api/grupousuario
        public IEnumerable<Models.GrupoUsuario> Get(int? grupo = null, int? usuario = null)
        {
            using (var c = new Models.DbMeNotaDataContext())
            {
                var r = from u in c.GrupoUsuarios
                        select u;

                if (grupo.HasValue)
                {
                    r = r.Where(g => g.IdGrupo == grupo);
                }

                if (usuario.HasValue)
                {

                    r = r.Where(g => g.IdUsuario == usuario);
                }

                return r.ToList();
            }
        }
Beispiel #10
0
        // GET api/grupo
        public IEnumerable<Models.Grupo> Get(int? id = null, int? admin = null, int? usuario = null)
        {
            using (var c = new Models.DbMeNotaDataContext())
            {
                var r = from g in c.Grupos
                        select g;

                if (id.HasValue)
                {
                    r = r.Where(g => g.Id == id);
                }
                else if (admin.HasValue)
                {
                    r = r.Where(g => g.IdAdm == admin);
                }
                else if (usuario.HasValue)
                {
                    r = r.Where(g => g.GrupoUsuarios.SingleOrDefault(gu => gu.IdUsuario == usuario) != null);
                }

                return r.ToList();
            }
        }
        // GET: Notificacao/Enviar?remetente=5&destinatario=1&mensagem=HelloWorld
        public ActionResult Enviar(int remetente, int destinatario, string mensagem, int? grupo)
        {
            object retorno;

            Models.Usuario usuario;
            Models.Usuario usuarioAlvo;

            using (var c = new Models.DbMeNotaDataContext())
            {
                usuario = c.Usuarios.SingleOrDefault(u => u.Id == remetente);
                usuarioAlvo = c.Usuarios.SingleOrDefault(u => u.Id == destinatario);
            }

            if (String.IsNullOrWhiteSpace(mensagem))
            {
                retorno = new { Mensagem = "Mensagem vazio.", Flag = false };
            }
            else
            {
                try
                {
                    string param = grupo.HasValue ? "<wp:Param>/GrupoPage.xaml?grupo=" + grupo.Value + "&amp;remetente=" + usuario.Nome + "&amp;mensagem="
                                    + mensagem + "</wp:Param>" : "<wp:Param>/UsuarioPage.xaml?usuario=" + usuario.Id + "&amp;mensagem="+ mensagem + "</wp:Param>";

                    string xmlMensagem =
                    "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                    "<wp:Notification xmlns:wp=\"WPNotification\">" +
                        "<wp:Toast>" +
                            "<wp:Text1>" + $"@{usuario.Nome}" + "</wp:Text1>" +
                            "<wp:Text2>" + mensagem + "</wp:Text2>" +
                            param +
                        "</wp:Toast>" +
                    "</wp:Notification>";

                    byte[] msgBytes = Encoding.UTF8.GetBytes(xmlMensagem);

                    string uri = usuarioAlvo.Url;
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
                    request.Method = "POST";
                    request.ContentType = "text/xml";
                    request.ContentLength = xmlMensagem.Length;
                    request.Headers["X-MessageID"] = Guid.NewGuid().ToString();
                    request.Headers["X-WindowsPhone-Target"] = "toast";
                    request.Headers["X-NotificationClass"] = "2";

                    // Envia a requisição
                    using (Stream requestStream = request.GetRequestStream())
                    {
                        requestStream.Write(msgBytes, 0, msgBytes.Length);
                    }

                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    string notificationStatus = response.Headers["X-NotificationStatus"];
                    string notificationChannelStatus = response.Headers["X-SubscriptionStatus"];
                    string deviceConnectionStatus = response.Headers["X-DeviceConnectionStatus"];

                    if (notificationStatus == "Received" && notificationChannelStatus == "Active" && deviceConnectionStatus == "Connected")
                    {
                        retorno = new { Mensagem = "Mensagem enviada.", Flag = true };
                    }
                    else
                    {
                        retorno = new { Mensagem = $"@{usuarioAlvo.Nome} está desconectado.", Flag = false };
                    }
                }
                catch
                {
                    TempData["Resultado"] = "Ocorreu um erro.";
                    retorno = new { Mensagem = "Ocorreu um erro.", Flag = false };
                }
            }
            return Json(retorno, JsonRequestBehavior.AllowGet);
        }