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); }
public void Delete(int id) { Models.Book book = Get(id); _dataContext.Books.Remove(book); _dataContext.SaveChanges(); }
public Product Add(Product product) { _context.Product.Add(product); _context.SaveChanges(); return(product); }