Task IUserNotifier.NotifyOutbid(User user, Auctions.Auction auction)
		{
			Contract.Requires(user != null);
			Contract.Requires(auction != null);

			throw new NotImplementedException();
		}
示例#2
0
        public IActionResult createAuctions(AuctionViewModel newAuct)
        {
            int?  CurrentUser = HttpContext.Session.GetInt32("CurrentUser");
            Users user        = _context.Users.Where(x => x.idUser == CurrentUser).SingleOrDefault();

            if (newAuct.EndDate < DateTime.Now)
            {
                ViewBag.DateError = "End Date must be after today";
                return(View("createAuctions"));
            }
            if (ModelState.IsValid)
            {
                Auctions auction = new Auctions
                {
                    Product     = newAuct.Product,
                    StartingBid = newAuct.StartingBid,
                    Description = newAuct.Description,
                    EndDate     = newAuct.EndDate,

                    idUser = user.idUser,
                };

                _context.Add(auction);
                _context.SaveChanges();
                return(Redirect("/Dashboard"));
            }
            return(Redirect("/Dashboard"));
        }
示例#3
0
        private void subastasToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var auctions = new Auctions();

            auctions.Show();
            this.Close();
        }
示例#4
0
        public void BuyItem(Auctions auction, Guid userId)
        {
            var ac = (from a in db.Auctions where a.Id == auction.Id select a).DefaultIfEmpty(null).FirstOrDefault();

            if (ac == null)
            {
                return;
            }

            if (!ac.Finalized && auction.EndDate > DateTime.Now && ac.ItemsNumber > 0 && userId != ac.OwnerId)
            {
                ac.ItemsNumber--;
                Buyed b = new Buyed()
                {
                    AuctionId = ac.Id, Date = DateTime.Now, UserId = userId, ItemsNum = 1
                };
                db.Buyed.Add(b);

                if (ac.ItemsNumber == 0)
                {
                    AuctionsRepository aucitonsRepo = new AuctionsRepository(db);
                    aucitonsRepo.CloseAuction(ac);
                }
                else
                {
                    db.SaveChanges();
                }
            }
            db.SaveChanges();
        }
示例#5
0
        private void LoadOffers(Auctions auction)
        {
            offers = offersRepo.GetForAuction(view.AuctionId);

            view.BestBidLabelVisiblity         = true;
            view.HighestBidFieldVisiblity      = true;
            view.BestBidUserNameLabelVisiblity = true;
            view.BidFieldVisiblity             = true;
            view.BidBtnVisiblity = true;

            if (offers.Count() == 0)
            {
                view.BestBidLabelText = "Licytacja od: ";
                view.BestBidUserNameLabelVisiblity = false;
                return;
            }

            view.BestBidUserNameFieldVisiblity = true;
            if (offers[0].Price >= auction.BuyItNowPrice)
            {
                view.BuyItNowLabelVisiblity      = false;
                view.BuyItNowPriceFieldVisiblity = false;
                view.BuyItNowBtnVisiblity        = false;
            }

            view.HighestBidField      = currencyRepo.Exchange(offers[0].Price, currencyCode);
            view.BestBidUserNameField = offers[0].BiddrName;
            view.BestBidderId         = offers[0].BidderId;
            view.MinimumOffer         = currencyRepo.ExchangeWithoutCC((offers[0].Price + 1), currencyCode).ToString();

            view.LoadOffersControls(offers.Count());
        }
