コード例 #1
0
        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"));
        }
コード例 #2
0
        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"));
        }