public ActionResult Delete(string id) { Guid guid; if (!Guid.TryParse(id, out guid)) { return(RedirectToAction("notfound", "error")); } Escrow es = data.Escrows.GetByID(guid); if ((EscrowState)es.State == EscrowState.Closed) { EscrowClosedBy closedby = (EscrowClosedBy)es.ClosedBy.Value; if (closedby == EscrowClosedBy.BuyerCancel || closedby == EscrowClosedBy.SellerReject) { if (WebSecurity.CurrentUserId == es.SellerId) { es.SellerDeleteDt = DateTime.Now; data.Save(); } else if (WebSecurity.CurrentUserId == es.BuyerId) { es.BuyerDeleteDt = DateTime.Now; data.Save(); } } else { return(View(new FeedbackModel() { EscrowId = guid.StringWithoutDashes() })); } } return(RedirectToAction("Index")); }
public ActionResult Finalize(FeedbackModel model) { Guid guid; if (!Guid.TryParse(model.EscrowId, out guid)) { return(RedirectToAction("notfound", "error")); } Escrow es = data.Escrows.GetByID(guid); if ((EscrowState)es.State == EscrowState.Closed) { EscrowClosedBy closedby = (EscrowClosedBy)es.ClosedBy.Value; if (closedby != EscrowClosedBy.BuyerCancel || closedby != EscrowClosedBy.SellerReject) { if (WebSecurity.CurrentUserId == es.SellerId) { es.SellerDeleteDt = DateTime.Now; Feedback fb = new Feedback() { AboutSeller = false, AboutUserId = es.BuyerId, CreatedDate = DateTime.Now, FromUserId = WebSecurity.CurrentUserId, ListingId = es.ListingId, Message = model.Message, Stars = model.Score, }; data.Feedbacks.Insert(fb); if (es.UserBuyer.FeedbacksAbout.Count > 0) { es.UserBuyer.TotalScore = es.UserBuyer.FeedbacksAbout .Select(s => (decimal)s.Stars).Average(); if (es.UserBuyer.FeedbacksAbout.Where(s => !s.AboutSeller).Count() > 0) { es.UserBuyer.BuyerScore = es.UserBuyer.FeedbacksAbout.Where(s => !s.AboutSeller) .Select(s => (decimal)s.Stars).Average(); } } data.Save(); } else if (WebSecurity.CurrentUserId == es.BuyerId) { es.BuyerDeleteDt = DateTime.Now; Feedback fb = new Feedback() { AboutSeller = true, AboutUserId = es.SellerId, CreatedDate = DateTime.Now, FromUserId = WebSecurity.CurrentUserId, ListingId = es.ListingId, Message = model.Message, Stars = model.Score }; data.Feedbacks.Insert(fb); if (es.UserSeller.FeedbacksAbout.Count > 0) { es.UserSeller.TotalScore = es.UserSeller.FeedbacksAbout .Select(s => (decimal)s.Stars).Average(); if (es.UserSeller.FeedbacksAbout.Where(s => s.AboutSeller).Count() > 0) { es.UserSeller.SellerScore = es.UserSeller.FeedbacksAbout.Where(s => s.AboutSeller) .Select(s => (decimal)s.Stars).Average(); } } data.Save(); } } } return(RedirectToAction("Index")); }