示例#6
0
 public AuctionAllBids GetAuctionWithAllBids(Guid id)
 {
     return(Auctions.Where(a => a.id == id)
            .Select(a => new AuctionAllBids
     {
         Auction = new PartialAuction
         {
             id = a.id,
             name = a.name,
             starting_price = a.starting_price,
             duration = a.duration,
             owner = a.owner,
             description = a.description,
             state = a.state,
             created = a.created,
             opened = a.opened,
             closed = a.closed,
             won = a.won
         },
         Bids = a.Bids.OrderByDescending(b => b.amount).Select(bb => new PartialBid
         {
             bidder = bb.bidder,
             amount = bb.amount,
             firstName = bb.Bidder.first_name,
             lastName = bb.Bidder.last_name,
             created = bb.created
         }).ToList()
     }).SingleOrDefault());
 }
        public async Task <Dictionary <string, IEnumerable <BidViewModel> > > GetBidsFromListProduct([FromBody] IEnumerable <ProductsListWithAuction> products)
        {
            if (products.FirstOrDefault() == null)
            {
                return(null);
            }

            Dictionary <string, IEnumerable <BidViewModel> > listlastBids = new Dictionary <string, IEnumerable <BidViewModel> >();

            foreach (var productList in products)
            {
                var auction = config.AuctionHouses.Search(productList.Auction);
                if (auction != null)
                {
                    Auctions.SetAuction(auction);

                    var productsDTO = productList.Products.Select(pr => Mapper.Map <BussinessLogic.Models.ProductDTO>(pr));
                    var listLastBid = await _bidService.ShowLastBidForListProductAsync(productsDTO);

                    var listBidVM = listLastBid.Select(b => Mapper.Map <BidViewModel>(b));

                    listlastBids.Add(productList.Auction, listBidVM);
                }
            }

            return(listlastBids);
        }
        public async Task <JsonResult> Index(string products)
        {
            dynamic listProducts = new ExpandoObject();

            if (Request.IsAjaxRequest())
            {
                try
                {
                    listProducts = JsonConvert.DeserializeObject(products);
                    foreach (var product in (IEnumerable <dynamic>)listProducts)
                    {
                        var auction     = product.auction.ToString();
                        var currAuction = config.AuctionHouses.Search(auction);
                        Auctions.SetAuction(currAuction);
                        ProductDTO currProduct = await _productService.GetProductAsync(Guid.Parse(product.id.ToString()));

                        currProduct.State     = (State)Enum.Parse(typeof(State), product.state.ToString());
                        currProduct.StartDate = DateTime.Now;
                        await _productService.EditProductAsync(currProduct);

                        _logger.Info(string.Format("moderator change state on product  - {0}, auction -{1}", currProduct.Id, auction));
                    }

                    return(Json(JsonConvert.SerializeObject(Url.Action("Index", "Home", new { lang = "en-Us", auction = "Auction1" }))));
                }
                catch (Exception)
                {
                }
            }

            return(Json(JsonConvert.SerializeObject(Url.Action("Index", "Moderate", new { lang = "en-Us", auction = "Auction1" }))));
        }
        public async Task <ActionResult> Index()
        {
            var listPermissions   = (await _customUserManager.GetAllPermissionsAsync()).Where(p => p.UserId == Guid.Parse(ClaimId));
            var dictionaryProduct = new Dictionary <string, IList <ProductViewModel> >();

            foreach (var permission in listPermissions)
            {
                if ((int)permission.Role == (int)Models.Role.Admin)
                {
                    foreach (AuctionHouseElement auction in config.AuctionHouses)
                    {
                        Auctions.SetAuction(auction);
                        var draftProducts = await _productService.ShowProductsForModerationAsync();

                        dictionaryProduct.Add(auction.Name, draftProducts.Select(pr => Mapper.Map <ProductViewModel>(pr)).ToList());
                    }
                }

                if ((int)permission.Role == (int)Models.Role.Moderator)
                {
                    var currAuction = config.AuctionHouses.Search(permission.AuctionId);
                    Auctions.SetAuction(currAuction);

                    var draftProducts = await _productService.ShowProductsForModerationAsync(permission.CategoriesId);

                    if (draftProducts.Count() > 0)
                    {
                        dictionaryProduct.Add(permission.AuctionId, draftProducts.Select(pr => Mapper.Map <ProductViewModel>(pr)).ToList());
                    }
                }
            }

            return(View(dictionaryProduct));
        }
        /// <summary>
        /// Resolves auctions for each site's units and stores the results in AuctionResults
        /// </summary>
        public void RunAuctions()
        {
            AuctionResults.Clear();

            List <string> validSites = new List <string>(MyConfig.Sites.Keys);

            Auctions = Auctions.Select(auction =>//removes bids from invalid sites, that way the results will be empty
            {
                if (!validSites.Contains(auction.Site))
                {
                    auction.Bids.Clear();
                }

                return(auction);
            }).ToList();                                                                                                                          //would have but this below, but it makes it look terrible

            AuctionResults = Auctions.Select(auction =>                                                                                           //foreach auction
                                             auction.Units.Select(unit =>                                                                         //foreach unit
                                                                  auction.Bids.Where(bid => bid.Unit == unit &&                                   //valid units
                                                                                     MyConfig.Sites[auction.Site].Bidders.Contains(bid.Bidder) && //valid bidders
                                                                                     GetAdjustedBid(bid) >= MyConfig.Sites[auction.Site].Floor)   //valid minimum bid. Invalid sites had their bids culled, so no need to worry about indexing exceptions
                                                                  .OrderByDescending(bid => GetAdjustedBid(bid))
                                                                  .Select(bid => bid)                                                             //new AuctionUnitResult(bid.Bidder, bid.BidAmt, bid.Unit))
                                                                  .FirstOrDefault()                                                               //Winning bid in a unit.
                                                                                                                                                  //From what I understand, linq does not waste time converting the other items in the above .Select, only the first.
                                                                  ).Where(unitRes => unitRes != null).ToList()                                    //winning bid for each unit. Ignores ones that did not have a winner, aka null results
                                             ).ToList();                                                                                          //will keep empty auctions
        }
