public OpenAuctionProcessException(OpenAuctionRequestVm model, string text) : base(text) { ModelOnException = model; ExceptionText = text; ExceptionTime = DateTime.Now; }
public void OpenAuction(OpenAuctionRequestVm model, int organizationId) { if (model == null) { throw new ArgumentNullException($"{typeof(OpenAuctionRequestVm).Name} is null"); } int maximumAllowedActiveAuctions = 3; var auctionsCheck = _aplicationDbContext .Organizations .Find(organizationId) .Auctions .Where(p => p.AuctionStatus == AuctionStatus.Active) .Count() < maximumAllowedActiveAuctions; var categoryCheck = _aplicationDbContext.AuctionCategories .SingleOrDefault(p => p.Name == model.AuctionCategory); if (categoryCheck == null) { throw new Exception("Ошибка валидации модели!"); } int categoryChecked = categoryCheck.Id; if (!auctionsCheck) { throw new OpenAuctionProcessException(model, "Превышено максимальное количество активных аукционов!"); } Auction auction = new Auction() { Description = model.Description, ShippingAddress = model.ShippingAddress, ShippingConditions = model.ShippingConditions, PriceAtStart = model.PriceAtStart, PriceChangeStep = model.PriceChangeStep, PriceAtMinimum = model.PriceAtMinimum, StartDate = model.StartDate, FinishDateExpected = model.FinishDateExpected, AuctionStatus = AuctionStatus.Active, AuctionCategoryId = categoryChecked, OrganizationId = organizationId }; _aplicationDbContext.Auctions.Add(auction); _aplicationDbContext.SaveChanges(); }
public static void OpenAuction(int organizationId) { OpenAuctionRequestVm openAuction = new OpenAuctionRequestVm() { Category = "test", Description = "TestDiscription", FinishDateExpected = DateTime.Now.AddDays(5), PriceAtMinimum = 300000, PriceAtStart = 500000, PriceChangeStep = 50000, ShippingAddress = "TestShippingAdress", ShippingConditions = "TestShippingConditions", StartDate = DateTime.Now }; AuctionManagementService auctionService = new AuctionManagementService(); auctionService.OpenAuction(openAuction, organizationId); }
public void OpenAuction(OpenAuctionRequestVm model, int organizationId) { if (model == null) { throw new ArgumentNullException($"{typeof(OpenAuctionRequestVm).Name} is null"); } int maximumAllowedActiveAuctions = 3; var auctionsCheck = _aplicationDbContext .Organizations .Find(organizationId) .Auctions .Where(p => p.AuctionStatus == AuctionStatus.Active) .Count() < maximumAllowedActiveAuctions; var categoryCheck = _aplicationDbContext.AuctionCategories .SingleOrDefault(p => p.Name == model.AuctionCategory); if (categoryCheck == null) { throw new Exception("Ошибка валидации модели!"); } if (!auctionsCheck) { throw new OpenAuctionProcessException(model, "Превышено максимальное количество активных аукционов!"); } var auctionModel = Mapper.Map <Auction>(model); auctionModel.AuctionStatus = AuctionStatus.Active; auctionModel.Category = categoryCheck; auctionModel.OrganizationId = organizationId; _aplicationDbContext.Auctions.Add(auctionModel); _aplicationDbContext.SaveChanges(); }