Example #1
0
        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, "");
        }
Example #2
0
        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("/"));
        }
Example #5
0
        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"));
        }
Example #6
0
 public async Task SaveDbAsync()
 {
     await _context.SaveChangesAsync();
 }
Example #7
0
        public async Task OnPostAsync()
        {
            await _context.Companies.AddAsync(Company);

            await _context.SaveChangesAsync();
        }