示例#11
0
        public IActionResult ViewAuction(int auctid)
        {
            CheckFinishedAuctions();
            List <CurrentUser> ret = HttpContext.Session.GetObjectFromJson <List <CurrentUser> >("curr");

            if (ret == null || ret[0].id == 0)
            {
                return(RedirectToAction(""));
            }
            else
            {
                string LocalVariable = HttpContext.Session.GetString("biderror");
                if (LocalVariable != null)
                {
                    ViewBag.error = LocalVariable;
                }
                ViewBag.CurrentUser = ret[0];
                Auctions getauct = _context.auctions.Include(a => a.seller).Include(a => a.bidders).SingleOrDefault(w => w.id == auctid);
                if (getauct == null)
                {
                    return(RedirectToAction("Dashboard"));
                }
                List <Bidders> bidlist = _context.bidders.Where(b => b.auctionid == auctid).Include(b => b.bidder).OrderByDescending(b => b.bidamount).ToList();
                ViewBag.auct    = getauct;
                ViewBag.bidlist = bidlist;
                return(View());
            }
        }
示例#12
0
        public async Task <ActionResult> Edit(Guid?id, string auctionId)
        {
            if (id == null || auctionId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var auction = config.AuctionHouses.Search(auctionId);

            if (auction == null)
            {
                ModelState.AddModelError(string.Empty, Resource.errAuctionNotFound);
            }

            Auctions.SetAuction(auction);
            DropdownAuction();

            var categoryDTO = await _categoryService.GetCategoryAsync(id);

            if (categoryDTO == null)
            {
                return(HttpNotFound());
            }

            var categoryVM = Mapper.Map <CategoryViewModel>(categoryDTO);

            return(View(categoryVM));
        }
示例#13
0
        public async Task <ActionResult> DeleteProduct(Guid?id, string auctionId, bool?saveChangeError = false)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (saveChangeError.GetValueOrDefault())
            {
                ViewBag.ErrorMessage = "Произошла ошибка при удалении.";
            }

            var auction = config.AuctionHouses.Search(auctionId);

            Auctions.SetAuction(auction);
            ViewBag.AuctionName = auction.Name;

            var productDTO = await _productService.GetProductAsync(id);

            if (productDTO == null)
            {
                return(HttpNotFound());
            }

            ViewBag.Category = (await _categoryService.ShowAwalaibleCategoriesAsync()).FirstOrDefault(c => c.Id == productDTO.CategoryID).Name;
            var productVM = Mapper.Map <ProductViewModel>(productDTO);

            return(View(productVM));
        }
