public void RegisterPhone(Guid phoneId, string channelUri, string username) { using (EmergencyDBEntities context = new EmergencyDBEntities()) { int clientId; var deviceId = phoneId.ToString(); var deviceI = (from c in context.Devices where c.DeviceID == deviceId select c).FirstOrDefault<Device>(); using (EmergencyDBEntities context2 = new EmergencyDBEntities()) { clientId = (from c in context.Clients where c.Username == username select c.ClientID).FirstOrDefault(); } if (context.Devices.Count() == 0 || deviceI == null) { context.Devices.AddObject(new Device { DeviceID = phoneId.ToString(), DeviceUrl = channelUri, ClientID = clientId }); context.SaveChanges(); } foreach (var device in context.Devices) { Debug.WriteLine(device.DeviceID.ToString()); if (device.DeviceID == phoneId.ToString()) if (device.DeviceUrl != channelUri) device.DeviceUrl = channelUri; else if (device.ClientID != clientId) device.ClientID = clientId; } context.SaveChanges(); } }
public void CompleteFriendshipRequest(string clientUsername, string friendUsername, bool status) { string notificationStatus = ""; string notificationChannelStatus = ""; string deviceConnectionStatus = ""; Client clientDB, friendDB; using (EmergencyDBEntities context = new EmergencyDBEntities()) { clientDB = (from c in context.Clients where clientUsername == c.Username select c).FirstOrDefault(); } using (EmergencyDBEntities context = new EmergencyDBEntities()) { friendDB = (from c in context.Clients where friendUsername == c.Username select c).FirstOrDefault(); } using (EmergencyDBEntities context = new EmergencyDBEntities()) { byte[] payload = new byte[0]; if (status) { foreach (var friendToUpdate in context.Friendships) { if (friendToUpdate.ClientID == friendDB.ClientID && friendToUpdate.FriendID == clientDB.ClientID && friendToUpdate.Status == false) friendToUpdate.Status = status; } context.Friendships.AddObject(new Friendship() { ClientID = clientDB.ClientID, FriendID = friendDB.ClientID, Status = true }); context.SaveChanges(); payload = GetToastPayload("Friend request confirmed by:", clientDB.FirstName + " " + clientDB.LastName); } else { context.Friendships.DeleteObject((from f in context.Friendships where f.ClientID == friendDB.ClientID && f.FriendID == clientDB.ClientID && f.Status == status select f).FirstOrDefault()); context.SaveChanges(); payload = GetToastPayload("Friend request disconfirmed by:", clientDB.FirstName + " " + clientDB.LastName); } List<string> uriStrings; using (EmergencyDBEntities context2 = new EmergencyDBEntities()) { uriStrings = (from d in context2.Devices where d.ClientID == friendDB.ClientID select d.DeviceUrl).ToList<string>(); } foreach (var uriString in uriStrings) { Uri uri = new Uri(uriString); var requestToast = (HttpWebRequest)WebRequest.Create(uri); requestToast.Method = "POST"; requestToast.ContentType = "text/xml"; requestToast.Headers.Add("X-WindowsPhone-Target", "toast"); requestToast.Headers.Add("X-NotificationClass", "2"); requestToast.ContentLength = payload.Length; using (Stream requestStream = requestToast.GetRequestStream()) { requestStream.Write(payload, 0, payload.Length); } try { var response = (HttpWebResponse)requestToast.GetResponse(); notificationStatus = response.Headers["X-NotificationStatus"]; notificationChannelStatus = response.Headers["X-SubscriptionStatus"]; deviceConnectionStatus = response.Headers["X-DeviceConnectionStatus"]; } catch (Exception) { } } } }
public string DeleteFriend(string clientUsername, string friendUsername) { string notificationStatusToast = ""; string notificationChannelStatusToast = ""; string deviceConnectionStatusToast = ""; Client friendDB, clientDB; using (EmergencyDBEntities context = new EmergencyDBEntities()) { friendDB = (from c in context.Clients where friendUsername == c.Username select c).FirstOrDefault(); } using (EmergencyDBEntities context = new EmergencyDBEntities()) { clientDB = (from c in context.Clients where clientUsername == c.Username select c).FirstOrDefault(); } using (EmergencyDBEntities context = new EmergencyDBEntities()) { context.Friendships.DeleteObject((from f in context.Friendships where f.ClientID == friendDB.ClientID && f.FriendID == clientDB.ClientID select f).FirstOrDefault()); context.Friendships.DeleteObject((from f in context.Friendships where f.ClientID == clientDB.ClientID && f.FriendID == friendDB.ClientID select f).FirstOrDefault()); context.SaveChanges(); } List<string> uriStrings; using (EmergencyDBEntities context = new EmergencyDBEntities()) { uriStrings = (from d in context.Devices where d.ClientID == friendDB.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 requestToast = (HttpWebRequest)WebRequest.Create(uri); requestToast.Method = "POST"; requestToast.ContentType = "text/xml"; payload = GetToastPayload("Friend request:", clientDB.FirstName + " " + clientDB.LastName); requestToast.Headers.Add("X-WindowsPhone-Target", "toast"); requestToast.Headers.Add("X-NotificationClass", "2"); requestToast.ContentLength = payload.Length; using (Stream requestStream = requestToast.GetRequestStream()) { requestStream.Write(payload, 0, payload.Length); } try { var responseToast = (HttpWebResponse)requestToast.GetResponse(); notificationStatusToast = responseToast.Headers["X-NotificationStatus"]; notificationChannelStatusToast = responseToast.Headers["X-SubscriptionStatus"]; deviceConnectionStatusToast = responseToast.Headers["X-DeviceConnectionStatus"]; //return "Friend have been deleted " + friendDB.FirstName + " " + friendDB.LastName + "."; } catch (Exception ex) { }//return "Failed to send delete notification. Exception: " + ex.Message; } } return friendDB.FirstName + " " + friendDB.LastName + " have been deleted."; } else return "Friend doesn't have any device."; }
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."; } } }