public async Task <(bool Success, string Error)> PurchaseOfferAsync(User user, Guid OfferId) { if (!user.UserRoles.Any(x => x.Role.Name == Roles.Customer)) { return(false, "Not sufficent permissions"); } var offer = await _context .Offers .Include(x => x.Company) .FirstOrDefaultAsync(x => x.Id == OfferId && x.IsSold == false); if (offer == null) { return(false, "Offer not Found"); } var user_paid = TryToGetMoneyFromUsersExternalPayingProviderAsync(user, offer.Price); if (!user_paid) { return(false, "You have to pay via your bank or something"); } offer.IsSold = true; var newVoucher = new Voucher(user, offer.Price, offer.Company, DateTime.UtcNow.AddYears(1)); await _context.Vouchers.AddAsync(newVoucher); await _context.SaveChangesAsync(); return(true, ""); }
public async Task OnPostAsync() { var company = await _context.Companies.FindAsync(Company.Id); company.Name = Company.Name; await _context.SaveChangesAsync(); }
public async Task <IActionResult> OnPost(UserRegistrationInput input) { if ((input.Login != null) && (input.Password != null)) { var user = new User(input.Login); if (await UserExists(user.Login)) { return(BadRequest("Login exists")); } byte[] passwordHash, passwordSalt; CreatePasswordhash(input.Password, out passwordHash, out passwordSalt); user.PasswordHash = passwordHash; user.PasswordSalt = passwordSalt; await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); return(Redirect("/Offers/offers")); } return(Redirect("/error")); }
public async Task <IActionResult> OnPost(CreateCompanyInput input) { var validation = ValidateFluently(input); if (!validation.Success) { Message = validation.Error; return(Page()); } if (_context.Users.Any(x => x.Login.ToLower() == input.Login.ToLower())) { Message = "User with given login already exists."; return(Page()); } if (_context.Companies.Any(x => x.Name.ToLower() == input.Name.ToLower())) { Message = "Company with given name already exists."; return(Page()); } var user = new User(input.Login); user.PasswordHash = _hasher.HashPassword(user, input.Password); var role = _context.Roles.First(x => x.Name == Roles.Company); var userRole = new UserRole { Role = role, User = user }; user.UserRoles.Add(userRole); var company = new Company(input.Name, input.Nip, input.BankAccountNumber, user); await _context.AddAsync(company); await _context.SaveChangesAsync(); return(Redirect("/")); }
public async Task <IActionResult> OnPost() { if (input != null) { var userId = HttpContext.Request.Cookies["userId"]; var type = await _context.OfferTypes.FirstOrDefaultAsync(x => x.Id == input.TypeId); var company = await _context.Companies.FirstOrDefaultAsync(x => x.OwnerId == Int32.Parse(userId)); if (company == null) { return(null); } _context.Offers.Add(new Offer(input.Name, type, input.Description, company, input.Price)); await _context.SaveChangesAsync(); return(Page()); } return(Redirect("/error")); }
public async Task SaveDbAsync() { await _context.SaveChangesAsync(); }
public async Task OnPostAsync() { await _context.Companies.AddAsync(Company); await _context.SaveChangesAsync(); }