示例#14
0
 private void AuctionBetExecute(object parameter)
 {
     if (IsLogged)
     {
         Auctions auction = db.Auctions.Where(auc => auc.AuctionId == int.Parse(parameter.ToString())).FirstOrDefault();
         if (auction.SellerUserId == UserId)
         {
         }
         else if (auction.EndTime <= Time)
         {
             auction.IsEnd = true;
         }
         else if (auction.BuyNowPrice != 0 && Money >= auction.BuyNowPrice)
         {
             auction.CurrentPrice = (int)auction.BuyNowPrice;
             auction.WinnerUserId = UserId;
             auction.IsEnd        = true;
         }
         else if (auction.CurrentPrice < Money)
         {
             auction.CurrentPrice = Money;
             auction.WinnerUserId = UserId;
         }
         else
         {
             MessageBox.Show("Chyba");
         }
         db.SaveChanges();
         ChangeProperty("Auctions");
     }
 }
示例#15
0
        public IActionResult VNew(Auctionsvm Model, DateTime end, string name, int bid, string description)
        {
            if (end < DateTime.Now)
            {
                ViewBag.error = "Please Enter a Future Date";
                return(View("New"));
            }
            else if (ModelState.IsValid)
            {
                string   a1         = HttpContext.Session.GetString("user");
                Person   a2         = _context.Users.SingleOrDefault(User => User.Username == a1);
                Auctions NewAuction = new Auctions
                {
                    Name        = name,
                    Description = description,
                    Bid         = bid,
                    Start       = DateTime.Now,
                    End         = end,
                    Person      = a2,
                };
                _context.Add(NewAuction);
                _context.SaveChanges();

                return(RedirectToAction("welcome"));
            }
            else
            {
                ViewBag.error = ModelState.Values;
                return(View("New"));
            }
        }
示例#16
0
        public async Task <ActionResult> EditProduct(Guid?id, string auctionId)
        {
            DropdownAuction();
            await DropdownCategory();

            ViewBag.OldAuction = auctionId;
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var auction = config.AuctionHouses.Search(auctionId);

            Auctions.SetAuction(auction);

            var productDTO = await _productService.GetProductAsync(id);

            if (productDTO == null)
            {
                return(HttpNotFound());
            }

            if (productDTO.State != State.Draft)
            {
                return(RedirectToAction("UserProductList"));
            }

            var productVM = Mapper.Map <ProductViewModel>(productDTO);

            return(View(productVM));
        }
示例#17
0
        public ActionResult Create(Auctions bt)
        {
            string error = string.Empty;

            if (ModelState.IsValid)
            {
                bool isSuccess = _serv.CreateAuction(bt);
                TempData["AlertCSS"] = isSuccess ? "alert success" : "alert error";

                if (!isSuccess)
                {
                    ModelState.AddModelError("", error);
                }
                else
                {
                    TempData["OutputMessage"] = "Record Successfully Created";
                }

                if (ModelState.IsValid)
                {
                    return(RedirectToAction("Index"));
                }
            }

            return(View());
        }
        public async Task <ActionResult> Edit(Guid?id, string auctionId)
        {
            await DropDown();

            DropdownAuction();
            ViewBag.OldAuction = auctionId;
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var auction = config.AuctionHouses.Search(auctionId);

            if (auction == null)
            {
                ModelState.AddModelError(string.Empty, Resource.errAuctionNotFound);
            }

            Auctions.SetAuction(auction);

            var productDTO = await _productService.GetProductAsync(id);

            if (productDTO == null)
            {
                return(HttpNotFound());
            }

            var productVM = Mapper.Map <ProductViewModel>(productDTO);

            return(View(productVM));
        }
示例#19
0
        public ActionResult Create([Bind(Include = "AuctionTitle, PriceStart, DescriptionShort, DescriptionLong")] CreateAuctionViewModel auc)
        {
            if (ModelState.IsValid)
            {
                Auctions auction = new Auctions()
                {
                    Id               = Guid.NewGuid().ToString(),
                    CategoryId       = "1",
                    Title            = auc.AuctionTitle,
                    StartPrice       = auc.PriceStart,
                    Currency         = "USD",
                    CreatorId        = User.Identity.GetUserId(),
                    ShortDescription = auc.DescriptionShort,
                    LongDescription  = auc.DescriptionLong,
                    DateCreated      = DateTime.Now,
                    //ExpiresIn = (int)auc.ExpiresIn.,
                };

                db.auctions.auctions.Add(auction);

                db.auctions.SaveChanges();
                return(Redirect("~/AuctionPageViewModels/Index/" + auction.Id));
            }

            return(Redirect("/"));
        }
