Example #1
0
        //AddBidLogCurrent
        public BidLogCurrent AddBidLogCurrent(long auction_id, int quantity, long user_id, bool isproxy, decimal amount, decimal maxamount, bool isproxyraise, string IP)
        {
            BidLogCurrent log = new BidLogCurrent();

            try
            {
                dataContext.BidLogCurrents.InsertOnSubmit(log);
                log.Quantity     = quantity;
                log.User_ID      = user_id;
                log.IsProxy      = isproxy;
                log.MaxBid       = maxamount;
                log.Amount       = amount;
                log.IP           = String.IsNullOrEmpty(IP) ? Consts.UsersIPAddress : IP;
                log.Auction_ID   = auction_id;
                log.DateMade     = DateTime.Now;
                log.IsProxyRaise = isproxyraise;
                SubmitChages();
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);
                return(null);
            }
            return(log);
        }
Example #2
0
        //ResolveProxyBiddingSituation
        public void ResolveProxyBiddingSituation(long auction_id, long user_id, bool isproxy, BiddingObject placedBid, BidCurrent lastTop, decimal aprice, List <BidLogCurrent> newbidlogs)
        {
            if (placedBid.Bid == null || placedBid.BidLog == null || lastTop == null)
            {
                return;
            }
            //List<BidCurrent> bids = dataContext.BidCurrents.Where(B => B.Auction_ID == auction_id && B.ID != placedBid.Bid.ID && B.User_ID != user_id).OrderBy(B3 => B3.DateMade).OrderByDescending(B2 => B2.MaxBid).OrderByDescending(B1 => B1.Amount).ToList();
            List <BidCurrent> bids = dataContext.spBid_BidsExceptCurrent(auction_id, placedBid.Bid.ID, user_id).ToList();

            if (bids.Count() == 0)
            {
                return;
            }

            decimal price     = (lastTop == null) ? aprice : lastTop.Amount;
            decimal Increment = Consts.GetIncrement(price);

            BidCurrent queryBid = bids.FirstOrDefault();

            if (placedBid.Bid.IsProxy && placedBid.Bid.Amount <= (queryBid.MaxBid + Consts.ErrorRangeAmount))
            {
                if (queryBid.MaxBid + Increment >= (placedBid.Bid.MaxBid + Consts.ErrorRangeAmount))
                {
                    //Can't overBid
                    placedBid.BidLog.Amount = placedBid.Bid.Amount = placedBid.Bid.MaxBid;
                }
                else
                {
                    Increment = Consts.GetIncrement(queryBid.MaxBid);
                    if (Increment + queryBid.MaxBid + Consts.ErrorRangeAmount > placedBid.Bid.MaxBid)
                    {
                        placedBid.BidLog.Amount = placedBid.Bid.Amount = placedBid.Bid.MaxBid;
                    }
                    else if (placedBid.Bid.User_ID != lastTop.User_ID)
                    {
                        placedBid.BidLog.Amount = placedBid.Bid.Amount = queryBid.MaxBid + Increment;
                    }
                }
            }
            foreach (BidCurrent runner in bids)
            {
                if (!runner.IsProxy)
                {
                    continue;
                }
                if ((runner.MaxBid == placedBid.Bid.MaxBid) || (Math.Abs(runner.MaxBid - placedBid.Bid.MaxBid) < Consts.ErrorRangeAmount))
                {
                    runner.Amount = placedBid.Bid.MaxBid;
                }
                else
                {
                    Increment = Consts.GetIncrement(placedBid.Bid.MaxBid);
                    if (runner.MaxBid >= placedBid.Bid.MaxBid + Increment + Consts.ErrorRangeAmount)
                    {
                        runner.Amount = placedBid.Bid.MaxBid + Increment;
                    }
                    else
                    {
                        if (runner.Amount != runner.MaxBid)
                        {
                            BidLogCurrent log = new BidLogCurrent();
                            dataContext.BidLogCurrents.InsertOnSubmit(log);
                            log.Quantity     = runner.Quantity;
                            log.User_ID      = runner.User_ID;
                            log.IsProxy      = runner.IsProxy;
                            log.MaxBid       = runner.MaxBid;
                            log.Amount       = runner.MaxBid;
                            log.IP           = runner.IP;
                            log.Auction_ID   = runner.Auction_ID;
                            log.DateMade     = DateTime.Now;
                            log.IsProxyRaise = false;
                            newbidlogs.Add(log);
                        }
                        runner.Amount = runner.MaxBid;
                    }
                }
            }
            SubmitChages();
        }
 //AddBidLogCurrent
 public BidLogCurrent AddBidLogCurrent(long auction_id, int quantity, long user_id, bool isproxy, decimal amount, decimal maxamount, bool isproxyraise, string IP)
 {
   BidLogCurrent log = new BidLogCurrent();
   try
   {
     dataContext.BidLogCurrents.InsertOnSubmit(log);
     log.Quantity = quantity;
     log.User_ID = user_id;
     log.IsProxy = isproxy;
     log.MaxBid = maxamount;
     log.Amount = amount;
     log.IP = String.IsNullOrEmpty(IP) ? Consts.UsersIPAddress : IP;
     log.Auction_ID = auction_id;
     log.DateMade = DateTime.Now;
     log.IsProxyRaise = isproxyraise;
     SubmitChages();
   }
   catch (Exception ex)
   {
     Logger.LogException(ex);
     return null;
   }
   return log;
 }
