コード例 #1
0
        public User Create(User user, string password, string origin)
        {
            AllocationManager allocationManager = new AllocationManager();
            ParkingManager    parkingManager    = new ParkingManager();

            // No Password Provided
            if (string.IsNullOrWhiteSpace(password))
            {
                throw new AppException("Password is required");
            }

            // Checking If Email ALready Exists
            if (_context.Users.Any(x => x.Email == user.Email))
            {
                throw new AppException("Email " + user.Email + " is already taken");
            }

            // Checking If the User is First User
            var isFirstUser = _context.Users.Count() == 0;

            // if First User, then Admin Role is granted
            if (isFirstUser)
            {
                user.Role = "Admin";
            }

            // various conditionals to revoke another Admin Role
            // and, pass relevant User role to users
            if (string.IsNullOrWhiteSpace(user.Role))
            {
                user.Role = "User";
            }

            if (user.Role != "User" && user.Role != "AllocationManager" && user.Role != "ParkingManager" && user.Role != "Admin")
            {
                user.Role = "User";
            }

            var role = user.Role == "Admin";

            if (user.Role == "Admin" && !isFirstUser)
            {
                user.Role = "User";
            }

            // declaring PasswordHash and PasswordSalt Blobs
            byte[] passwordHash, passwordSalt;

            // Creating PasswordHash and PasswordSalt for Password
            CreatePasswordHash(password, out passwordHash, out passwordSalt);

            user.PasswordHash = passwordHash;
            user.PasswordSalt = passwordSalt;

            // Saving Data for AllocationManager
            if (user.Role == "AllocationManager")
            {
                allocationManager.Name         = user.Name;
                allocationManager.Email        = user.Email;
                allocationManager.Address      = user.Address;
                allocationManager.City         = user.City;
                allocationManager.State        = user.State;
                allocationManager.Phone        = user.Phone;
                allocationManager.PasswordHash = user.PasswordHash;
                allocationManager.PasswordSalt = user.PasswordSalt;
                allocationManager.Created      = DateTime.Now;
                _context.AllocationManagers.Add(allocationManager);
                _context.SaveChanges();
            }

            // Saving Data for ParkingManager
            if (user.Role == "ParkingManager")
            {
                parkingManager.Name         = user.Name;
                parkingManager.Email        = user.Email;
                parkingManager.Address      = user.Address;
                parkingManager.City         = user.City;
                parkingManager.State        = user.State;
                parkingManager.Phone        = user.Phone;
                parkingManager.PasswordHash = user.PasswordHash;
                parkingManager.PasswordSalt = user.PasswordSalt;
                parkingManager.Created      = DateTime.Now;
                _context.ParkingManagers.Add(parkingManager);
                _context.SaveChanges();
            }

            user.Created           = DateTime.Now;
            user.VerificationToken = randomTokenString();
            _context.Users.Add(user);
            _context.SaveChanges();

            // Comment Out to send Verification Email
            // sendVerificationEmail(user, origin);

            return(user);
        }
コード例 #2
0
 public void Delete(int id)
 {
     Models.Book book = Get(id);
     _dataContext.Books.Remove(book);
     _dataContext.SaveChanges();
 }
コード例 #3
0
 public Product Add(Product product)
 {
     _context.Product.Add(product);
     _context.SaveChanges();
     return(product);
 }