示例#20
0
        public IEnumerable <Aukcje.Models.CommentWithAuction> SelectComments()
        {
            IEnumerable <Aukcje.Models.CommentWithAuction> list = new List <CommentWithAuction>();
            IEnumerable <Aukcje.Auction> Auctions;
            IEnumerable <Aukcje.Comment> Comments;

            using (var ctx = new bazaEntities())
            {
                Auctions = ctx.Auctions.ToList();
                Comments = ctx.Comments.ToList();
            }
            string sellerName = HttpContext.Current.Request.QueryString["UID"] ?? view.UName;

            Auctions = Auctions.Where(p => p.seller.Equals(sellerName) && p.status == "zakonczone");

            list = from p in Auctions
                   join c in Comments
                   on p.commentID equals c.CommentID
                   select new CommentWithAuction()
            {
                aukcja = p, Comment = c, ConsumerName = "asd"
            };

            return(list);
        }
示例#21
0
        public async Task <ActionResult> Delete(Guid?id, string auctionId, bool?saveChangeError = false)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (saveChangeError.GetValueOrDefault())
            {
                ViewBag.ErrorMessage = "Произошла ошибка при удалении.";
            }

            var auction = config.AuctionHouses.Search(auctionId);

            if (auction == null)
            {
                ModelState.AddModelError(string.Empty, Resource.errAuctionNotFound);
            }

            Auctions.SetAuction(auction);
            ViewBag.Auction = auction;

            var categoryDTO = await _categoryService.GetCategoryAsync(id);

            if (categoryDTO == null)
            {
                return(HttpNotFound());
            }

            var categoryVM = Mapper.Map <CategoryViewModel>(categoryDTO);

            return(View(categoryVM));
        }
示例#22
0
        private void Worker_DoWork(object sender, DoWorkEventArgs e)
        {
            Server server = this.servers[(int)e.Argument];
            bool   flag   = false;

            while (!flag)
            {
                Console.WriteLine("Starting " + server.apiName);
                this.startedDelegate(server);

                Auctions auctions = this.explorer.GetAuctions(server.apiName);
                auctions.filterData();
                if (auctions != null)
                {
                    server.auctions = auctions;
                    this.refreshDelegate(server);
                    flag = true;
                }
                else
                {
                    Console.WriteLine("parsing failed " + server.apiName);
                    flag = false;
                }
            }
            Console.WriteLine("completed " + server.apiName);
        }
        private void _auctionCall(IAuction auction)
        {
            AuctionStarter auctionStarter = new AuctionStarter(auction, Agents);

            auctionStarter.startAuction();
            if (auction.AgentsName.Count != 0)
            {
                AuctionManager auctionManager = new AuctionManager(auction);
                Console.WriteLine($"\nThe auction on {auction.Product.Name} starts now!!! The min price is : {auction.BestPrice}");
                auctionManager.Manage();
                _restAgentsFlag();
                try
                {
                    Auctions.RemoveAt(Auctions.IndexOf(auction));
                }
                catch (ArgumentOutOfRangeException ex)
                {
                    Console.WriteLine($"Can't delete {auction.Product.Name} ");
                }
            }
            else
            {
                try
                {
                    Auctions.RemoveAt(Auctions.IndexOf(auction));
                }
                catch (ArgumentOutOfRangeException ex)
                {
                    Console.WriteLine($"Can't delete {auction.Product.Name} ");
                }
            }
        }
示例#24
0
        public void Get_TW_Realm_Auction_Data()
        {
            WowExplorer twExplorer = new WowExplorer(Region.TW, Locale.zh_TW, APIKey);

            Auctions auctions = twExplorer.GetAuctions("Balnazzar");

            Assert.IsTrue(auctions.AllAuctionHouses.Auctions.Count() > 0);
        }
