public async Task <IActionResult> Alter(int id) { AuktionModel auktionModel = await _service.GetAuktionAsync(id); if (auktionModel is null) { TempData["Message"] = "Misslyckades med att redigera auktionen! Auktionen finns inte i databasen."; return(RedirectToAction("Index")); } NauktionUser currentUser = await _userManager.GetUserAsync(User); if (auktionModel.SkapadAv != currentUser.Id) { TempData["Message"] = "Misslyckades med att redigera auktionen! Du kan inte redigera någon annans auktion."; return(RedirectToAction("Index")); } var model = new AuktionViewModel { AuktionID = auktionModel.AuktionID, Titel = auktionModel.Titel, Beskrivning = auktionModel.Beskrivning, SlutDatum = auktionModel.SlutDatum, Utropspris = auktionModel.Utropspris ?? 0 }; return(View(model)); }
public async Task <IActionResult> Alter(AuktionViewModel model) { if (!ModelState.IsValid) { return(View(model)); } AuktionModel auktionModel = await _service.GetAuktionAsync(model.AuktionID); if (auktionModel is null) { TempData["Message"] = "Misslyckades med att redigera auktionen! Auktionen finns inte i databasen."; return(RedirectToAction("Index")); } NauktionUser currentUser = await _userManager.GetUserAsync(User); if (auktionModel.SkapadAv != currentUser.Id) { TempData["Message"] = "Misslyckades med att redigera auktionen! Du kan inte redigera någon annans auktion."; return(RedirectToAction("Index")); } await _service.AlterAuktionAsync(model); TempData["Message"] = $"Dina ändringar till auktionen \"{model.Titel}\" har sparats!"; return(View(model)); }
public ActionResult CreateAuction(AuktionModel model) { if (ModelState.IsValid) { int recordsCreated = AuctionProcessor.CreateAuction(model.Title, model.Tid, model.CurrentPrice, model.MaxPrice); return(RedirectToAction("Index")); } return(View()); }
public static async Task <AuktionBudViewModel> GetAuktionBudsAsync(this IAuktionService service, int id) { AuktionModel auktion = await service.GetAuktionAsync(id); if (auktion is null) { return(null); } return(new AuktionBudViewModel( auktion, await service.ListBudsAsync(auktion.AuktionID) )); }
public async Task AlterAuktionAsync(AuktionViewModel model) { AuktionModel previous = await GetAuktionAsync(model.AuktionID); if (previous is null) { throw new NullReferenceException($"Auktion #{model.AuktionID} finns inte i databasen!"); } previous.Titel = model.Titel; previous.Beskrivning = model.Beskrivning; previous.SlutDatum = model.SlutDatum; previous.Utropspris = model.Utropspris; await _repository.AlterAuktionAsync(previous); }
public async Task CreateAuktionAsync(AuktionModel model) { var formdata = new FormUrlEncodedContent(new Dictionary <string, string> { [nameof(model.Titel)] = model.Titel, [nameof(model.Beskrivning)] = model.Beskrivning, [nameof(model.StartDatum)] = model.StartDatum.ToString("u"), [nameof(model.SlutDatum)] = model.SlutDatum.ToString("u"), [nameof(model.Utropspris)] = model.Utropspris?.ToString() ?? "0", [nameof(model.Gruppkod)] = model.Gruppkod.ToString(), [nameof(model.SkapadAv)] = model.SkapadAv }); HttpResponseMessage response = await _client.PostAsync("Auktion", formdata); response.EnsureSuccessStatusCode(); }
public void GetAuktion_GoesThroughService() { // Arrange var mockRepo = new Mock <IAuktionRepository>(); var service = new AuktionService(mockRepo.Object, null); var model = new AuktionModel(); mockRepo.Setup(t => t.GetAuktionAsync(It.IsAny <int>())) .ReturnsAsync(model) .Verifiable(); // Act AuktionModel result = service.GetAuktionAsync(1).Result; // Assert Assert.AreSame(model, result); mockRepo.Verify(); }
public async Task <string> ValidateBud(int auktionID, int summa, NauktionUser budgivare) { AuktionModel auktion = await GetAuktionAsync(auktionID); if (auktion is null) { return("Auktionen finns inte."); } if (auktion.IsClosed()) { return("Du kan inte buda på en stängd auktion."); } if (summa <= auktion.Utropspris) { return("Budet måste vara större än utropspriset."); } List <BudModel> budModels = await ListBudsAsync(auktionID); BudModel highestBid = budModels.FirstOrDefault(); if (highestBid is null) { return(null); } if (summa <= highestBid.Summa) { return("Budet måste vara större än det högsta budet."); } NauktionUser highestBidder = await _userManager.FindByIdAsync(highestBid.Budgivare); if (highestBidder?.Id == budgivare.Id) { return("Du kan inte buda när du har högsta budet."); } return(null); }