예제 #1
0
        public ActionResult ViewAuctionDetails(AuctionViewModel model)
        {
            var bidRepo = new BidRepository();
            var aucRepo = new AuctionRepository();
            var userRepo = new UserRepository();
            var auction = aucRepo.GetAuctionById(model.Id);
            model.Bid = aucRepo.GetHighestBid(model.Id);
            var returnModel = auction.ConvertToViewModel();
            if (model.NextBid.Price > (auction.MinPrice + auction.Interval) && model.NextBid.Price > model.Bid.Price)
            {
                model.NextBid.Auction = auction;
                model.NextBid.Active = true;
                model.NextBid.Date = DateTime.Now;
                model.NextBid.User = userRepo.GetUserById(1);
                bidRepo.InsertBid(model.NextBid);

                auction.Bids.Add(model.NextBid);
                returnModel.Bid = model.NextBid;
                returnModel.ErrorMessage = "Bud på auktionen er godkendt!";
            }
            else
            {
                returnModel.Bid = model.Bid;
                returnModel.ErrorMessage = "Bud for lavt!";
            }

            return View(returnModel);
        }
        public void TestDecryptUser()
        {
            var userRepo = new UserRepository();

            const string original = "2804900000";
            var user = userRepo.GetUserById(11);
            byte[] key = new Hashing().MD5(user.uname + user.created_timestamp);
            string ssn = Encryption.DecryptString(user.ssn, key);

            Assert.AreEqual(original, ssn);
        }
        public bool ReserveBattery(string stationValue, string userValue)
        {
            var userRepo = new UserRepository();
            var reservationRepo = new ReservationRepository();
            var batteryRepo = new BatteryRepository();
            var station = _stationRepository.GetStationById(Convert.ToInt32(stationValue), true);
            var user = userRepo.GetUserById(Convert.ToInt32(userValue));

            if (user == null || station == null)
                return false;

            var isBatteryAvailable = station.BatteryStorages.Available > 0;
            if (isBatteryAvailable)
            {
                var batteryCollection =
                    station.BatteryStorages.BatteryCollections.FirstOrDefault(x => x.Battery.Status == 1);
                if (batteryCollection != null)
                {
                    var battery = batteryCollection.Battery;
                    battery.Status = 3;

                    var reservation = new Reservation
                    {
                        UserId = user.ID,
                        StationId = station.ID,
                        CreatedDate = DateTime.Now,
                        ExpiredDate = DateTime.Now.AddDays(1),
                        IsActive = true
                    };

                    reservationRepo.Insert(reservation);
                    batteryRepo.Update(battery);

                    return true;
                }
            }

            return false;
        }