示例#25
0
        public IActionResult Delete(int id)
        {
            Auctions a3 = _context.Auctions.SingleOrDefault(auctions => auctions.id == id);

            _context.Remove(a3);
            _context.SaveChanges();
            return(RedirectToAction("welcome"));
        }
示例#26
0
        public void Get_EU_Realm_Auction_Data()
        {
            WowExplorer euExplorer = new WowExplorer(Region.EU, Locale.fr_FR, APIKey);

            Auctions auctions = euExplorer.GetAuctions("Twisting Nether");

            Assert.IsTrue(auctions.AllAuctionHouses.Auctions.Count() > 0);
        }
 public AuctionManager()
 {
     INSTANCE = this;
     log4net.Config.XmlConfigurator.Configure();
     logger = LogManager.GetLogger(typeof(AuctionManager));
     auctions = new Auctions();
     auctionUpdates = new AuctionUpdates();
 }
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            activeAuctions = Auctions.GetStartedAuctions();

            AuctionsRepeater.DataSource = activeAuctions;
            AuctionsRepeater.DataBind();
        }
示例#29
0
        public void RemoveAuction()
        {
            Auctions.Remove(this);
            AuctionItem  = null;
            Safe.Auction = null;
            OnGoing      = false;

            ClaimPeriod = DateTime.MinValue;
        }
示例#30
0
        // GET: BidsNewViewModels/Create
        public ActionResult Create()
        {
            Auctions       auction = new Auctions();
            ModelContainer cont    = new ModelContainer();

            cont.AddModel(auction);

            return(View(cont));
        }
        public Auction GetAuction(string ID)
        {
            var query =
                from a in Auctions.Include("Bids.User")
                where a.ID.ToString() == ID
                select a;

            return(query.SingleOrDefault());
        }
        public async Task <ActionResult> Index(string lang = "en-Us", string auction = "Auction1", int page = 1)
        {
            var auctionModel = config.AuctionHouses.Search(auction);

            if (auctionModel != null)
            {
                Auctions.SetAuction(auctionModel);
            }
            else
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var listProducts = await _productService.ShowAwalaibleProductsAsync();

            if (listProducts.IsNullOrEmpty())
            {
                return(View("~/Views/Home/EmptyModel.cshtml"));
            }

            PageInfo pageInfo = new PageInfo {
                PageNumber = page, TotalItems = listProducts.Count()
            };

            var listLastBid = await _bidService.ShowLastBidForListProductAsync(listProducts);

            var listViewProducts = listProducts.Select(pr => new ProductClientViewModel
            {
                Id          = pr.Id,
                CategoryID  = pr.CategoryID,
                Description = pr.Description,
                Duration    = pr.Duration.TotalSeconds,
                Name        = pr.Name,
                Picture     = pr.Picture,
                StartDate   = pr.StartDate,
                StartPrice  = pr.StartPrice
            });

            IEnumerable <ProductClientViewModel> productPerPages = listViewProducts.Skip((page - 1) * pageInfo.PageSize).Take(pageInfo.PageSize);

            var listBidViewModel = listLastBid.Select(b => Mapper.Map <BidViewModel>(b));
            var userResult       = await _customUserManager.GetAllUsersAsync();

            var userVM = userResult.Select(u => Mapper.Map <ProfileViewModel>(u));
            ProductsWithBidViewModel categoryWithBids = new ProductsWithBidViewModel()
            {
                Products = productPerPages,
                PageInfo = pageInfo,
                Bids     = listBidViewModel,
                Users    = userVM
            };

            ViewBag.BidStep = BidStep;
            ViewBag.Auction = auctionModel.Name;
            return(View("~/Views/Home/Index.cshtml", categoryWithBids));
        }
        public void SaveAuction(Auction auction)
        {
            var existingRecord = Context.Auctions.FirstOrDefault(x => x.AuctionRef == auction.AuctionRef);
            if (existingRecord != null)
            {
                existingRecord.EndDate = auction.EndDate;
                existingRecord.MinBid = auction.MinBid;
                Context.Auctions.AddOrUpdate(existingRecord);
            }
            else
            {
                var auc = new Auctions();
                auc.FromDomainObject(auction);
                Context.Auctions.AddOrUpdate(auc);
            }

            Context.Save();

        }