public async Task <ActionResult> ApproveLandLordClaim(int?id) { if (!IsAdminUser()) { return(RedirectToAction("Unauthorized", "LandLords")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LandLordClaim claim = await db.LandLordClaims.FindAsync(id); if (claim == null || !IsAdminUser() || claim.LandLord.IsClaimed) { return(HttpNotFound()); } return(View(claim)); }
public async Task <ActionResult> ClaimLandLord( [Bind( Include = "Id,ClaimName,ClaimDescription,DocumentFilePath,IsPending,IsApproved,ApplicationUser_Id,LandLord_LandLordId" )] ClaimLandLordViewModel vm, HttpPostedFileBase document) { if (Request.Files.Count > 0) { var file = Request.Files[0]; vm.Document = file; } var landlordid = TempData["landlordid"]; var landlord = await db.LandLords.FindAsync(landlordid); if (landlord != null) { vm.LandLord = landlord; } //Manually changed to test all values, redirect to view if not valid. Was previously ModelState.IsValid but was broken and couldn't figure out why it wouldn't find the document. if (vm.Document != null && vm.ClaimName != null && vm.ClaimDescription != null && vm.LandLord != null) { ApplicationUser currentUser = GetCurrentUser(); var landLordClaim = new LandLordClaim(); var docPath = Path.Combine(Server.MapPath("~/uploads"), vm.Document.FileName); vm.Document.SaveAs(docPath); landLordClaim.DocumentFilePath = docPath; landLordClaim.ClaimName = vm.ClaimName; landLordClaim.ClaimDescription = vm.ClaimDescription; landLordClaim.ApplicationUser = currentUser; landLordClaim.LandLord = vm.LandLord; db.LandLordClaims.Add(landLordClaim); await db.SaveChangesAsync(); return(RedirectToAction("ClaimSubmitted")); } ViewBag.Message = "Error. Please fill out all values."; return(View(vm)); }
public async Task <ActionResult> ApproveLandLordClaimFinal(int?id) { if (!IsAdminUser()) { return(RedirectToAction("Unauthorized", "LandLords")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LandLordClaim claim = await db.LandLordClaims.FindAsync(id); if (claim == null || !IsAdminUser() || claim.LandLord.IsClaimed || claim.ApplicationUser.ClaimedLandLordId != 0) { return(HttpNotFound()); } claim.IsApproved = true; claim.IsPending = false; var user = claim.ApplicationUser; var landlord = claim.LandLord; user.ClaimedLandLordId = claim.LandLord.LandLordId; landlord.IsClaimed = true; db.Entry(landlord).State = EntityState.Modified; db.Entry(user).State = EntityState.Modified; db.Entry(claim).State = EntityState.Modified; if (db.Ratings.Any(u => u.LandLord == landlord && u.User == user)) { var rating = db.Ratings.SingleOrDefault(u => u.LandLord == landlord && u.User == user); db.Ratings.Remove(rating); } await db.SaveChangesAsync(); return(RedirectToAction("PendingLandLordClaims")); }