public List<ClientData> SearchFriends(ClientData client) { List<ClientData> friend; using (EmergencyDBEntities context = new EmergencyDBEntities()) { friend = (from c in context.Clients where c.FirstName.StartsWith(client.FirstName) select new ClientData { Username = c.Username, FirstName = c.FirstName, LastName = c.LastName, Age = c.Age.Value, Email = c.Email }).ToList<ClientData>(); } return friend; }
public List<string> SendSosNotifications(ClientData client) { using (EmergencyDBEntities context = new EmergencyDBEntities()) { string notificationStatus = ""; string notificationChannelStatus = ""; string deviceConnectionStatus = ""; var sender = (from c in context.Clients where c.Username == client.Username select c).FirstOrDefault(); var clients = (from f in context.Friendships join c in context.Clients on f.FriendID equals c.ClientID where f.ClientID == sender.ClientID select c); foreach (var cl in clients) { List<string> uriStrings; using (EmergencyDBEntities context2 = new EmergencyDBEntities()) { uriStrings = (from d in context2.Devices where d.ClientID == cl.ClientID select d.DeviceUrl).ToList<string>(); } if (uriStrings.Count != 0) { foreach (var uriString in uriStrings) { Uri uri = new Uri(uriString); byte[] payload = new byte[0]; var request = (HttpWebRequest)WebRequest.Create(uri); request.Method = "POST"; request.ContentType = "text/xml"; payload = GetToastPayload("Emergency", sender.FirstName + " " + sender.LastName); request.Headers.Add("X-WindowsPhone-Target", "toast"); request.Headers.Add("X-NotificationClass", "2"); request.ContentLength = payload.Length; using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(payload, 0, payload.Length); } try { var response = (HttpWebResponse)request.GetResponse(); notificationStatus = response.Headers["X-NotificationStatus"]; notificationChannelStatus = response.Headers["X-SubscriptionStatus"]; deviceConnectionStatus = response.Headers["X-DeviceConnectionStatus"]; } catch (Exception ex) { }//return new List<string> { "Device is not connected!", ex.Message }; } } } } return new List<string> { notificationStatus, notificationChannelStatus, deviceConnectionStatus }; //return new List<string> { "You don't have any friend." }; } }
public string ClientRegistration(ClientData client, string password) { using (EmergencyDBEntities context = new EmergencyDBEntities()) { if ((from c in context.Clients where c.Username == client.Username select c).FirstOrDefault() != null) { return "User with current username is already exist. Please choose another username."; } else if ((from c in context.Clients where c.Email == client.Email select c).FirstOrDefault() != null) { return "User with current email is already exist. Please enter another email address."; } else { context.Clients.AddObject(new Client { Username = client.Username, Password = password, Email = client.Email, FirstName = client.FirstName, LastName = client.LastName, Age = client.Age }); context.SaveChanges(); return "Your account is successfully registered."; } } }