Esempio n. 1
0
        public IActionResult NewAuction(NewAuctionViewModel model)
        {
            if (ModelState.IsValid)
            {
                var CurrentUserId  = _userManager.GetUserId(User);
                var CurrentUserOjb = _userManager.Users.Where(user => user.Id == CurrentUserId).SingleOrDefault();
                var item           = new ApplicationItem {
                    ItemName    = model.ItemName,
                    ItemDetails = model.ItemDetails,
                    StartingBid = model.StartingBid,
                    EndDate     = model.EndDate,
                    CreatedBy   = CurrentUserOjb
                };
                _context.ApplicationItem.Add(item);
                var newAuction = new ApplicationAuction {
                    ItemForBid      = item,
                    ApplicationUser = CurrentUserOjb,
                    HighestBidder   = CurrentUserId,
                    HightestBidInt  = model.StartingBid
                };
                _context.ApplicationAuction.Add(newAuction);
                _context.SaveChanges();
                return(Redirect("/"));
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Esempio n. 2
0
        public ActionResult Create(
            [Bind(Include = "StartPrice,Title,Description,StartDateTimeUtc,EndDateTimeUtc,Image")]
            NewAuctionViewModel viewAuction)
        {
            if (this.ModelState.IsValid)
            {
                var members = new SimpleMemberService(this.mainRepository);

                var auction = new Auction()
                {
                    Title            = viewAuction.Title,
                    Description      = viewAuction.Description,
                    StartPrice       = viewAuction.StartPrice,
                    StartDateTimeUtc = viewAuction.StartDateTimeUtc,
                    EndDateTimeUtc   = viewAuction.EndDateTimeUtc,
                    Seller           = members.GetCurrentMember(),
                };

                if (viewAuction.Image != null)
                {
                    byte[] fileContent = new byte[viewAuction.Image.InputStream.Length];
                    viewAuction.Image.InputStream.Read(fileContent, 0, fileContent.Length);

                    auction.Image = fileContent;
                }

                this.service.Save(auction);
                return(RedirectToAction("Index"));
            }

            return(View());
        }
        public JsonResult Save(NewAuctionViewModel auctionViewModel)
        {
            var json       = new JsonResult();
            var newAuction = new Auction();

            newAuction.WinnerName         = auctionViewModel.WinnerName;
            newAuction.ProductName        = auctionViewModel.ProductName;
            newAuction.ProductActualPrice = auctionViewModel.ProductActualPrice;
            newAuction.WinnerPrice        = auctionViewModel.WinnerPrice;

            var result = AuctionServices.Instance.SaveAuction(newAuction);

            if (result)
            {
                json.Data = new { success = true }
            }
            ;
            else
            {
                json.Data = new { success = false, message = "Can't save auction" }
            };

            return(json);
        }
    }
        public ActionResult Create(NewAuctionViewModel auction)
        {
            if (this.ModelState.IsValid)
            {
                var members = new SimpleMemberService(this.mainRepository);

                var newAuction = new Auction()
                {
                    Title            = auction.Title,
                    Description      = auction.Description,
                    StartDateTimeUtc = auction.StartDateTimeUtc,
                    EndDateTimeUtc   = auction.EndDateTimeUtc,
                    StartPrice       = auction.StartPrice,
                    Seller           = members.GetCurrentMember()
                };

                // Get File Contents
                if (auction.Image != null)
                {
                    byte[] fileContent = new byte[auction.Image.InputStream.Length];
                    auction.Image.InputStream.Read(fileContent, 0, fileContent.Length);

                    newAuction.Image = fileContent;
                }

                this.service.Save(newAuction);
            }

            return(RedirectToAction("Index"));
        }
Esempio n. 5
0
        public async Task <ActionResult> Create(NewAuctionViewModel model)
        {
            model.IsOffer = false;
            model.IsOrder = true;
            // model.SelectedProduct = model?.ProductsList?.FirstOrDefault(c => c.Code == TradeTypes.closeFixed.ToString())??new Areas.Admin.Models.CatalogModel() { Code= "closeFixed" };
            try
            {
                if ((model.TradeEnd - model.TradeBegin).TotalMinutes < 59)
                {
                    return
                        (Json(
                             new
                    {
                        Success = false,
                        responseText =
                            LocalText.Inst.Get("error", "Orders.Create.WrongTimeOfOffer",
                                               "Час актуальності пропозиції повинен бути не меншим за годину",
                                               "Время актуальности предложения должно быть, как минимум, равным часу")
                    },
                             JsonRequestBehavior.AllowGet));
                }
                model.HasRedemptionPrice = true;
                model.IsPreApproved      = true;
                model.IsAccepted         = true;
                model.RedemptionPrice    = model.StartPrice;

                var trade = tradeDataLayer.CreateTrade(model, User.Identity.GetUserId());
                trade.BankBill = Db.BankBills.FirstOrDefault(c => c.Id == trade.BankBillId);
                //  var trademodel = tradeDataLayer.CreateTradeViewModel(trade);
                foreach (var user in UserManager.Users)
                {
                    EmailFactory.SendEmailAsync(new NewOrder(user, tradeDataLayer.CreateTradeViewModel(trade, user)));
                }

                await EmailFactory.Brodcast(new Broadcast()
                {
                    Body = "Нова заявка", Subject = "На РТР створено нову пропозицію. Подивіться, може у вас є що запропонувати?"
                });

                //Mailer.SendMail("*****@*****.**", "Новый торг на модерации",
                //    "Уважаемый модератор, просьба одобрить новый торг: " + Url.Action("TradesOnApproving", "Trade", null, Request.Url.Scheme));
                return(Json(new { Success = true, redirectUrl = Url.Action("Index", "Orders") },
                            JsonRequestBehavior.AllowGet));
            }
            catch (ArgumentNullException ex)
            {
                logger.Error(ex);
                return(Json(new { Success = false, responseText = LocalText.Inst.Get("error", "errorfilenotuploaded", "Паспорт товару не загружено, перейдіть на сторінку модерації торгів та спробуйте знову") }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                logger.Error(ex);
                return(Json(new { Success = false, responseText = ex.Message }, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 6
0
        public IActionResult NewAuction(NewAuctionViewModel vm)
        {
            if (ModelState.IsValid)
            {
                Products Product = new Products
                {
                    Name           = vm.Name,
                    ImageUrl       = vm.ImageUrl,
                    Price          = vm.StartingBid,
                    Grade          = vm.Grade,
                    Stock          = 1,
                    DateCreated    = DateTime.Now,
                    AuctionEndTime = vm.AuctionEndTime
                };
                _context.Add(Product);

                if (!vm.Category.Contains("Auction"))
                {
                    vm.Category.Add("Auction");
                }
                IEnumerable <string> categories = _context.categories.Select(x => x.CategoryName).ToList();
                foreach (string TestCategory in vm.Category)
                {
                    if (categories.Contains(TestCategory))
                    {
                        Console.WriteLine("Category: " + TestCategory + "is in database");
                    }
                    else
                    {
                        Console.WriteLine("Category: " + TestCategory + " is NOT in database, ADDING!");

                        //Here code to add new category to database
                        Category category = new Category
                        {
                            CategoryName = TestCategory,
                            Description  = "NULL"
                        };
                        _context.Add(category);
                    }

                    //Adding date to merge Table
                    ProductCategory productCategory = new ProductCategory
                    {
                        ProductId    = Product.ProductId,
                        CategoryName = TestCategory
                    };
                    _context.Add(productCategory);
                }

                _context.SaveChanges();
            }

            return(View());
        }
        public IActionResult NewAuction()
        {
            var categories = context.Categories.ToList();
            var model      = new NewAuctionViewModel
            {
                Auction    = new Auction(),
                Categories = categories
            };

            return(View(model));
        }
        public IActionResult NewAuction()
        {
            if (Logged_user == null)
            {
                return(RedirectToAction("Index"));
            }

            NewAuctionViewModel Viewmodel = new NewAuctionViewModel()
            {
                Current_user = Logged_user,
            };

            return(View("NewAuction", Viewmodel));
        }
Esempio n. 9
0
        // GET: Offers/Create
        public async Task <ActionResult> Create()
        {
            var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            // var user = db.Users.SingleOrDefault(c=>c.Id==User.Identity.GetUserId());
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (user.UserContragents.Where(c => c.IsApproved).All(f => !f.IsSeller) || user.UserContragents.Count < 1)
            {
                ModelState.AddModelError("other", LocalText.Inst.Get("error", "contragentBuyerError", "Юридична особа має бути активована як продавець", "Юридическое лицо должно быть активировано как продавец"));
                return(View("Error", ModelState));
            }
            var model = new NewAuctionViewModel(user, StaticData.Inst.GetCatalogModels());

            return(View(model));
        }
        public IActionResult CreateNewAuction(NewAuctionViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                NewAuctionViewModel newViewModel = new NewAuctionViewModel
                {
                    Auction    = viewModel.Auction,
                    Categories = context.Categories.ToList(),
                    Image      = viewModel.Image
                };

                return(View("NewAuction", newViewModel));
            }

            Bid nbid = new Bid
            {
                amount = viewModel.Auction.Article.Price,
                user   = GetUser(User.Identity.Name),
                time   = new TimeSpan(0)
            };

            viewModel.Auction.Min_Bid = 1; // Cantidad mínima para subir de precio por defecto

            viewModel.Auction.LastBid       = nbid;
            viewModel.Auction.User          = GetUser(User.Identity.Name);
            viewModel.Auction.UserId        = User.Identity.Name;
            viewModel.Auction.CurrentPrice  = viewModel.Auction.Article.Price;
            viewModel.Auction.Article.Image = UploadFile(viewModel.Image);
            viewModel.Auction.Biders        = 0;
            viewModel.Auction.IsFinished    = false;
            viewModel.Auction.HasStarted    = false;

            if (viewModel.Auction.Start <= DateTime.Now)
            {
                viewModel.Auction.Start      = DateTime.Now;
                viewModel.Auction.HasStarted = true;
            }

            context.Auctions.Add(viewModel.Auction);
            context.SaveChanges();

            return(RedirectToAction("MyAuctions", "Auction"));
        }
Esempio n. 11
0
        // GET: Auctions/Details/5
        public ActionResult Details(int id)
        {
            var auction = this.service.GetAll().FirstOrDefault(a => a.Id == id);

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

            var vmAuction = new NewAuctionViewModel()
            {
                Description      = auction.Description,
                EndDateTimeUtc   = auction.EndDateTimeUtc,
                StartDateTimeUtc = auction.StartDateTimeUtc,
                StartPrice       = auction.StartPrice,
                Title            = auction.Title
            };

            return(View(vmAuction));
        }
        public ActionResult NewAuction(NewAuctionViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("NewAuction", "Account"));
            }

            byte[] img = new byte[model.Picture.ContentLength];
            model.Picture.InputStream.Read(img, 0, img.Length);

            string userId = User.Identity.GetUserId();
            int    Id     = db.User.Where(u => u.idAspNetUsers == userId).FirstOrDefault().Id;
            Admin  admin  = db.Admin.FirstOrDefault();

            Auction auction = new Auction();

            auction.Id              = Guid.NewGuid();
            auction.Name            = model.ProductName;
            auction.Picture         = img;
            auction.Duration        = model.Duration;
            auction.StartingPrice   = model.StartingPrice;
            auction.CurrentPrice    = model.StartingPrice;
            auction.DateTimeCreated = DateTime.Now;
            auction.PriceInTokens   = (int)Math.Ceiling(model.StartingPrice / admin.ValueOfToken);
            auction.TokenValue      = admin.ValueOfToken;
            auction.DateTimeOpened  = null;
            auction.DateTimeClosed  = null;
            auction.Status          = "READY";
            auction.Currency        = admin.Currency;
            auction.IdOfUser        = Id;


            db.Auction.Add(auction);

            db.SaveChanges();

            return(RedirectToAction("UserIndex", "Auction"));
        }
        public IActionResult CreateAuction(NewAuctionViewModel viewModel)
        {
            if (Logged_user == null)
            {
                return(RedirectToAction("Index"));
            }

            if (viewModel.description == null || viewModel.product == null ||
                viewModel.description == "" || viewModel.product == "")
            {
                TempData["Error"] = "Product and Description must be entered";
                return(RedirectToAction("NewAuction"));
            }

            if (viewModel.description.Length < 11)
            {
                TempData["Error"] = " Description must be entered at least 11 characters";
            }

            if (viewModel.product.Length < 4)
            {
                TempData["Error"] = "Product must be at least 4 characters";
            }

            if (viewModel.opening_bid < 1)
            {
                TempData["Error"] = "An opening bid of 1 or greater is required";
            }

            if (viewModel.opening_bid < 1 ||
                viewModel.product.Length < 4 ||
                viewModel.description.Length < 11)
            {
                return(RedirectToAction("NewAuction"));
            }


            TimeSpan auctionTime = viewModel.ending_at - DateTime.Now;

            if (auctionTime.TotalDays < 1)
            {
                return(RedirectToAction("NewAuction"));
            }


            Auction newAuction = new Auction();

            newAuction.creatorid   = Logged_user.id;
            newAuction.product     = viewModel.product;
            newAuction.description = viewModel.description;
            newAuction.opening_bid = viewModel.opening_bid;
            newAuction.sold_for    = 0;

            newAuction.ending_at = viewModel.ending_at;


            newAuction.created_at = DateTime.Now;
            _context.auctions.Add(newAuction);
            _context.SaveChanges();

            return(RedirectToAction("GetAuctions"));
        }