コード例 #1
0
ファイル: TransactionHandler.cs プロジェクト: hw3jung/Chanel
        public static bool CancelTransaction(Transaction transaction)
        {
            bool success = CreateForbiddenMatch(transaction.BuyerPostId, transaction.SellerPostId) > 0 &&
                           CreateForbiddenMatch(transaction.SellerPostId, transaction.BuyerPostId) > 0;

            if (success)
            {
                Dictionary <string, object> updateDictionary = new Dictionary <string, object>();
                updateDictionary.Add("IsDeleted", 1);
                UpdateTransaction(transaction.TransactionId, updateDictionary);

                PostHandler.updatePostState(transaction.SellerPostId, 0);
                PostHandler.updatePostState(transaction.BuyerPostId, 0);

                Profile buyer  = ProfileHandler.GetProfile(transaction.BuyerId);
                Profile seller = ProfileHandler.GetProfile(transaction.SellerId);

                Textbook book = TextbookHandler.getTextbook(transaction.TextbookId);
                EmailUtility.SendEmail(
                    Convert.ToString(buyer.Email),
                    Convert.ToString(buyer.Name),
                    "Your transaction has been cancelled",
                    String.Format("Item: {0}</br>{1} has cancelled the transaction with you!<br/>" +
                                  "We'll try to match you with someone else for this item.",
                                  book.BookTitle,
                                  seller.Name)
                    );

                EmailUtility.SendEmail(
                    Convert.ToString(seller.Email),
                    Convert.ToString(seller.Name),
                    "Your transaction has been cancelled",
                    String.Format("Item: {0}<br/>{1} has cancelled the transaction with you!<br/>" +
                                  "We'll try to match you with someone else for this item.",
                                  book.BookTitle,
                                  buyer.Name)
                    );

                Post sellerPost = PostHandler.getPost(transaction.SellerPostId);
                Post buyerPost  = PostHandler.getPost(transaction.BuyerPostId);
                Task.Run(() => QueueWorker.AddPost(sellerPost));
                Task.Run(() => QueueWorker.AddPost(buyerPost));
            }

            return(success);
        }
コード例 #2
0
ファイル: TransactionHandler.cs プロジェクト: hw3jung/Chanel
        public static bool ConfirmTransaction(Transaction transaction)
        {
            Dictionary <string, object> updateDictionary = new Dictionary <string, object>();

            if (transaction.FinalPrice != null && transaction.Confirmed == Confirmed.ByNone)
            {
                updateDictionary.Add("FinalPrice", (int)transaction.FinalPrice);

                Profile buyer  = ProfileHandler.GetProfile(transaction.BuyerId);
                Profile seller = ProfileHandler.GetProfile(transaction.SellerId);

                Textbook book = TextbookHandler.getTextbook(transaction.TextbookId);
                if (transaction.CurrentUser == ActionBy.Buyer)
                {
                    updateDictionary.Add("Confirmed", (int)Confirmed.ByBuyer);
                    EmailUtility.SendEmail(
                        Convert.ToString(seller.Email),
                        Convert.ToString(seller.Name),
                        "Please confirm your transaction",
                        String.Format("Item: {0}<br/>{1} has confirmed a transaction with you!<br/>" +
                                      "Please confirm it yourself to finalize the transaction.",
                                      book.BookTitle,
                                      buyer.Name)
                        );
                }
                else
                {
                    updateDictionary.Add("Confirmed", (int)Confirmed.BySeller);
                    EmailUtility.SendEmail(
                        Convert.ToString(buyer.Email),
                        Convert.ToString(buyer.Name),
                        "Please confirm your transaction",
                        String.Format("Item: {0}<br/>{1} has confirmed a transaction with you!<br/>" +
                                      "Please confirm it yourself to finalize the transaction.",
                                      book.BookTitle,
                                      seller.Name)
                        );
                }
            }
            else if (transaction.FinalPrice != null)
            {
                updateDictionary.Add("ConfirmPrice", (int)transaction.FinalPrice);
                updateDictionary.Add("Confirmed", (int)Confirmed.ByBoth);
                updateDictionary.Add("IsActive", 0);

                PostHandler.updatePostState(transaction.SellerPostId, 0, 0);
                PostHandler.updatePostState(transaction.BuyerPostId, 0, 0);

                Profile buyer  = ProfileHandler.GetProfile(transaction.BuyerId);
                Profile seller = ProfileHandler.GetProfile(transaction.SellerId);

                Textbook book = TextbookHandler.getTextbook(transaction.TextbookId);
                EmailUtility.SendEmail(
                    Convert.ToString(buyer.Email),
                    Convert.ToString(buyer.Name),
                    "Your transaction is now complete",
                    String.Format("Item: {0}<br/>Your transaction with {1} has finalized.<br/>" +
                                  "Thank you for using BookSpade!",
                                  book.BookTitle,
                                  seller.Name)
                    );

                EmailUtility.SendEmail(
                    Convert.ToString(seller.Email),
                    Convert.ToString(seller.Name),
                    "Your transaction is now complete",
                    String.Format("Item: {0}<br/>Your transaction with {1} has finalized.<br/>" +
                                  "Thank you for using BookSpade!",
                                  book.BookTitle,
                                  buyer.Name)
                    );
            }

            UpdateTransaction(transaction.TransactionId, updateDictionary);
            return(true);
        }