public void SetUp() { filesManager = new Mock <IFilesManager>(); database = new Mock <IDatabase>(); tempDatabaseCleaner = new Mock <ITempDatabaseCleaner>(); customInteriorManager = new Mock <ICustomInteriorManager>(); httpContextReader = new Mock <IHttpContextReader>(); filesManager.Setup(f => f.Upload(It.IsNotNull <IFormFile>(), It.IsNotNull <string>())) .ReturnsAsync(uploadedFile); database.Setup(d => d.PremiumFileRepository.Insert(It.IsNotNull <PremiumFile>(), false)).ReturnsAsync(true); database.Setup(d => d.PremiumFileRepository.GetFileWithOrder(OldFileId)).ReturnsAsync(() => { var premiumFile = new PremiumFile(); premiumFile.SetOrder(new Order()); return(premiumFile); }); database.Setup(d => d.PremiumFileRepository.GetFileWithOrderAndEstate(OldFileId)).ReturnsAsync(() => { var premiumFile = new PremiumFile(); premiumFile.SetOrder(new Order()); premiumFile.SetEstate(new Estate()); return(premiumFile); }); database.Setup(d => d.BeginTransaction()).Returns(new DatabaseTransaction()); database.Setup(d => d.PremiumFileRepository.Delete(It.IsNotNull <PremiumFile>())).ReturnsAsync(true); database.Setup(d => d.OrderRepository.Update(It.IsNotNull <Order>())).ReturnsAsync(true); customInteriorManager.Setup(c => c.InitGameTempObjectsAndInteriors(It.IsNotNull <Estate>(), It.IsNotNull <PremiumFile>())) .Returns((new List <GameTempObject>(), new GameTempInterior())); httpContextReader.Setup(h => h.CurrentUserId).Returns(UserId); premiumUserLibraryManager = new PremiumUserLibraryManager(filesManager.Object, database.Object, tempDatabaseCleaner.Object, customInteriorManager.Object, httpContextReader.Object); }
private void ValidateOldFileExpiration(PremiumFile oldPremiumFile) { if (oldPremiumFile.DateCreated.AddDays(1) < DateTime.Now) { throw new NoPermissionsException("Time to change file has expired"); } oldPremiumFile.Order.SetApprovalState(StateType.None); }
private async Task DeleteOldPremiumFileAndUpdateOrder(PremiumFile oldPremiumFile) { if (!await database.PremiumFileRepository.Delete(oldPremiumFile)) { throw new DatabaseException("Deleting old file failed"); } if (!await database.OrderRepository.Update(oldPremiumFile.Order)) { throw new DatabaseException(); } }
public async Task ExecuteAddCustomInterior(PremiumFile premiumFile, IEnumerable <GameTempObject> gameTempObjects, GameTempInterior gameTempInterior) { if (!await database.GameTempObjectRepository.InsertRange(gameTempObjects)) { filesManager.Delete(premiumFile.Path); throw new DatabaseException(); } if (!await database.GameTempInteriorRepository.Insert(gameTempInterior, false)) { filesManager.Delete(premiumFile.Path); throw new DatabaseException(); } }
public (IEnumerable <GameTempObject>, GameTempInterior) InitGameTempObjectsAndInteriors(Estate estate, PremiumFile premiumFile) { var(gameTempObjectsElements, gameTempInteriorsElements) = ( xmlReader.GetDescendantNodes($"{filesManager.WebRootPath}{premiumFile.Path}", (node) => node.Name.LocalName.Equals("object")), xmlReader.GetDescendantNodes($"{filesManager.WebRootPath}{premiumFile.Path}", (node) => node.Name.LocalName.Equals("marker"))); int gameTempObjectsCount = gameTempObjectsElements.Count(); if (gameTempObjectsCount > Constants.MaximumTempObjectsCount) { filesManager.Delete(premiumFile.Path); throw new ServerException( $"Maximum game temp objects count is: {Constants.MaximumTempObjectsCount}. Your interior file has: {gameTempObjectsCount}"); } return( TempObjectsAndInteriorsUtils.ConvertXElementsToTempObjects(gameTempObjectsElements, estate.Id, estate.InteriorId, httpContextReader.CurrentUsername), TempObjectsAndInteriorsUtils.ConvertXElementsToTempInterior(gameTempInteriorsElements, estate.Id, estate.InteriorId, httpContextReader.CurrentUserId)); }