public IActionResult Details(int id) { _logger.LogInformation(DateTime.Now.ToString("dd.MM.yyyy, HH:mm:ss")); var campaign = _context.Campaigns.Find(id); var achieveGood = new UserAchievementsModel { UserId = _userManager.GetUserId(this.User), AchievementId = _context.Achievements.Where(x => x.Name == "Good start").First().Id, GetDate = DateTime.Now }; var achieveSad = new UserAchievementsModel { UserId = _userManager.GetUserId(this.User), AchievementId = _context.Achievements.Where(x => x.Name == "It could be worse...").First().Id, GetDate = DateTime.Now }; var isUserHasAcvhieveGood = _context.UserAchievements.Where(x => x.UserId == achieveGood.UserId && x.AchievementId == achieveGood.AchievementId).Any(); var isUserHasAcvhieveSad = _context.UserAchievements.Where(x => x.UserId == achieveSad.UserId && x.AchievementId == achieveSad.AchievementId).Any(); if (campaign.EndTime < DateTime.Now) { campaign.Ended = true; var isGoodEnd = campaign.RemainSum >= campaign.TotalSum; if (!isUserHasAcvhieveGood && isGoodEnd) { _context.UserAchievements.Add(achieveGood); _notyfService.Success("You got new achievement!"); } else if (!isUserHasAcvhieveSad && !isGoodEnd) { _context.UserAchievements.Add(achieveSad); _notyfService.Success("You got new achievement!"); } _context.SaveChanges(); } var commentVm = new CommentViewModel { Campaign = _context.Campaigns.Find(id), Comments = _context.Comments.ToList(), Rating = new Rating { CampaignId = id } }; return(View(commentVm)); }
public async Task <IActionResult> CreateAsync(Campaign campaign) { if (ModelState.IsValid) { if (campaign.ImageFile != null) { var file = campaign.ImageFile; string filePath = await _cloudStorage.GetFilePathAsync(file); var uri = _cloudStorage.UploadImage(filePath); campaign.ImageUrl = uri.ToString(); } else { campaign.ImageUrl = "https://res.cloudinary.com/dwivxsl5s/image/upload/v1621205266/no-img_if8frz.jpg"; } campaign.Author = _userManager.GetUserName(this.User); campaign.UserId = _userManager.GetUserId(this.User); campaign.BeginTime = DateTime.Now; campaign.RemainSum = 0; var achieve = new UserAchievementsModel { UserId = _userManager.GetUserId(this.User), AchievementId = _context.Achievements.Where(x => x.Name == "That's only the beginning!").First().Id, GetDate = DateTime.Now }; var campaignsCurrentUserCount = _context.Campaigns.Where(x => x.Author == campaign.Author).Count(); var isUserHasAcvhieve = _context.UserAchievements.Where(x => x.UserId == achieve.UserId && x.AchievementId == achieve.AchievementId).Any(); if (!isUserHasAcvhieve && campaignsCurrentUserCount < 1) { _context.UserAchievements.Add(achieve); _notyfService.Success("You got new achievement!"); } _context.Campaigns.Add(campaign); _context.SaveChanges(); } return(RedirectPermanent("~/Home/Index")); }