public HttpResponseMessage PutAddFriend(int id, [FromUri] string sessionKey) { var context = new SocialLifeContext(); using (context) { User userEntity = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); if (userEntity == null) { throw new ArgumentException("No such logged user."); } var friends = userEntity.Profile.FriendsList; string[] friendsList = {}; if (!String.IsNullOrEmpty(friends)) { friendsList = friends.Split(' ', ','); } foreach (var friend in friendsList) { if (id == int.Parse(friend)) { throw new ArgumentException("Already in friends list."); } } if (String.IsNullOrEmpty(friends)) { friends = id.ToString(); } else { friends = friends + "," + id.ToString(); } userEntity.Profile.FriendsList = friends; Message addedFriendMessage = new Message() { SenderId = userEntity.UserId, MessageDate = DateTime.Now, StatusId = context.Statuses.Where(st => st.StatusName == "Delivered").First().StatusId, ReceiverId = id, MessageContent = "Hi! I am now following you!" }; context.Messages.Add(addedFriendMessage); context.SaveChanges(); //SEND NOTIFICATION TO OTHER USER! var response = Request.CreateResponse(HttpStatusCode.OK); return(response); } }
public HttpResponseMessage PostCurrentLocation([FromUri] string longitude, [FromUri] string latitude, [FromUri] string sessionKey) { var context = new SocialLifeContext(); using (context) { User userEntity = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); if (userEntity == null) { throw new ArgumentException("No such logged user."); } Location userLocation = new Location() { UserId = userEntity.UserId, Latitude = latitude, Longitude = longitude, Date = DateTime.Now, }; context.Locations.Add(userLocation); context.SaveChanges(); var response = Request.CreateResponse(HttpStatusCode.OK); return(response); } }
public HttpResponseMessage PostRegisterUser(UserModel user) { var context = new SocialLifeContext(); using (context) { this.ValidateUsername(user.Username); this.ValidateAuthCode(user.AuthCode); this.ValidateDisplayName(user.DisplayName); var userToAdd = context.Users.Where(us => us.Username == user.Username).FirstOrDefault(); if (userToAdd == null) { userToAdd = new User() { Username = user.Username, DisplayName = user.DisplayName, AuthCode = user.AuthCode }; context.Users.Add(userToAdd); context.SaveChanges(); var userProfile = new Profile() { User = userToAdd, UserId = userToAdd.UserId, }; userProfile.Status = context.Statuses.Where(st => st.StatusName == "Unknown").FirstOrDefault(); context.Profiles.Add(userProfile); context.SaveChanges(); string sessionKey = userToAdd.SessionKey; if (sessionKey == null) { sessionKey = CreateSessionKey(userToAdd.UserId); userToAdd.SessionKey = sessionKey; context.SaveChanges(); } var registeredUser = new UserModel() { Username = user.Username, DisplayName = user.DisplayName, SessionKey = sessionKey, Id = userToAdd.UserId }; var response = Request.CreateResponse <UserModel>(HttpStatusCode.Created, registeredUser); //FIX THIS return(response); } else { throw new ArgumentException("This user already exists."); } } }
public HttpResponseMessage LoginUser(UserModel user) { var context = new SocialLifeContext(); using (context) { User userEntity = context.Users.Where(us => us.Username == user.Username && us.AuthCode == user.AuthCode).FirstOrDefault(); if (userEntity == null) { throw new ArgumentException("Incorrect user or password."); } string sessionKey = userEntity.SessionKey; if (userEntity.SessionKey == null) { sessionKey = this.CreateSessionKey(userEntity.UserId); userEntity.SessionKey = sessionKey; context.SaveChanges(); } UserModel loggedUser = new UserModel() { Username = userEntity.Username, SessionKey = sessionKey, DisplayName = userEntity.DisplayName, Id = userEntity.UserId }; var response = Request.CreateResponse <UserModel>(HttpStatusCode.OK, loggedUser); return(response); } }
public HttpResponseMessage PostCreateEvent([FromUri]string sessionKey, [FromBody]EventModel newEvent) { var context = new SocialLifeContext(); using (context) { if (ModelState.IsValid) { User sender = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); if (sender == null) { throw new ArgumentOutOfRangeException("No such user or invalid key."); } Event eventToAdd = new Event() { EventName = newEvent.Name, EventContent = newEvent.Content, AvatarUrl = newEvent.AvatarUrl, EventDate = newEvent.Date, Messages = new List<Message>(), Users = new List<User>(), //WAIT WUUUUUUT? EventStatus = context.Statuses.Where(st => st.StatusName == newEvent.Status).First(), EventLocation = new Location() { Latitude = newEvent.Latitude, Longitude = newEvent.Longitude, UserId = sender.UserId, Date = newEvent.Date } }; eventToAdd.Users.Add(sender); context.Events.Add(eventToAdd); context.SaveChanges(); EventModel resultEvent = new EventModel() { EventId = eventToAdd.EventId, Name = eventToAdd.EventName, Content = eventToAdd.EventContent, CreatorName = eventToAdd.Users.First().DisplayName, Date = eventToAdd.EventDate, Latitude = eventToAdd.EventLocation.Latitude, Longitude = eventToAdd.EventLocation.Longitude, Status = eventToAdd.EventStatus.StatusName }; HttpResponseMessage successfulResponse = Request.CreateResponse<EventModel>(HttpStatusCode.Created, resultEvent); return successfulResponse; } return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState); } }
static void Main(string[] args) { var db = new SocialLifeContext(); var status = new Status(); status.StatusName = "Online"; status.StatusId = 1; db.Statuses.Add(status); db.SaveChanges(); }
public HttpResponseMessage GetEventInfo(int id, [FromUri]string sessionKey) { var context = new SocialLifeContext(); using (context) { if (ModelState.IsValid) { User sender = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); Event chosenEvent = context.Events.Where(ev => ev.EventId == id).FirstOrDefault(); if (sender == null || chosenEvent == null) { throw new ArgumentOutOfRangeException("No such user or invalid key."); } var usersList = chosenEvent.Users.ToList(); EventModel eventInfo = new EventModel() { Name = chosenEvent.EventName, Content = chosenEvent.EventContent, CreatorName = chosenEvent.Users.First().DisplayName, AvatarUrl = chosenEvent.AvatarUrl, Date = chosenEvent.EventDate, Longitude = chosenEvent.EventLocation.Longitude, Latitude = chosenEvent.EventLocation.Latitude, Status = chosenEvent.EventStatus.StatusName, UsersList = new List<UserModel>() }; if (usersList != null) { foreach (var user in usersList) { var newUser = new UserModel() { Username = user.Username, DisplayName = user.DisplayName, Id = user.UserId }; eventInfo.UsersList.Add(newUser); } } HttpResponseMessage successfulResponse = Request.CreateResponse<EventModel>(HttpStatusCode.OK, eventInfo); return successfulResponse; } return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState); } }
public HttpResponseMessage GetEventMessages(int id, [FromUri] string sessionKey)//, [FromUri]int userId) { var context = new SocialLifeContext(); using (context) { User currentUser = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); Event chosenEvent = context.Events.Where(ev => ev.EventId == id).FirstOrDefault(); if (currentUser == null || chosenEvent == null) { throw new ArgumentOutOfRangeException("No such user, event or invalid key."); } var messages = context.Messages.Where(msg => msg.EventId == id).ToList(); if (messages == null) { throw new ArgumentNullException("No messages found."); } var orderedMessages = messages.AsQueryable().OrderBy(msg => msg.MessageDate).ToList(); ICollection <MessageModel> messagesModel = new List <MessageModel>(); foreach (var singleMessage in orderedMessages) { //if the receiver gets a message, it changes the status to "read" var readMessageStatus = context.Statuses.Where(st => st.StatusName == "Read").First().StatusId; if (singleMessage.StatusId != readMessageStatus && singleMessage.SenderId == id) { singleMessage.StatusId = readMessageStatus; context.SaveChanges(); } messagesModel.Add(new MessageModel() { Content = singleMessage.MessageContent, DateString = singleMessage.MessageDate.ToString("dd/MMM/yy H:mm:ss"), Sender = singleMessage.Sender.DisplayName, Event = chosenEvent.EventName, Status = singleMessage.Status.StatusName }); } HttpResponseMessage successfulResponse = Request.CreateResponse <ICollection <MessageModel> >(HttpStatusCode.OK, messagesModel); //this.SendNotification(id); return(successfulResponse); } }
public HttpResponseMessage PostUserMessage([FromUri] string sessionKey, [FromBody] MessageModel message) { var context = new SocialLifeContext(); using (context) { if (ModelState.IsValid) { User sender = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); var receiver = context.Users.Where(us => us.UserId == message.ReceiverId).FirstOrDefault(); if (sender == null || receiver == null) { throw new ArgumentOutOfRangeException("No such user, event or invalid key."); } //CHECK IF RECEIVER IS FRIEND if (!sender.Profile.FriendsList.Contains(receiver.UserId.ToString())) { throw new ArgumentOutOfRangeException("This user is not in your friends list."); } Message messageToPush = new Message() { MessageContent = message.Content, MessageDate = message.Date, Sender = sender, Receiver = receiver, StatusId = context.Statuses.Where(st => st.StatusName == "Delivered").First().StatusId, }; context.Messages.Add(messageToPush); context.SaveChanges(); MessageModel resultMessage = new MessageModel() { Content = messageToPush.MessageContent, Date = messageToPush.MessageDate, Sender = messageToPush.Sender.DisplayName, Receiver = messageToPush.Receiver.DisplayName }; HttpResponseMessage successfulResponse = Request.CreateResponse <MessageModel>(HttpStatusCode.Created, resultMessage); //this.SendNotification(id); return(successfulResponse); } return(this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState)); } }
public HttpResponseMessage PostFreeFriends([FromUri] string sessionKey, [FromBody] MessageModel message) { var context = new SocialLifeContext(); using (context) { if (ModelState.IsValid) { User sender = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); var friends = sender.Profile.FriendsList.Split(' ', ','); int count = 0; if (sender == null) { throw new ArgumentOutOfRangeException("No such user, event or invalid key."); } foreach (var friend in friends) { int friendId = int.Parse(friend); var receiver = context.Users.Where(us => us.UserId == friendId).FirstOrDefault(); if (receiver.Profile.Status.StatusName == "Free") { Message messageToPush = new Message() { MessageContent = message.Content, MessageDate = message.Date, Sender = sender, Receiver = receiver, StatusId = context.Statuses.Where(st => st.StatusName == "Delivered").First().StatusId, }; context.Messages.Add(messageToPush); count++; } } context.SaveChanges(); HttpResponseMessage successfulResponse = Request.CreateResponse <string>(HttpStatusCode.Created, "Posted to " + count + " free friends."); return(successfulResponse); } return(this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState)); } }
public HttpResponseMessage GetSearchEvents(int id, [FromUri]string sessionKey) { var context = new SocialLifeContext(); using (context) { if (ModelState.IsValid) { User sender = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); User userToSearch = context.Users.Where(us => us.UserId == id).FirstOrDefault(); ICollection<Event> foundEvents = userToSearch.Events.ToList(); if (sender == null) { throw new ArgumentOutOfRangeException("No such user, no found events or invalid key."); } if (foundEvents.Count == 0) { HttpResponseMessage failResponse = Request.CreateResponse<string>(HttpStatusCode.OK, "No results found"); return failResponse; } ICollection<EventModel> results = new List<EventModel>(); foreach (var chosenEvent in foundEvents) { EventModel eventInfo = new EventModel() { EventId = chosenEvent.EventId, Name = chosenEvent.EventName, Date = chosenEvent.EventDate }; results.Add(eventInfo); } HttpResponseMessage successfulResponse = Request.CreateResponse<ICollection<EventModel>>(HttpStatusCode.OK, results); return successfulResponse; } return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState); } }
public HttpResponseMessage PostEventMessage([FromUri] string sessionKey, [FromBody] MessageModel message) { var context = new SocialLifeContext(); using (context) { if (ModelState.IsValid) { User sender = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); var messageEvent = context.Events.Where(ev => ev.EventId == message.EventId).FirstOrDefault(); if (sender == null || messageEvent == null) { throw new ArgumentOutOfRangeException("No such user, event or invalid key."); } Message messageToPush = new Message() { MessageContent = message.Content, MessageDate = message.Date, Sender = sender, EventId = messageEvent.EventId, StatusId = context.Statuses.Where(st => st.StatusName == "Delivered").First().StatusId, }; context.Messages.Add(messageToPush); context.SaveChanges(); MessageModel resultMessage = new MessageModel() { Content = messageToPush.MessageContent, Date = messageToPush.MessageDate, Sender = messageToPush.Sender.DisplayName, Event = messageEvent.EventName }; HttpResponseMessage successfulResponse = Request.CreateResponse <MessageModel>(HttpStatusCode.Created, resultMessage); //this.SendNotification(id); return(successfulResponse); } return(this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState)); } }
public HttpResponseMessage GetSearchUsers([FromUri] string username, [FromUri] string sessionKey) { var context = new SocialLifeContext(); using (context) { User userEntity = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); if (userEntity == null) { throw new ArgumentException("No such logged user."); } ICollection <User> foundUsers = context.Users.Where(us => us.Username.ToLower().Contains(username.ToLower()) || us.DisplayName.ToLower().Contains(username.ToLower())) .ToList(); if (foundUsers != null) { List <UserModel> usersList = new List <UserModel>(); foreach (var foundUser in foundUsers) { if (foundUser != userEntity) { UserModel userProfile = new UserModel() { Username = foundUser.Username, Id = foundUser.UserId, DisplayName = foundUser.DisplayName, }; usersList.Add(userProfile); } } var response = Request.CreateResponse <List <UserModel> >(HttpStatusCode.OK, usersList); return(response); } else { throw new ArgumentOutOfRangeException("No such user found."); } } }
public HttpResponseMessage PutUpdateEvent(int id, [FromUri]string sessionKey, [FromBody]EventModel updatedEvent) { var context = new SocialLifeContext(); using (context) { if (ModelState.IsValid) { User sender = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); Event chosenEvent = context.Events.Where(ev => ev.EventId == id).FirstOrDefault(); if (sender == null || chosenEvent == null) { throw new ArgumentOutOfRangeException("No such user or invalid key."); } if (sender != chosenEvent.Users.First()) { throw new ArgumentException("You do not have permission to do that."); } chosenEvent.EventContent = updatedEvent.Content; chosenEvent.EventDate = updatedEvent.Date; chosenEvent.EventName = updatedEvent.Name; chosenEvent.AvatarUrl = updatedEvent.AvatarUrl; var newStatus = updatedEvent.Status; chosenEvent.StatusId = context.Statuses.Where(st => st.StatusName == newStatus).First().StatusId; if (updatedEvent.Latitude != null && updatedEvent.Longitude != null) { chosenEvent.EventLocation = new Location() { Date = updatedEvent.Date, Latitude = updatedEvent.Latitude, Longitude = updatedEvent.Longitude, }; } context.SaveChanges(); HttpResponseMessage successfulResponse = Request.CreateResponse(HttpStatusCode.OK); return successfulResponse; } return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState); } }
public HttpResponseMessage Logout(string sessionKey) { var context = new SocialLifeContext(); using (context) { User userEntity = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); if (userEntity == null) { throw new ArgumentException("No such logged user."); } userEntity.SessionKey = null; context.SaveChanges(); var response = Request.CreateResponse(HttpStatusCode.OK); return(response); } }
public HttpResponseMessage GetSearchEvents([FromUri]string name, [FromUri]string sessionKey) { var context = new SocialLifeContext(); using (context) { if (ModelState.IsValid) { User sender = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); ICollection<Event> foundEvents = context.Events.Where(ev => ev.EventName.ToLower().Contains(name.ToLower()) && ev.EventStatus.StatusName == "Public") .ToList(); if (sender == null || foundEvents.Count == 0) { throw new ArgumentOutOfRangeException("No such user, no found events or invalid key."); } ICollection<EventModel> results = new List<EventModel>(); foreach (var chosenEvent in foundEvents) { EventModel eventInfo = new EventModel() { EventId = chosenEvent.EventId, Name = chosenEvent.EventName, CreatorName = chosenEvent.Users.First().DisplayName, Date = chosenEvent.EventDate }; results.Add(eventInfo); } HttpResponseMessage successfulResponse = Request.CreateResponse<ICollection<EventModel>>(HttpStatusCode.OK, results); return successfulResponse; } return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState); } }
public HttpResponseMessage DeleteEvent(int id, [FromUri]string sessionKey) { var context = new SocialLifeContext(); using (context) { if (ModelState.IsValid) { User sender = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); Event chosenEvent = context.Events.Where(ev => ev.EventId == id).FirstOrDefault(); if (sender != chosenEvent.Users.First()) { throw new ArgumentException("You do not have permission to do that."); } var eventMessages = chosenEvent.Messages.ToList(); foreach (var message in eventMessages) { context.Messages.Remove(message); } var eventLocation = chosenEvent.EventLocation; context.Locations.Remove(eventLocation); context.Events.Remove(chosenEvent); context.SaveChanges(); HttpResponseMessage successfulResponse = Request.CreateResponse(HttpStatusCode.OK); return successfulResponse; } return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState); } }
public HttpResponseMessage PutRemoveUserFromEvent(int id, [FromUri]string sessionKey, [FromUri]int userId) { var context = new SocialLifeContext(); using (context) { if (ModelState.IsValid) { User sender = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); User userToRemove = context.Users.Where(us => us.UserId == userId).FirstOrDefault(); Event chosenEvent = context.Events.Where(ev => ev.EventId == id).FirstOrDefault(); if (sender == null || chosenEvent == null) { throw new ArgumentOutOfRangeException("No such user or invalid key."); } if (chosenEvent.Users.First() != sender && sender != userToRemove) { throw new ArgumentException("You don't have permission to do that."); } if (chosenEvent.Users.First() == sender ^ sender == userToRemove) { chosenEvent.Users.Remove(userToRemove); context.SaveChanges(); } HttpResponseMessage successfulResponse = Request.CreateResponse(HttpStatusCode.OK); return successfulResponse; } return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState); } }
public HttpResponseMessage PutAddUserToEvent(int id, [FromUri]string sessionKey, [FromUri]int userId) { var context = new SocialLifeContext(); using (context) { if (ModelState.IsValid) { User sender = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); Event chosenEvent = context.Events.Where(ev => ev.EventId == id).FirstOrDefault(); if (sender == null || chosenEvent == null) { throw new ArgumentOutOfRangeException("No such user or invalid key."); } if (userId == 0) { chosenEvent.Users.Add(sender); context.SaveChanges(); } else { var friend = context.Users.Where(us => us.UserId == userId).FirstOrDefault(); //ADD CHECK TO SEE IF USER IS FRIEND chosenEvent.Users.Add(friend); context.SaveChanges(); } HttpResponseMessage successfulResponse = Request.CreateResponse(HttpStatusCode.OK); return successfulResponse; } return this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState); } }
public HttpResponseMessage PutUpdateProfile([FromBody] ProfileModel updatedProfile, [FromUri] string sessionKey) { var context = new SocialLifeContext(); using (context) { User userEntity = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); if (userEntity == null) { throw new ArgumentException("No such logged user."); } if (updatedProfile.AuthCode != userEntity.AuthCode) { throw new ArgumentException("Wrong password."); } userEntity.Profile.About = updatedProfile.About; userEntity.Profile.Avatar = updatedProfile.Avatar; userEntity.Profile.BirthDate = updatedProfile.BirthDate; userEntity.Profile.City = updatedProfile.City; userEntity.Profile.Country = updatedProfile.Country; userEntity.Profile.Gender = updatedProfile.Gender; userEntity.Profile.Mood = updatedProfile.Mood; userEntity.Profile.PhoneNumber = updatedProfile.PhoneNumber; //CHECK THIS!!!!! var statusId = context.Statuses.Where(st => st.StatusName == updatedProfile.Status).First(); userEntity.Profile.StatusId = context.Statuses.Where(st => st.StatusName == updatedProfile.Status).First().StatusId; userEntity.DisplayName = updatedProfile.DisplayName; context.SaveChanges(); var response = Request.CreateResponse(HttpStatusCode.OK); return(response); } }
public HttpResponseMessage GetUserProfile(int id, [FromUri] string sessionKey) { var context = new SocialLifeContext(); using (context) { User userEntity = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); if (userEntity == null) { throw new ArgumentException("No such logged user."); } User foundUser = context.Users.Where(us => us.UserId == id).FirstOrDefault(); if (foundUser != null) { ProfileModel userProfile = new ProfileModel() { UserId = foundUser.UserId, About = foundUser.Profile.About, Avatar = foundUser.Profile.Avatar, BirthDate = foundUser.Profile.BirthDate, City = foundUser.Profile.City, Country = foundUser.Profile.Country, FriendsList = new List <UserModel>(), Gender = foundUser.Profile.Gender, DisplayName = foundUser.DisplayName, Mood = foundUser.Profile.Mood, Status = foundUser.Profile.Status.StatusName, PhoneNumber = foundUser.Profile.PhoneNumber, EventsCount = foundUser.Events.Count }; if (foundUser.Locations.Count > 0) { userProfile.LastLatitude = foundUser.Locations.LastOrDefault().Latitude; userProfile.LastLongitute = foundUser.Locations.LastOrDefault().Longitude; userProfile.LastLocationDate = foundUser.Locations.LastOrDefault().Date; } if (!String.IsNullOrEmpty(foundUser.Profile.FriendsList)) { var friends = foundUser.Profile.FriendsList.Split(' ', ','); foreach (var friend in friends) { int friendId = int.Parse(friend); var friendFromDb = context.Users.Where(us => us.UserId == friendId).First(); var friendToAdd = new UserModel() { DisplayName = friendFromDb.DisplayName, Id = friendFromDb.UserId }; userProfile.FriendsList.Add(friendToAdd); } } var response = Request.CreateResponse <ProfileModel>(HttpStatusCode.OK, userProfile); return(response); } else { throw new ArgumentOutOfRangeException("No such user found."); } } }
public HttpResponseMessage PutRemoveFriend(int id, [FromUri] string sessionKey) { var context = new SocialLifeContext(); using (context) { User userEntity = context.Users.Where(us => us.SessionKey == sessionKey).FirstOrDefault(); User removedUser = context.Users.Where(us => us.UserId == id).FirstOrDefault(); if (userEntity == null || removedUser == null) { throw new ArgumentException("No such user."); } var friends = userEntity.Profile.FriendsList; var friendsList = friends.Split(' ', ','); string newList = ""; foreach (var friend in friendsList) { if (id != int.Parse(friend)) { if (newList == "") { newList = newList + friend; } else { newList = newList + "," + friend; } } } userEntity.Profile.FriendsList = newList; var removedUserFriends = removedUser.Profile.FriendsList; string[] removedFriendsList = { }; if (!String.IsNullOrEmpty(removedUserFriends)) { removedFriendsList = removedUserFriends.Split(' ', ','); } string otherNewList = ""; foreach (var friend in removedFriendsList) { if (id != int.Parse(friend)) { if (otherNewList == "") { otherNewList = otherNewList + friend; } else { otherNewList = otherNewList + "," + friend; } } } removedUser.Profile.FriendsList = otherNewList; context.SaveChanges(); var response = Request.CreateResponse(HttpStatusCode.OK); return(response); } }