Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

UserRepository.cs 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using Microsoft.EntityFrameworkCore;
  2. using Microsoft.EntityFrameworkCore.Internal;
  3. using ProRestaurant.Classes;
  4. using ProRestaurant.Containers;
  5. using ProRestaurant.DBContexts;
  6. using ProRestaurant.Models.Accounts;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Diagnostics;
  10. using System.Linq;
  11. using System.Text.RegularExpressions;
  12. namespace ProRestaurant.Repository.Accounts
  13. {
  14. public class UserRepository : IUserRepository
  15. {
  16. private readonly DBContext dBContext;
  17. public UserRepository(DBContext _DB)
  18. {
  19. dBContext = _DB;
  20. }
  21. public User GetUser(Func<User, bool> where)
  22. {
  23. var user = dBContext.Users.Where(where).FirstOrDefault();
  24. if (user == null)
  25. {
  26. user = new User
  27. {
  28. EmailAddress = "",
  29. Password = "",
  30. FirstName = "",
  31. Surname = "",
  32. Cellphone = ""
  33. };
  34. }
  35. return user;
  36. }
  37. public IEnumerable<User> GetUsers()
  38. {
  39. return dBContext.Users.ToList();
  40. }
  41. public void Insert(User user)
  42. {
  43. dBContext.Add(user);
  44. Save();
  45. }
  46. public UserContainer Login(string UserName, string Password)
  47. {
  48. UserContainer returnObject = new UserContainer();
  49. User user;
  50. string pattern = @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z";
  51. if (Regex.IsMatch(UserName, pattern))
  52. user = dBContext.Users.Where(u => u.EmailAddress == UserName).FirstOrDefault();
  53. else
  54. user = dBContext.Users.Where(u => u.Cellphone == UserName).FirstOrDefault();
  55. if (user != null)
  56. {
  57. if (user.Password == Password)
  58. {
  59. returnObject.user = user;
  60. returnObject.ResultString = "Access Granted";
  61. }
  62. else
  63. returnObject.ResultString = "Password incorrect";
  64. }
  65. else
  66. {
  67. returnObject.ResultString = "User not found";
  68. }
  69. return returnObject;
  70. }
  71. public void Remove(User user)
  72. {
  73. dBContext.Users.Remove(user);
  74. Save();
  75. }
  76. public void Save()
  77. {
  78. dBContext.SaveChanges();
  79. }
  80. public void Update(User user)
  81. {
  82. dBContext.Entry(user).State = EntityState.Modified;
  83. Save();
  84. }
  85. }
  86. }