public bool Logout(Stream userData) { // First validate the user priviledges var reader = new StreamReader(userData); string content = reader.ReadToEnd(); LCPostModel postDataModel = JsonConvert.DeserializeObject <LCPostModel>(content); if (validateUser(postDataModel) == false) { return(false); } IEnumerable <Session> sessions; using (var authDbEntities = new LCAuthDBEntities()) { // Find the user from the AuthDB string userEmail = postDataModel.Email; sessions = authDbEntities.Sessions.Where(s => s.Email == userEmail); foreach (var s in sessions) { authDbEntities.Sessions.Remove(s); } authDbEntities.SaveChanges(); return(true); } }
public bool DeleteEvent(Stream eventData) { // First validate the user priviledges var reader = new StreamReader(eventData); string content = reader.ReadToEnd(); LCPostModel postDataModel = JsonConvert.DeserializeObject <LCPostModel>(content); if (validateUser(postDataModel) == false) { return(false); } using (dbEntities) { // Unpack the Event EventModel anEvent = JsonConvert.DeserializeObject <EventModel>(postDataModel.ContentData); // Check whether the event exists LCEvent eventToDelete = dbEntities.LCEvents.FirstOrDefault(e => e.EventId == anEvent.EventId); if (eventToDelete == null) { return(false); } foreach (var creation in dbEntities.LCEventCreations.Where(creation => creation.EventId == eventToDelete.EventId)) { dbEntities.LCEventCreations.Remove(creation); } foreach (var participation in dbEntities.LCParticipations.Where(participation => participation.EventId == eventToDelete.EventId)) { dbEntities.LCParticipations.Remove(participation); } dbEntities.LCEvents.Remove(eventToDelete); dbEntities.SaveChanges(); } return(true); }
private bool validateUser(LCPostModel postDataModel) { using (var authDbEntities = new LCAuthDBEntities()) { Session entry = authDbEntities.Sessions.FirstOrDefault(e => e.Email == postDataModel.Email && e.AccessToken == postDataModel.AccessToken); if (entry == null) { return(false); } } return(true); }
public string Login(Stream loginData) { // convert Stream Data to StreamReader var reader = new StreamReader(loginData); string content = reader.ReadToEnd(); LCPostModel postDataModel = JsonConvert.DeserializeObject <LCPostModel>(content); UserModel userModel = JsonConvert.DeserializeObject <UserModel>(postDataModel.ContentData); using (var authDbEntities = new LCAuthDBEntities()) { // Find the user from the AuthDB string name = userModel.email; User user = authDbEntities.Users.FirstOrDefault(u => u.Email == name); if (user == null) { return(null); } if (user.Password != userModel.password) { return(null); } else { Session session = authDbEntities.Sessions.FirstOrDefault(u => u.Email == name); if (session != null) { return(null); } string token = generateToken(); string ip = getIP(); // Add the user to the user pool Session entry = new Session() { Email = name, SessionID = 0, StartTime = DateTime.Now, IP = ip, AccessToken = token, Duration = 60 }; authDbEntities.Sessions.Add(entry); authDbEntities.SaveChanges(); return(token); } } }
public string Join(Stream data) { // convert Stream Data to StreamReader var reader = new StreamReader(data); string content = reader.ReadToEnd(); LCPostModel postModel = JsonConvert.DeserializeObject <LCPostModel>(content); UserModel userModel = JsonConvert.DeserializeObject <UserModel>(postModel.ContentData); // Check if the user email already exists User user = null; using (var authDbEntities = new LCAuthDBEntities()) { user = authDbEntities.Users.FirstOrDefault(u => u.Email == userModel.email); if (user != null) { return("The email address has been used."); } // Create new user User newUser = new User() { Email = userModel.email, Password = userModel.password }; authDbEntities.Users.Add(newUser); authDbEntities.SaveChanges(); } using (dbEntities) { LCUser newLCUser = new LCUser() { Email = userModel.email, UserName = userModel.username, Enabled = true }; dbEntities.LCUsers.Add(newLCUser); dbEntities.SaveChanges(); } return("Registration Successful!"); }
public string ListCreatedEvents(Stream requestData) { var reader = new StreamReader(requestData); string content = reader.ReadToEnd(); LCPostModel postDataModel = JsonConvert.DeserializeObject <LCPostModel>(content); if (validateUser(postDataModel) == false) { return(null); } else { List <int> eventIds = new List <int>(); using (dbEntities) { var creations = dbEntities.LCEventCreations.Where(c => c.LCUser.Email == postDataModel.Email); eventIds.AddRange(creations.Select(creation => creation.EventId)); return(JsonConvert.SerializeObject(eventIds)); } } }
public string EventVote(Stream requestData) { var reader = new StreamReader(requestData); string content = reader.ReadToEnd(); LCPostModel postDataModel = JsonConvert.DeserializeObject <LCPostModel>(content); if (validateUser(postDataModel) == false) { return(null); } else { EventModel eventModel = JsonConvert.DeserializeObject <EventModel>(postDataModel.ContentData); int eventId = eventModel.EventId; LCEvent theEvent = dbEntities.LCEvents.FirstOrDefault(e => e.EventId == eventId); if (theEvent == null) { return(null); } string url = baseURI + "/event/vote/" + theEvent.EventGUID; return(JsonConvert.SerializeObject(url)); } }
public bool EditEvent(Stream eventData) { // First validate the user priviledges var reader = new StreamReader(eventData); string content = reader.ReadToEnd(); LCPostModel postDataModel = JsonConvert.DeserializeObject <LCPostModel>(content); if (validateUser(postDataModel) == false) { return(false); } using (dbEntities) { // Unpack the Event EventModel anEvent = JsonConvert.DeserializeObject <EventModel>(postDataModel.ContentData); // Check whether the event exists LCEvent eventToUpdate = dbEntities.LCEvents.FirstOrDefault(e => e.EventId == anEvent.EventId); LCStateProvince stateProvince = dbEntities.LCStateProvinces.FirstOrDefault(p => p.StateProvinceCode == anEvent.StateProvinceCode && p.CountryRegionCode == anEvent.CountryRegionCode); // Find the stateProvince instance matching the codes if (eventToUpdate == null) { return(false); } eventToUpdate.Title = anEvent.Title; eventToUpdate.Description = anEvent.Description; if (eventToUpdate.LCAddress != null) { eventToUpdate.LCAddress.AddressLine1 = anEvent.AddressLine1; eventToUpdate.LCAddress.AddressLine2 = anEvent.AddressLine2; eventToUpdate.LCAddress.City = anEvent.City; eventToUpdate.LCAddress.PostalCode = anEvent.PostCode; eventToUpdate.LCAddress.LCStateProvince = stateProvince; } dbEntities.SaveChanges(); } return(true); }
public string EventDetail(Stream requestData) { var reader = new StreamReader(requestData); string content = reader.ReadToEnd(); LCPostModel postDataModel = JsonConvert.DeserializeObject <LCPostModel>(content); if (validateUser(postDataModel) == false) { return(null); } else { EventModel eventModel = JsonConvert.DeserializeObject <EventModel>(postDataModel.ContentData); int eventId = eventModel.EventId; LCEvent theEvent = dbEntities.LCEvents.FirstOrDefault(e => e.EventId == eventId); if (theEvent == null) { return(null); } LCAddress address = theEvent.LCAddress; var eventDetails = new { Title = theEvent.Title, Description = theEvent.Description, TimeSlots = theEvent.TimeSlots, AddressLine1 = (address == null ? null : address.AddressLine1), AddressLine2 = (address == null ? null : address.AddressLine2), City = (address == null ? null : address.City), StateProvinceCode = (address == null ? null : address.LCStateProvince.StateProvinceCode.Trim()), CountryRegionCode = (address == null ? null : address.LCStateProvince.CountryRegionCode.Trim()) }; var str = JsonConvert.SerializeObject(eventDetails); return(str); } }
public string CreateEvent(Stream eventData) { // First validate the user priviledges var reader = new StreamReader(eventData); string content = reader.ReadToEnd(); LCPostModel postDataModel = JsonConvert.DeserializeObject <LCPostModel>(content); if (validateUser(postDataModel) == false) { return(null); } using (dbEntities) { // Create Event EventModel anEvent = JsonConvert.DeserializeObject <EventModel>(postDataModel.ContentData); // Add the address LCStateProvince stateProvince = dbEntities.LCStateProvinces.FirstOrDefault(p => p.StateProvinceCode == anEvent.StateProvinceCode && p.CountryRegionCode == anEvent.CountryRegionCode); if (stateProvince == null) { return(null); } LCAddress addressToAdd = new LCAddress() { AddressLine1 = anEvent.AddressLine1, AddressLine2 = anEvent.AddressLine2, City = anEvent.City, StateProvinceID = stateProvince.StateProvinceID, PostalCode = anEvent.PostCode, SpatialGeolocation = null //TODO string parsing needed. }; dbEntities.LCAddresses.Add(addressToAdd); dbEntities.SaveChanges(); //TODO Address should be checked before being added // Add the event LCEvent eventToAdd = new LCEvent() { TimeSlots = anEvent.TimeSlot, Title = anEvent.Title, Description = anEvent.Description, AddressID = addressToAdd.AddressID, EventGUID = Guid.NewGuid().ToString() }; dbEntities.LCEvents.Add(eventToAdd); dbEntities.SaveChanges(); // Link the creator to the event //We've checked this user is in the authdb, thereofore should also be in the transactional db var creator = dbEntities.LCUsers.FirstOrDefault(u => u.Email == postDataModel.Email); if (creator == null) { return(null); } LCEventCreation creation = new LCEventCreation() { EventId = eventToAdd.EventId, UserId = creator.UserId, CreationTime = DateTime.Now }; dbEntities.LCEventCreations.Add(creation); dbEntities.SaveChanges(); string url = baseURI + "/event/vote/" + eventToAdd.EventGUID; return(JsonConvert.SerializeObject(url)); } return(null); }