public void Save(TadmapImage image) { bool isNew = false; TadmapDb db = new TadmapDb(); UserImage dbImage = db.UserImages.SingleOrDefault(i => i.Id == image.Id); if (dbImage == null) { dbImage = new UserImage(); // can't change date added, id or owner dbImage.DateAdded = DateTime.Now; dbImage.UserId = image.UserId; dbImage.Id = image.Id; isNew = true; } else { isNew = false; } dbImage.Title = image.Title; dbImage.Description = image.Description; dbImage.Key = image.Key; dbImage.OffensiveCount = image.IsOffensive ? (byte)1 : (byte)0; dbImage.Privacy = image.IsPublic ? (byte)1 : (byte)0; if (isNew) db.UserImages.InsertOnSubmit(dbImage); db.SubmitChanges(); }
public IQueryable<TadmapImage> GetAllImages() { TadmapDb db = new TadmapDb(); return from i in db.UserImages select new TadmapImage { Id = i.Id, Title = i.Title, Description = i.Description, Key = i.Key, IsPublic = i.Privacy == 1, IsOffensive = i.OffensiveCount > 0, OwnerName = i.User.UserOpenIds.Single().OpenIdUrl, ImageSet = new ImageSet1(i.Key) }; }
private Guid CreateNewUser(string openIdUrl) { TadmapDb db = new TadmapDb(Database.TadmapConnection); User newUser = new User(); newUser.Id = Guid.NewGuid(); newUser.Name = string.Empty; UserRole newUserRole = new UserRole(); newUserRole.UserId = newUser.Id; newUserRole.Role = TadmapRoles.Collector; UserOpenId newOpenId = new UserOpenId(); newOpenId.UserId = newUser.Id; newOpenId.OpenIdUrl = openIdUrl; db.Users.InsertOnSubmit(newUser); db.UserRoles.InsertOnSubmit(newUserRole); db.UserOpenIds.InsertOnSubmit(newOpenId); db.SubmitChanges(); return newUser.Id; }
/// <summary> /// This authenticates a user based on a response from an openid provider. /// </summary> private ActionResult AuthenticateUser(IAuthenticationResponse response) { if (response.Status != AuthenticationStatus.Authenticated) throw new ArgumentException("The response status must be 'Authenticated'. (" + response.Status.ToString() + ")", "response"); TadmapDb db = new TadmapDb(); var user = db.UserOpenIds.Where(u => u.OpenIdUrl == response.ClaimedIdentifier.ToString()).SingleOrDefault(); Guid userId; if (user != null) { userId = user.UserId; } else { userId = CreateNewUser(response.ClaimedIdentifier.ToString()); } var roles = from role in db.UserRoles where role.UserId == userId select role.Role; CookieUserData userData = new CookieUserData( userId, response.FriendlyIdentifierForDisplay.ToString(), roles.ToArray() ); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( 1, response.ClaimedIdentifier.ToString(), DateTime.Now, DateTime.Now.AddHours(5), false, userData.ToString() ); // Encrypt the ticket. string encTicket = FormsAuthentication.Encrypt(ticket); // Create the cookie. Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket)); return RedirectToAction("Index", new { controller = "Home" }); }