本文整理汇总了C#中Nop.Core.Domain.Orders.Order类的典型用法代码示例。如果您正苦于以下问题:C# Order类的具体用法?C# Order怎么用?C# Order使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Order类属于Nop.Core.Domain.Orders命名空间,在下文中一共展示了Order类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddRewardPointsHistoryEntry
/// <summary>
/// Add reward points history record
/// </summary>
/// <param name="customer">Customer</param>
/// <param name="points">Number of points to add</param>
/// <param name="storeId">Store identifier</param>
/// <param name="message">Message</param>
/// <param name="usedWithOrder">the order for which points were redeemed as a payment</param>
/// <param name="usedAmount">Used amount</param>
public virtual void AddRewardPointsHistoryEntry(Customer customer,
int points, int storeId, string message = "",
Order usedWithOrder = null, decimal usedAmount = 0M)
{
if (customer == null)
throw new ArgumentNullException("customer");
if (storeId <= 0)
throw new ArgumentException("Store ID should be valid");
var rph = new RewardPointsHistory
{
Customer = customer,
StoreId = storeId,
UsedWithOrder = usedWithOrder,
Points = points,
PointsBalance = GetRewardPointsBalance(customer.Id, storeId) + points,
UsedAmount = usedAmount,
Message = message,
CreatedOnUtc = DateTime.UtcNow
};
_rphRepository.Insert(rph);
//event notification
_eventPublisher.EntityInserted(rph);
}
示例2: CanRePostProcessPayment
/// <summary>
/// Gets a value indicating whether customers can complete a payment after order is placed but not completed (for redirection payment methods)
/// </summary>
/// <param name="order">Order</param>
/// <returns>Result</returns>
public virtual bool CanRePostProcessPayment(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
if (!_paymentSettings.AllowRePostingPayments)
return false;
var paymentMethod = LoadPaymentMethodBySystemName(order.PaymentMethodSystemName);
if (paymentMethod == null)
return false; //Payment method couldn't be loaded (for example, was uninstalled)
if (paymentMethod.PaymentMethodType != PaymentMethodType.Redirection)
return false; //this option is available only for redirection payment methods
if (order.Deleted)
return false; //do not allow for deleted orders
if (order.OrderStatus == OrderStatus.Cancelled)
return false; //do not allow for cancelled orders
if (order.PaymentStatus != PaymentStatus.Pending)
return false; //payment status should be Pending
return paymentMethod.CanRePostProcessPayment(order);
}
示例3: DeleteOrder
/// <summary>
/// Deletes an order
/// </summary>
/// <param name="order">The order</param>
public virtual void DeleteOrder(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
order.Deleted = true;
UpdateOrder(order);
}
示例4: CanRePostProcessPayment
public bool CanRePostProcessPayment(Order order)
{
if (order == null)
{
throw new ArgumentNullException("order");
}
return false;
}
示例5: CanRePostProcessPayment
public bool CanRePostProcessPayment(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
//удостоверимся, что прошло не меньше минуты после перехода к оплате
if ((DateTime.UtcNow - order.CreatedOnUtc).TotalMinutes < 1)
return false;
return true;
}
示例6: Can_save_and_load_customer_with_affiliate
public void Can_save_and_load_customer_with_affiliate()
{
var order = new Order
{
OrderGuid = Guid.NewGuid(),
Customer = GetTestCustomer(),
Affiliate = GetTestAffiliate(),
BillingAddress = GetTestBillingAddress(),
CreatedOnUtc = new DateTime(2010, 01, 01)
};
var fromDb = SaveAndLoadEntity(order);
fromDb.ShouldNotBeNull();
fromDb.Affiliate.ShouldNotBeNull();
fromDb.Affiliate.Active.ShouldEqual(true);
}
示例7: AddRewardPointsHistoryEntry
public static void AddRewardPointsHistoryEntry(this Customer customer,
int points, string message = "",
Order usedWithOrder = null, decimal usedAmount = 0M)
{
int newPointsBalance = customer.GetRewardPointsBalance() + points;
var rewardPointsHistory = new RewardPointsHistory()
{
Customer = customer,
UsedWithOrder = usedWithOrder,
Points = points,
PointsBalance = newPointsBalance,
UsedAmount = usedAmount,
Message = message,
CreatedOnUtc = DateTime.UtcNow
};
customer.RewardPointsHistory.Add(rewardPointsHistory);
}
示例8: ToModel
public static VendorReviewModel ToModel(this VendorReview Review, Order Order, Product Product)
{
var model = new VendorReviewModel()
{
CreatedOnUTC = Review.CreatedOnUTC,
CustomerId = Review.CustomerId,
HelpfulnessNoTotal = Review.HelpfulnessNoTotal,
HelpfulnessYesTotal = Review.HelpfulnessYesTotal,
Id = Review.Id,
IsApproved = Review.IsApproved,
ProductId = Review.ProductId,
Rating = Review.Rating,
ReviewText = Review.ReviewText,
Title = Review.Title,
VendorId = Review.VendorId,
OrderId = Review.OrderId,
ProductName = Product.Name,
CertifiedBuyerReview = Review.CertifiedBuyerReview,
DisplayCertifiedBadge = Review.DisplayCertifiedBadge
};
return model;
}
示例9: CanRePostProcessPayment
/// <summary>
/// Gets a value indicating whether customers can complete a payment after order is placed but not completed (for redirection payment methods)
/// </summary>
/// <param name="order">Order</param>
/// <returns>Result</returns>
public bool CanRePostProcessPayment(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
//let's ensure that at least 5 seconds passed after order is placed
//P.S. there's no any particular reason for that. we just do it
if ((DateTime.UtcNow - order.CreatedOnUtc).TotalSeconds < 5)
return false;
return true;
}
示例10: UpdateOrder
/// <summary>
/// Updates the order
/// </summary>
/// <param name="order">The order</param>
public virtual void UpdateOrder(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
_orderRepository.Update(order);
//event notification
_eventPublisher.EntityUpdated(order);
}
示例11: SendOrderPlacedStoreOwnerNotification
/// <summary>
/// Sends an order placed notification to a store owner
/// </summary>
/// <param name="order">Order instance</param>
/// <param name="languageId">Message language identifier</param>
/// <returns>Queued email identifier</returns>
public virtual int SendOrderPlacedStoreOwnerNotification(Order order, int languageId)
{
if (order == null)
throw new ArgumentNullException("order");
languageId = EnsureLanguageIsActive(languageId);
var messageTemplate = GetLocalizedActiveMessageTemplate("OrderPlaced.StoreOwnerNotification", languageId);
if (messageTemplate == null)
return 0;
var orderTokens = GenerateTokens(order, languageId);
//event notification
_eventPublisher.MessageTokensAdded(messageTemplate, orderTokens);
var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId);
var toEmail = emailAccount.Email;
var toName = emailAccount.DisplayName;
return SendNotification(messageTemplate, emailAccount,
languageId, orderTokens,
toEmail, toName);
}
示例12: PartiallyRefund
/// <summary>
/// Partially refunds an order (from admin panel)
/// </summary>
/// <param name="order">Order</param>
/// <param name="amountToRefund">Amount to refund</param>
/// <returns>A list of errors; empty list if no errors</returns>
public virtual IList<string> PartiallyRefund(Order order, decimal amountToRefund)
{
if (order == null)
throw new ArgumentNullException("order");
if (!CanPartiallyRefund(order, amountToRefund))
throw new NopException("Cannot do partial refund for order.");
var request = new RefundPaymentRequest();
RefundPaymentResult result = null;
try
{
request.Order = order;
request.AmountToRefund = amountToRefund;
request.IsPartialRefund = true;
result = _paymentService.Refund(request);
if (result.Success)
{
//total amount refunded
decimal totalAmountRefunded = order.RefundedAmount + amountToRefund;
//update order info
order.RefundedAmount = totalAmountRefunded;
order.PaymentStatus = result.NewPaymentStatus;
_orderService.UpdateOrder(order);
//add a note
order.OrderNotes.Add(new OrderNote
{
Note = string.Format("Order has been partially refunded. Amount = {0}", _priceFormatter.FormatPrice(amountToRefund, true, false)),
DisplayToCustomer = false,
CreatedOnUtc = DateTime.UtcNow
});
_orderService.UpdateOrder(order);
//check order status
CheckOrderStatus(order);
//raise event
_eventPublisher.Publish(new OrderRefundedEvent(order, amountToRefund));
}
}
catch (Exception exc)
{
if (result == null)
result = new RefundPaymentResult();
result.AddError(string.Format("Error: {0}. Full exception: {1}", exc.Message, exc.ToString()));
}
//process errors
string error = "";
for (int i = 0; i < result.Errors.Count; i++)
{
error += string.Format("Error {0}: {1}", i, result.Errors[i]);
if (i != result.Errors.Count - 1)
error += ". ";
}
if (!String.IsNullOrEmpty(error))
{
//add a note
order.OrderNotes.Add(new OrderNote
{
Note = string.Format("Unable to partially refund order. {0}", error),
DisplayToCustomer = false,
CreatedOnUtc = DateTime.UtcNow
});
_orderService.UpdateOrder(order);
//log it
string logError = string.Format("Error refunding order #{0}. Error: {1}", order.Id, error);
_logger.InsertLog(LogLevel.Error, logError, logError);
}
return result.Errors;
}
示例13: MarkAsAuthorized
/// <summary>
/// Marks order as authorized
/// </summary>
/// <param name="order">Order</param>
public virtual void MarkAsAuthorized(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
order.PaymentStatusId = (int)PaymentStatus.Authorized;
_orderService.UpdateOrder(order);
//add a note
order.OrderNotes.Add(new OrderNote
{
Note = "Order has been marked as authorized",
DisplayToCustomer = false,
CreatedOnUtc = DateTime.UtcNow
});
_orderService.UpdateOrder(order);
//check order status
CheckOrderStatus(order);
}
示例14: DeleteOrder
/// <summary>
/// Deletes an order
/// </summary>
/// <param name="order">The order</param>
public virtual void DeleteOrder(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
//check whether the order wasn't cancelled before
//if it already was cancelled, then there's no need to make the following adjustments
//(such as reward points, inventory, recurring payments)
//they already was done when cancelling the order
if (order.OrderStatus != OrderStatus.Cancelled)
{
//reward points
ReduceRewardPoints(order);
//cancel recurring payments
var recurringPayments = _orderService.SearchRecurringPayments(0, 0, order.Id, null, 0, int.MaxValue);
foreach (var rp in recurringPayments)
{
var errors = CancelRecurringPayment(rp);
//use "errors" variable?
}
//Adjust inventory for already shipped shipments
//only products with "use mutliple warehouses"
foreach (var shipment in order.Shipments)
{
foreach (var shipmentItem in shipment.ShipmentItems)
{
var orderItem = _orderService.GetOrderItemById(shipmentItem.OrderItemId);
if (orderItem == null)
continue;
_productService.ReverseBookedInventory(orderItem.Product, shipmentItem);
}
}
//Adjust inventory
foreach (var orderItem in order.OrderItems)
{
_productService.AdjustInventory(orderItem.Product, orderItem.Quantity, orderItem.AttributesXml);
}
}
//add a note
order.OrderNotes.Add(new OrderNote
{
Note = "Order has been deleted",
DisplayToCustomer = false,
CreatedOnUtc = DateTime.UtcNow
});
_orderService.UpdateOrder(order);
//now delete an order
_orderService.DeleteOrder(order);
}
示例15: CanCapture
/// <summary>
/// Gets a value indicating whether capture from admin panel is allowed
/// </summary>
/// <param name="order">Order</param>
/// <returns>A value indicating whether capture from admin panel is allowed</returns>
public virtual bool CanCapture(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
if (order.OrderStatus == OrderStatus.Cancelled ||
order.OrderStatus == OrderStatus.Pending)
return false;
if (order.PaymentStatus == PaymentStatus.Authorized &&
_paymentService.SupportCapture(order.PaymentMethodSystemName))
return true;
return false;
}