private Task <AuctionDataFile> _getAuctionDataTask(AuctionFile auctionFile) { return(new Task <AuctionDataFile>(() => { var apiResponse = ApiProvider.GetFromJson(new ApiRequest <AuctionDataFile>(new Uri(auctionFile.Url))); return apiResponse; })); }
public void OpenAuction(CreateAuctionViewModel model, Guid organizationId) { if (model == null) { throw new Exception($"{typeof(CreateAuctionViewModel).Name} is null"); } int maximumAllowedActiveAuctions = 3; var auctionsCheck = _applicationDbContext.Auctions .Where(p => p.OrganizationId == organizationId && p.Status == AuctionStatus.Active) .Count() < maximumAllowedActiveAuctions; var categoryCheck = _applicationDbContext.AuctionTypes .SingleOrDefault(p => p.Name == model.AuctionType); if (categoryCheck == null) { AuctionType auctionType = new AuctionType() { Id = Guid.NewGuid(), Name = model.AuctionType }; _applicationDbContext.AuctionTypes.Add(auctionType); _applicationDbContext.SaveChanges(); categoryCheck = auctionType; } if (!auctionsCheck) { throw new Exception("Превышено максимальное количество активных аукционов!"); } Auction auction = new Auction() { Id = Guid.NewGuid(), Description = model.Description, ShippingAddress = model.ShippingAddress, ShippingConditions = model.ShippingConditions, MinRatingForParticipant = model.RatingForParticipant, StartPrice = model.StartPrice, PriceStep = model.PriceStep, MinPrice = model.MinPrice, StartDate = model.StartDate, FinishDate = model.FinishDate, Status = AuctionStatus.Active, AuctionTypeId = categoryCheck.Id, OrganizationId = organizationId }; _applicationDbContext.Auctions.Add(auction); _applicationDbContext.SaveChanges(); //загружаем файлы аукциона в бд List <AuctionFile> auctionFiles = new List <AuctionFile>(); if (model.UploadFiles.Count != 0) { foreach (HttpPostedFileBase i in model.UploadFiles) { AuctionFile file = new AuctionFile(); byte[] fileData = null; // считываем файл в массив байтов using (var binaryReader = new BinaryReader(i.InputStream)) { fileData = binaryReader.ReadBytes(i.ContentLength); } // установка массива байтов file.AuctionId = auction.Id; file.FileName = i.FileName; file.Extension = i.ContentType; file.Content = fileData; file.CreatedAt = DateTime.Now; _applicationDbContext.AuctionFiles.Add(file); } _applicationDbContext.SaveChanges(); } }
public async Task <AuctionDataDump> GetAuctionDataDump(AuctionFile auctionHouseFile) { return(await JsonUtilities.DeserializeUrlAync <AuctionDataDump>(auctionHouseFile.Url).ConfigureAwait(false)); }
public static Task <AuctionDataFile> Enqueue(AuctionFile auctionFile) { return(Queue.Enqueue(() => ApiProvider.GetFromJson(new ApiRequest <AuctionDataFile>(new Uri(auctionFile.Url))), CancellationToken.None)); }