/// <summary> /// Creates the database. /// </summary> public static void CreateDatabase() { List<string> usernames = new List<string>(); for (int i = 1; i < 10; i++) usernames.Add("User" + i); List<MCSite> allsites = new List<MCSite>(); List<MCRoom> allrooms = new List<MCRoom>(); using (var ctx = new MainContext()) { List<MCParticularity> allparts = new List<MCParticularity>(); allparts.Add(new MCParticularity() { Name = "Videoconf" }); allparts.Add(new MCParticularity() { Name = "Digilab" }); allparts.Add(new MCParticularity() { Name = "Telephone" }); allparts.Add(new MCParticularity() { Name = "Secure" }); for (int i = 1; i < 10; i++) { List<MCRoom> rooms = new List<MCRoom>(); for (int j = 1; j < 10; j++) { rooms.Add(CreateRoom("Site" + i + "Room" + j, allparts)); } allrooms.AddRange(rooms); MCSite site = CreateSite("Site" + i, rooms); allsites.Add(site); } foreach (string username in usernames) { ctx.UsersProfile.Add(CreateUserProfile(username, allsites)); } ctx.SaveChanges(); ctx.Particularities.AddRange(allparts); ctx.SaveChanges(); ctx.Rooms.AddRange(allrooms); ctx.SaveChanges(); ctx.Sites.AddRange(allsites); ctx.SaveChanges(); } using (var ctx = new AuthenticationContext()) { foreach (string username in usernames) { ACUser user = new ACUser() { Username = username, Password = Tools.Security.Hash(username + "pass") }; ctx.Users.Add(user); } ctx.SaveChanges(); } using (var ctx = new BookingContext()) { for(int i = 1; i < 5000; i++) ctx.Bookings.Add(CreateBooking(usernames, allrooms.Count, "Subject" + i)); ctx.SaveChanges(); } }
/// <summary> /// Authenticate the User with specified username and password. /// </summary> /// <param name="username">Username.</param> /// <param name="password">Password.</param> public bool Authenticate(UserIdentifier username, string password) { bool isOk = false; password = Tools.Security.Hash(password); // sha1.ComputeHash(); using (var ctx = new AuthenticationContext()) { var query = from user in ctx.Users where user.Username.Equals(username.Value) && user.Password.Equals(password) select user.Username; isOk = query.Count() != 0; } return isOk; }