Example #4
0
        //PlaceSingleBid
        public BiddingObject PlaceSingleBid(long auction_id, bool isproxy, decimal amount, long user_id, int quantity, bool isproxyraise, decimal aprice, BidCurrent prevUsersBid, BidCurrent lastTop)
        {
            BidCurrent newBid;
            bool       isHighBidder = (lastTop != null) ? lastTop.User_ID == user_id : false;

            amount = (lastTop != null && ((long)amount == (long)lastTop.MaxBid || Math.Abs(lastTop.MaxBid - amount) < Consts.ErrorRangeAmount)) ? lastTop.MaxBid : amount;

            if (prevUsersBid != null)
            {
                newBid = prevUsersBid;
            }
            else
            {
                newBid = new BidCurrent();
                dataContext.BidCurrents.InsertOnSubmit(newBid);
            }
            if (!isproxy)
            {
                newBid.Amount = amount;
                if (newBid.MaxBid > amount)
                {
                    newBid.IsProxy = true;
                }
                else
                {
                    newBid.MaxBid  = amount;
                    newBid.IsProxy = false;
                }
            }
            else
            {
                decimal price = (lastTop == null) ? aprice : lastTop.Amount;
                newBid.MaxBid  = (newBid.MaxBid < amount) ? amount : newBid.MaxBid;
                newBid.Amount  = (price + Consts.GetIncrement(price) <= newBid.MaxBid) ? price : newBid.MaxBid;
                newBid.Amount += (lastTop != null && !isHighBidder && newBid.Amount + Consts.GetIncrement(price) <= newBid.MaxBid) ? Consts.GetIncrement(price) : 0;
                newBid.IsProxy = true;
            }
            newBid.Auction_ID = auction_id;
            newBid.User_ID    = user_id;
            newBid.Quantity   = quantity;
            newBid.DateMade   = DateTime.Now;
            newBid.IP         = Consts.UsersIPAddress;
            newBid.IsActive   = true;

            BidLogCurrent log = new BidLogCurrent();

            dataContext.BidLogCurrents.InsertOnSubmit(log);
            log.Quantity     = quantity;
            log.User_ID      = newBid.User_ID;
            log.IsProxy      = isproxy;
            log.MaxBid       = newBid.MaxBid;
            log.Amount       = newBid.Amount;
            log.IP           = newBid.IP;
            log.Auction_ID   = newBid.Auction_ID;
            log.DateMade     = DateTime.Now;
            log.IsProxyRaise = isproxyraise;

            SubmitChages();

            return(new BiddingObject {
                Bid = newBid, BidLog = log
            });
        }
    //PlaceSingleBid
    public BiddingObject PlaceSingleBid(long auction_id, bool isproxy, decimal amount, long user_id, int quantity, bool isproxyraise, decimal aprice, BidCurrent prevUsersBid, BidCurrent lastTop)
    {
      BidCurrent newBid;
      bool isHighBidder = (lastTop != null) ? lastTop.User_ID == user_id : false;
      amount = (lastTop != null && ((long)amount == (long)lastTop.MaxBid || Math.Abs(lastTop.MaxBid - amount) < Consts.ErrorRangeAmount)) ? lastTop.MaxBid : amount;

      if (prevUsersBid != null)
        newBid = prevUsersBid;
      else
      {
        newBid = new BidCurrent();
        dataContext.BidCurrents.InsertOnSubmit(newBid);
      }
      if (!isproxy)
      {
        newBid.Amount = amount;
        if (newBid.MaxBid > amount)
          newBid.IsProxy = true;
        else
        {
          newBid.MaxBid = amount;
          newBid.IsProxy = false;
        }
      }
      else
      {
        decimal price = (lastTop == null) ? aprice : lastTop.Amount;
        newBid.MaxBid = (newBid.MaxBid < amount) ? amount : newBid.MaxBid;
        newBid.Amount = (price + Consts.GetIncrement(price) <= newBid.MaxBid) ? price : newBid.MaxBid;
        newBid.Amount += (lastTop != null && !isHighBidder && newBid.Amount + Consts.GetIncrement(price) <= newBid.MaxBid) ? Consts.GetIncrement(price) : 0;
        newBid.IsProxy = true;
      }
      newBid.Auction_ID = auction_id;
      newBid.User_ID = user_id;
      newBid.Quantity = quantity;
      newBid.DateMade = DateTime.Now;
      newBid.IP = Consts.UsersIPAddress;
      newBid.IsActive = true;

      BidLogCurrent log = new BidLogCurrent();
      dataContext.BidLogCurrents.InsertOnSubmit(log);
      log.Quantity = quantity;
      log.User_ID = newBid.User_ID;
      log.IsProxy = isproxy;
      log.MaxBid = newBid.MaxBid;
      log.Amount = newBid.Amount;
      log.IP = newBid.IP;
      log.Auction_ID = newBid.Auction_ID;
      log.DateMade = DateTime.Now;
      log.IsProxyRaise = isproxyraise;

      SubmitChages();

      return new BiddingObject { Bid = newBid, BidLog = log };
    }
    //ResolveProxyBiddingSituation
    public void ResolveProxyBiddingSituation(long auction_id, long user_id, bool isproxy, BiddingObject placedBid, BidCurrent lastTop, decimal aprice, List<BidLogCurrent> newbidlogs)
    {
      if (placedBid.Bid == null || placedBid.BidLog == null || lastTop == null) return;
      //List<BidCurrent> bids = dataContext.BidCurrents.Where(B => B.Auction_ID == auction_id && B.ID != placedBid.Bid.ID && B.User_ID != user_id).OrderBy(B3 => B3.DateMade).OrderByDescending(B2 => B2.MaxBid).OrderByDescending(B1 => B1.Amount).ToList();
      List<BidCurrent> bids = dataContext.spBid_BidsExceptCurrent(auction_id, placedBid.Bid.ID, user_id).ToList();
      if (bids.Count() == 0) return;

      decimal price = (lastTop == null) ? aprice : lastTop.Amount;
      decimal Increment = Consts.GetIncrement(price);

      BidCurrent queryBid = bids.FirstOrDefault();

      if (placedBid.Bid.IsProxy && placedBid.Bid.Amount <= (queryBid.MaxBid+ Consts.ErrorRangeAmount))
      {
        if (queryBid.MaxBid + Increment >= (placedBid.Bid.MaxBid+ Consts.ErrorRangeAmount))
        {
          //Can't overBid
          placedBid.BidLog.Amount = placedBid.Bid.Amount = placedBid.Bid.MaxBid;
        }
        else
        {
          Increment = Consts.GetIncrement(queryBid.MaxBid);
          if (Increment + queryBid.MaxBid + Consts.ErrorRangeAmount > placedBid.Bid.MaxBid)
            placedBid.BidLog.Amount = placedBid.Bid.Amount = placedBid.Bid.MaxBid;
          else if (placedBid.Bid.User_ID != lastTop.User_ID)
            placedBid.BidLog.Amount = placedBid.Bid.Amount = queryBid.MaxBid + Increment;
        }
      }
      foreach (BidCurrent runner in bids)
      {
        if (!runner.IsProxy) continue;
        if ((runner.MaxBid == placedBid.Bid.MaxBid) || (Math.Abs(runner.MaxBid - placedBid.Bid.MaxBid) < Consts.ErrorRangeAmount))
          runner.Amount = placedBid.Bid.MaxBid;
        else
        {
          Increment = Consts.GetIncrement(placedBid.Bid.MaxBid);
          if (runner.MaxBid >= placedBid.Bid.MaxBid + Increment + Consts.ErrorRangeAmount)
            runner.Amount = placedBid.Bid.MaxBid + Increment;
          else
          {
            if (runner.Amount != runner.MaxBid)
            {
              BidLogCurrent log = new BidLogCurrent();
              dataContext.BidLogCurrents.InsertOnSubmit(log);
              log.Quantity = runner.Quantity;
              log.User_ID = runner.User_ID;
              log.IsProxy = runner.IsProxy;
              log.MaxBid = runner.MaxBid;
              log.Amount = runner.MaxBid;
              log.IP = runner.IP;
              log.Auction_ID = runner.Auction_ID;
              log.DateMade = DateTime.Now;
              log.IsProxyRaise = false;
              newbidlogs.Add(log);
            }
            runner.Amount = runner.MaxBid;
          }
        }
      }
      SubmitChages();
    }
        //ResolveProxyBiddingSituation
        private void ResolveProxyBiddingSituation(long auction_id, long user_id, bool isproxy, BiddingObject placedBid,
            BidCurrent lastTop, decimal aprice, List<BidLogCurrent> newbidlogs)
        {
            if (placedBid.Bid == null || placedBid.BidLog == null || lastTop == null)
            {
                return;
            }
            var bids = dataContext.spBid_BidsExceptCurrent(auction_id, placedBid.Bid.ID, user_id).ToList();
            if (bids.Count() == 0)
            {
                return;
            }

            var price = (lastTop == null) ? aprice : lastTop.Amount;
            var Increment = Consts.GetIncrement(price);

            var queryBid = bids.FirstOrDefault();

            if (placedBid.Bid.IsProxy && placedBid.Bid.Amount <= (queryBid.MaxBid + Consts.ErrorRangeAmount))
            {
                if (queryBid.MaxBid + Increment >= (placedBid.Bid.MaxBid + Consts.ErrorRangeAmount))
                {
                    //Can't overBid
                    placedBid.BidLog.Amount = placedBid.Bid.Amount = placedBid.Bid.MaxBid;
                }
                else
                {
                    Increment = Consts.GetIncrement(queryBid.MaxBid);
                    if (Increment + queryBid.MaxBid + Consts.ErrorRangeAmount > placedBid.Bid.MaxBid)
                    {
                        placedBid.BidLog.Amount = placedBid.Bid.Amount = placedBid.Bid.MaxBid;
                    }
                    else if (placedBid.Bid.User_ID != lastTop.User_ID)
                    {
                        placedBid.BidLog.Amount = placedBid.Bid.Amount = queryBid.MaxBid + Increment;
                    }
                }
            }
            foreach (var runner in bids)
            {
                if (!runner.IsProxy)
                {
                    continue;
                }
                if ((runner.MaxBid == placedBid.Bid.MaxBid) ||
                    (Math.Abs(runner.MaxBid - placedBid.Bid.MaxBid) < Consts.ErrorRangeAmount))
                {
                    runner.Amount = placedBid.Bid.MaxBid;
                }
                else
                {
                    Increment = Consts.GetIncrement(placedBid.Bid.MaxBid);
                    if (runner.MaxBid >= placedBid.Bid.MaxBid + Increment + Consts.ErrorRangeAmount)
                    {
                        runner.Amount = placedBid.Bid.MaxBid + Increment;
                    }
                    else
                    {
                        if (runner.Amount != runner.MaxBid)
                        {
                            var log = new BidLogCurrent();
                            dataContext.BidLogCurrents.InsertOnSubmit(log);
                            log.Quantity = runner.Quantity;
                            log.User_ID = runner.User_ID;
                            log.IsProxy = runner.IsProxy;
                            log.MaxBid = runner.MaxBid;
                            log.Amount = runner.MaxBid;
                            log.IP = runner.IP;
                            log.Auction_ID = runner.Auction_ID;
                            log.DateMade = DateTime.Now;
                            log.IsProxyRaise = false;
                            newbidlogs.Add(log);
                        }
                        runner.Amount = runner.MaxBid;
                    }
                }
            }
            GeneralRepository.SubmitChanges(dataContext);
        }
 //AddBidLogCurrent
 private BidLogCurrent AddBidLogCurrent(long auction_id, int quantity, long user_id, bool isproxy, decimal amount,
     decimal maxamount, bool isproxyraise, string IP)
 {
     var log = new BidLogCurrent();
     try
     {
         dataContext.BidLogCurrents.InsertOnSubmit(log);
         log.Quantity = quantity;
         log.User_ID = user_id;
         log.IsProxy = isproxy;
         log.MaxBid = maxamount;
         log.Amount = amount;
         log.IP = String.IsNullOrEmpty(IP) ? Consts.UsersIPAddress : IP;
         log.Auction_ID = auction_id;
         log.DateMade = DateTime.Now;
         log.IsProxyRaise = isproxyraise;
         GeneralRepository.SubmitChanges(dataContext);
     }
     catch
     {
         return null;
     }
     return log;
 }
 //UpdateBid
 public JsonExecuteResult UpdateBid(long auction_id, long UserID, decimal Amount, decimal MaxBid, int Quantity,
     DateTime DateMade, bool IsProxy, string Comments, string IP, bool IsProxyRaise, long bid_id)
 {
     try
     {
         var auction = dataContext.Auctions.SingleOrDefault(A => A.ID == auction_id);
         if (auction == null)
         {
             throw new Exception("The auction doesn't exist.");
         }
         if (!auction.Event.IsCurrent && auction.Event.CloseStep == 2)
         {
             throw new Exception("You can't add/edit this bid. The auction is not open.");
         }
         var bd = dataContext.BidLogCurrents.FirstOrDefault(B => B.ID == bid_id);
         if (bd == null)
         {
             bd = new BidLogCurrent();
             dataContext.BidLogCurrents.InsertOnSubmit(bd);
         }
         bd.Auction_ID = auction_id;
         bd.Amount = Amount;
         bd.DateMade = DateMade;
         bd.IP = IP;
         bd.IsProxy = auction.AuctionType_ID == (byte) Consts.AuctionType.Normal ? IsProxy : false;
         bd.IsProxyRaise = auction.AuctionType_ID == (byte) Consts.AuctionType.Normal ? IsProxyRaise : false;
         bd.MaxBid = MaxBid;
         bd.Quantity = Quantity;
         bd.User_ID = UserID;
         bd.IsAutoBid = false;
         GeneralRepository.SubmitChanges(dataContext);
     }
     catch (Exception ex)
     {
         return new JsonExecuteResult(JsonExecuteResultTypes.ERROR, ex.Message);
     }
     return new JsonExecuteResult(JsonExecuteResultTypes.SUCCESS);
 }
        //PlaceMultipleBids
        public List <BidCurrent> PlaceMultipleBids(long auction_id, bool isproxy, decimal amount, long user_id, int quantity)
        {
            dataContext.CommandTimeout = 600000;
            List <BidCurrent> newBids = dataContext.spBid_UserTopBid(user_id, auction_id).ToList();

            List <int> newItems = new List <int>(1);

            int count = newBids.Count;

            if (newBids.Count < quantity)
            {
                for (int i = count; i < quantity; i++)
                {
                    newBids.Add(new BidCurrent());
                    newItems.Add(i);
                }
            }
            else if (newBids.Count > quantity)
            {
                for (int i = count - 1; i >= quantity; i--)
                {
                    newBids[i].Comments = String.Format("(-/-)");
                    newBids[i].Quantity = 0;
                    newBids[i].MaxBid   = 0;
                    newBids[i].IsActive = false;
                }
                newBids.RemoveRange(quantity, newBids.Count - quantity);
            }

            count = 0;
            BidLogCurrent log;

            foreach (BidCurrent bid in newBids)
            {
                bid.IsProxy    = isproxy;
                bid.Amount     = (bid.Amount <= amount) ? amount : bid.Amount;
                bid.MaxBid     = amount * quantity;
                bid.Auction_ID = auction_id;
                bid.User_ID    = user_id;
                bid.Quantity   = quantity;
                bid.DateMade   = DateTime.Now;
                bid.IsActive   = true;
                bid.IP         = Consts.UsersIPAddress;
                bid.ItemNumber = ++count;
                bid.Comments   = String.Format("({0}/{1})", bid.ItemNumber, quantity);

                log = new BidLogCurrent();
                dataContext.BidLogCurrents.InsertOnSubmit(log);
                log.Quantity   = bid.Quantity;
                log.User_ID    = bid.User_ID;
                log.IsProxy    = bid.IsProxy;
                log.MaxBid     = bid.MaxBid;
                log.Amount     = bid.Amount;
                log.IP         = bid.IP;
                log.Auction_ID = bid.Auction_ID;
                log.DateMade   = DateTime.Now;
                log.ItemNumber = bid.ItemNumber;
                log.Comments   = bid.Comments;
            }
            foreach (int t in newItems)
            {
                dataContext.BidCurrents.InsertOnSubmit(newBids[t]);
            }

            SubmitChages();
            return(newBids);
        }
        //AddWinnerToAuction
        public JsonExecuteResult AddWinnerToAuction(long auction_id, long user_id)
        {
            try
            {
                Auction auction = GetAuction(auction_id);
                if (auction.Status != (byte)Consts.AuctionStatus.Closed) throw new Exception("This lot is not closed.");
                if (auction.Event.CloseStep != 1) throw new Exception("You can't use this functionality to add the winner on this lot.");
                if (auction.Bids.Any()) throw new Exception("You can't add the winner for this lot, because this lot has already a winner");
                User user = dataContext.Users.SingleOrDefault(U => U.ID == user_id);
                if (user == null) throw new Exception("This user doesn't exists");
                if (user.UserStatus_ID != (byte)Consts.UserStatus.Active) throw new Exception("This user can't be a winner because his status is not active.");
                if (user.UserType_ID != (byte)Consts.UserTypes.Buyer && user.UserType_ID != (byte)Consts.UserTypes.SellerBuyer) throw new Exception("This user can't be a winner because his isn't a buyer.");

                Bid bid = new Bid();
                bid.Amount = bid.MaxBid = auction.Price;
                bid.Auction_ID = auction_id;
                bid.DateMade = auction.EndDate.AddMinutes(-1);
                bid.IP = Consts.UsersIPAddress;
                bid.IsProxy = false;
                bid.Quantity = auction.Quantity;
                bid.User_ID = user_id;
                dataContext.Bids.InsertOnSubmit(bid);

                BidCurrent bidcur = new BidCurrent();
                bidcur.Amount = bidcur.MaxBid = auction.Price;
                bidcur.Auction_ID = auction_id;
                bidcur.DateMade = auction.EndDate.AddMinutes(-1);
                bidcur.IP = Consts.UsersIPAddress;
                bidcur.IsProxy = false;
                bidcur.Quantity = auction.Quantity;
                bidcur.User_ID = user_id;
                bidcur.IsActive = true;
                dataContext.BidCurrents.InsertOnSubmit(bidcur);

                BidLog blog = new BidLog
                  {
                      Amount = bid.Amount,
                      Auction_ID = bid.Auction_ID,
                      DateMade = bid.DateMade,
                      IP = bid.IP,
                      IsProxy = bid.IsProxy,
                      IsProxyRaise = false,
                      MaxBid = bid.MaxBid,
                      Quantity = bid.Quantity,
                      User_ID = bid.User_ID
                  };
                dataContext.BidLogs.InsertOnSubmit(blog);

                BidLogCurrent blogcur = new BidLogCurrent
                  {
                      Amount = bid.Amount,
                      Auction_ID = bid.Auction_ID,
                      DateMade = bid.DateMade,
                      IP = bid.IP,
                      IsProxy = bid.IsProxy,
                      IsProxyRaise = false,
                      MaxBid = bid.MaxBid,
                      Quantity = bid.Quantity,
                      User_ID = bid.User_ID
                  };
                dataContext.BidLogCurrents.InsertOnSubmit(blogcur);

                BidWatchCurrent bw = new BidWatchCurrent { Auction_ID = auction_id, User_ID = user_id };
                dataContext.BidWatchCurrents.InsertOnSubmit(bw);

                EventRegistration er = dataContext.spSelect_EventRegistration(auction.Event_ID, user_id).SingleOrDefault();
                if (er == null)
                    dataContext.EventRegistrations.InsertOnSubmit(new EventRegistration { Event_ID = auction.Event_ID, User_ID = user_id });

                GeneralRepository.SubmitChanges(dataContext);

                UpdateAuctionBiddingResult(bid.Auction_ID, bid.User_ID, bid.Amount, bid.MaxBid);

                try
                {
                    System.Net.WebClient client = new System.Net.WebClient();
                    client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
                    client.OpenRead(Consts.CacheClearFrontendIP + Consts.FrontEndClearARPMethod + "/" + auction_id.ToString());
                }
                catch (Exception ex)
                {
                    Logger.LogException("[" + Consts.CacheClearFrontendIP + Consts.FrontEndClearARPMethod + "/" + auction_id.ToString() + "]", ex);
                }
            }
            catch (Exception ex)
            {
                return new JsonExecuteResult(JsonExecuteResultTypes.ERROR, ex.Message);
            }
            return new JsonExecuteResult(JsonExecuteResultTypes.SUCCESS);
        }