本文整理汇总了C#中Nop.Core.Domain.Orders.ReturnRequest类的典型用法代码示例。如果您正苦于以下问题:C# ReturnRequest类的具体用法?C# ReturnRequest怎么用?C# ReturnRequest使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ReturnRequest类属于Nop.Core.Domain.Orders命名空间,在下文中一共展示了ReturnRequest类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Can_save_and_load_returnRequest
public void Can_save_and_load_returnRequest()
{
var rr = new ReturnRequest()
{
StoreId = 1,
Customer = GetTestCustomer(),
Quantity = 2,
ReasonForReturn = "Wrong product",
RequestedAction = "Refund",
CustomerComments = "Some comment",
StaffNotes = "Some notes",
ReturnRequestStatus = ReturnRequestStatus.ItemsRefunded,
CreatedOnUtc = new DateTime(2010, 01, 01),
UpdatedOnUtc = new DateTime(2010, 01, 02),
};
var fromDb = SaveAndLoadEntity(rr);
fromDb.ShouldNotBeNull();
fromDb.StoreId.ShouldEqual(1);
fromDb.Customer.ShouldNotBeNull();
fromDb.Quantity.ShouldEqual(2);
fromDb.ReasonForReturn.ShouldEqual("Wrong product");
fromDb.RequestedAction.ShouldEqual("Refund");
fromDb.CustomerComments.ShouldEqual("Some comment");
fromDb.StaffNotes.ShouldEqual("Some notes");
fromDb.ReturnRequestStatus.ShouldEqual(ReturnRequestStatus.ItemsRefunded);
fromDb.CreatedOnUtc.ShouldEqual(new DateTime(2010, 01, 01));
fromDb.UpdatedOnUtc.ShouldEqual(new DateTime(2010, 01, 02));
}
示例2: GenerateReturnRequestCustomNumber
public virtual string GenerateReturnRequestCustomNumber(ReturnRequest returnRequest)
{
var customNumber = string.Empty;
if (string.IsNullOrEmpty(_orderSettings.ReturnRequestNumberMask))
{
customNumber = returnRequest.Id.ToString();
}
else
{
customNumber = _orderSettings.ReturnRequestNumberMask
.Replace("{ID}", returnRequest.Id.ToString())
.Replace("{YYYY}", returnRequest.CreatedOnUtc.ToString("yyyy"))
.Replace("{YY}", returnRequest.CreatedOnUtc.ToString("yy"))
.Replace("{MM}", returnRequest.CreatedOnUtc.ToString("MM"))
.Replace("{DD}", returnRequest.CreatedOnUtc.ToString("dd"));
//if you need to use the format for the ID with leading zeros, use the following code instead of the previous one.
////mask for Id example {#:00000000}
//var rgx = new Regex(@"{#:\d+}");
//var match = rgx.Match(customNumber);
//var maskForReplase = match.Value;
//
//rgx = new Regex(@"\d+");
//match = rgx.Match(maskForReplase);
//
//var formatValue = match.Value;
//if(!string.IsNullOrEmpty(formatValue) && !string.IsNullOrEmpty(maskForReplase))
// customNumber = customNumber.Replace(maskForReplase, returnRequest.Id.ToString(formatValue));
//else
// customNumber = customNumber.Insert(0, string.Format("{0}-", returnRequest.Id));
}
return customNumber;
}
示例3: PrepareReturnRequestModel
protected virtual bool PrepareReturnRequestModel(ReturnRequestModel model,
ReturnRequest returnRequest, bool excludeProperties)
{
if (model == null)
throw new ArgumentNullException("model");
if (returnRequest == null)
throw new ArgumentNullException("returnRequest");
var orderItem = _orderService.GetOrderItemById(returnRequest.OrderItemId);
if (orderItem == null)
return false;
model.Id = returnRequest.Id;
model.ProductId = orderItem.ProductId;
model.ProductName = orderItem.Product.Name;
model.OrderId = orderItem.OrderId;
model.CustomerId = returnRequest.CustomerId;
var customer = returnRequest.Customer;
model.CustomerInfo = customer.IsRegistered() ? customer.Email : _localizationService.GetResource("Admin.Customers.Guest");
model.Quantity = returnRequest.Quantity;
model.ReturnRequestStatusStr = returnRequest.ReturnRequestStatus.GetLocalizedEnum(_localizationService, _workContext);
model.CreatedOn = _dateTimeHelper.ConvertToUserTime(returnRequest.CreatedOnUtc, DateTimeKind.Utc);
if (!excludeProperties)
{
model.ReasonForReturn = returnRequest.ReasonForReturn;
model.RequestedAction = returnRequest.RequestedAction;
model.CustomerComments = returnRequest.CustomerComments;
model.StaffNotes = returnRequest.StaffNotes;
model.ReturnRequestStatusId = returnRequest.ReturnRequestStatusId;
}
//model is successfully prepared
return true;
}
示例4: DeleteReturnRequest
/// <summary>
/// Deletes a return request
/// </summary>
/// <param name="returnRequest">Return request</param>
public virtual void DeleteReturnRequest(ReturnRequest returnRequest)
{
if (returnRequest == null)
throw new ArgumentNullException("returnRequest");
_returnRequestRepository.Delete(returnRequest);
//event notification
_eventPublisher.EntityDeleted(returnRequest);
}
示例5: ReturnRequestSubmit
public ActionResult ReturnRequestSubmit(int orderId, SubmitReturnRequestModel model, FormCollection form)
{
var order = _orderService.GetOrderById(orderId);
if (order == null || order.Deleted || _workContext.CurrentCustomer.Id != order.CustomerId)
return new HttpUnauthorizedResult();
if (!_orderProcessingService.IsReturnRequestAllowed(order))
return RedirectToRoute("HomePage");
int count = 0;
foreach (var opv in order.OrderProductVariants)
{
int quantity = 0; //parse quantity
foreach (string formKey in form.AllKeys)
if (formKey.Equals(string.Format("quantity{0}", opv.Id), StringComparison.InvariantCultureIgnoreCase))
{
int.TryParse(form[formKey], out quantity);
break;
}
if (quantity > 0)
{
var rr = new ReturnRequest()
{
OrderProductVariantId = opv.Id,
Quantity = quantity,
CustomerId = _workContext.CurrentCustomer.Id,
ReasonForReturn = model.ReturnReason,
RequestedAction = model.ReturnAction,
CustomerComments = model.Comments,
StaffNotes = string.Empty,
ReturnRequestStatus = ReturnRequestStatus.Pending,
CreatedOnUtc = DateTime.UtcNow,
UpdatedOnUtc = DateTime.UtcNow
};
_workContext.CurrentCustomer.ReturnRequests.Add(rr);
_customerService.UpdateCustomer(_workContext.CurrentCustomer);
//notify store owner here (email)
_workflowMessageService.SendNewReturnRequestStoreOwnerNotification(rr, opv, _localizationSettings.DefaultAdminLanguageId);
count++;
}
}
model = PrepareReturnRequestModel(model, order);
if (count > 0)
model.Result = _localizationService.GetResource("ReturnRequests.Submitted");
else
model.Result = _localizationService.GetResource("ReturnRequests.NoItemsSubmitted");
return View(model);
}
示例6: SendReturnRequestStatusChangedCustomerNotification
/// <summary>
/// Sends 'Return Request status changed' message to a customer
/// </summary>
/// <param name="returnRequest">Return request</param>
/// <param name="opv">Order product variant</param>
/// <param name="languageId">Message language identifier</param>
/// <returns>Queued email identifier</returns>
public virtual int SendReturnRequestStatusChangedCustomerNotification(ReturnRequest returnRequest, OrderProductVariant opv, int languageId)
{
if (returnRequest == null)
throw new ArgumentNullException("returnRequest");
languageId = EnsureLanguageIsActive(languageId);
var messageTemplate = GetLocalizedActiveMessageTemplate("ReturnRequestStatusChanged.CustomerNotification", languageId);
if (messageTemplate == null)
return 0;
var orderTokens = GenerateTokens(returnRequest, opv);
//event notification
_eventPublisher.MessageTokensAdded(messageTemplate, orderTokens);
var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId);
var toEmail = returnRequest.Customer.Email;
var toName = returnRequest.Customer.GetFullName();
return SendNotification(messageTemplate, emailAccount,
languageId, orderTokens,
toEmail, toName);
}
示例7: GenerateTokens
private IList<Token> GenerateTokens(ReturnRequest returnRequest, OrderProductVariant opv)
{
var tokens = new List<Token>();
_messageTokenProvider.AddStoreTokens(tokens);
_messageTokenProvider.AddCustomerTokens(tokens, returnRequest.Customer);
_messageTokenProvider.AddReturnRequestTokens(tokens, returnRequest, opv);
return tokens;
}
示例8: SendReturnRequestStatusChangedCustomerNotification
/// <summary>
/// Sends 'Return Request status changed' message to a customer
/// </summary>
/// <param name="returnRequest">Return request</param>
/// <param name="orderItem">Order item</param>
/// <param name="languageId">Message language identifier</param>
/// <returns>Queued email identifier</returns>
public virtual int SendReturnRequestStatusChangedCustomerNotification(ReturnRequest returnRequest, OrderItem orderItem, int languageId)
{
if (returnRequest == null)
throw new ArgumentNullException("returnRequest");
var store = _storeService.GetStoreById(orderItem.Order.StoreId) ?? _storeContext.CurrentStore;
languageId = EnsureLanguageIsActive(languageId, store.Id);
var messageTemplate = GetActiveMessageTemplate("ReturnRequestStatusChanged.CustomerNotification", store.Id);
if (messageTemplate == null)
return 0;
//email account
var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId);
//tokens
var tokens = new List<Token>();
_messageTokenProvider.AddStoreTokens(tokens, store, emailAccount);
_messageTokenProvider.AddCustomerTokens(tokens, returnRequest.Customer);
_messageTokenProvider.AddReturnRequestTokens(tokens, returnRequest, orderItem);
//event notification
_eventPublisher.MessageTokensAdded(messageTemplate, tokens);
string toEmail = returnRequest.Customer.IsGuest() ?
orderItem.Order.BillingAddress.Email :
returnRequest.Customer.Email;
var toName = returnRequest.Customer.IsGuest() ?
orderItem.Order.BillingAddress.FirstName :
returnRequest.Customer.GetFullName();
return SendNotification(messageTemplate, emailAccount,
languageId, tokens,
toEmail, toName);
}
示例9: AddReturnRequestTokens
public virtual void AddReturnRequestTokens(IList<Token> tokens, ReturnRequest returnRequest, OrderItem orderItem)
{
tokens.Add(new Token("ReturnRequest.ID", returnRequest.Id.ToString()));
tokens.Add(new Token("ReturnRequest.OrderId", orderItem.OrderId.ToString()));
tokens.Add(new Token("ReturnRequest.Product.Quantity", returnRequest.Quantity.ToString()));
tokens.Add(new Token("ReturnRequest.Product.Name", orderItem.Product.Name));
tokens.Add(new Token("ReturnRequest.Reason", returnRequest.ReasonForReturn));
tokens.Add(new Token("ReturnRequest.RequestedAction", returnRequest.RequestedAction));
tokens.Add(new Token("ReturnRequest.CustomerComment", HtmlHelper.FormatText(returnRequest.CustomerComments, false, true, false, false, false, false), true));
tokens.Add(new Token("ReturnRequest.StaffNotes", HtmlHelper.FormatText(returnRequest.StaffNotes, false, true, false, false, false, false), true));
tokens.Add(new Token("ReturnRequest.Status", returnRequest.ReturnRequestStatus.GetLocalizedEnum(_localizationService, _workContext)));
//event notification
_eventPublisher.EntityTokensAdded(returnRequest, tokens);
}
示例10: AddReturnRequestTokens
public virtual void AddReturnRequestTokens(IList<Token> tokens, ReturnRequest returnRequest, OrderProductVariant opv)
{
tokens.Add(new Token("ReturnRequest.ID", returnRequest.Id.ToString()));
tokens.Add(new Token("ReturnRequest.Product.Quantity", returnRequest.Quantity.ToString()));
tokens.Add(new Token("ReturnRequest.Product.Name", opv.ProductVariant.FullProductName));
tokens.Add(new Token("ReturnRequest.Reason", returnRequest.ReasonForReturn));
tokens.Add(new Token("ReturnRequest.RequestedAction", returnRequest.RequestedAction));
tokens.Add(new Token("ReturnRequest.CustomerComment", HtmlHelper.FormatText(returnRequest.CustomerComments, false, true, false, false, false, false), true));
tokens.Add(new Token("ReturnRequest.StaffNotes", HtmlHelper.FormatText(returnRequest.StaffNotes, false, true, false, false, false, false), true));
tokens.Add(new Token("ReturnRequest.Status", returnRequest.ReturnRequestStatus.GetLocalizedEnum(_localizationService, _workContext)));
}
示例11: SendNewReturnRequestStoreOwnerNotification
/// <summary>
/// Sends 'New Return Request' message to a store owner
/// </summary>
/// <param name="returnRequest">Return request</param>
/// <param name="opv">Order product variant</param>
/// <param name="languageId">Message language identifier</param>
/// <returns>Queued email identifier</returns>
public virtual int SendNewReturnRequestStoreOwnerNotification(ReturnRequest returnRequest, OrderProductVariant opv, int languageId)
{
if (returnRequest == null)
throw new ArgumentNullException("returnRequest");
languageId = EnsureLanguageIsActive(languageId);
var messageTemplate = GetLocalizedActiveMessageTemplate("NewReturnRequest.StoreOwnerNotification", languageId);
if (messageTemplate == null)
return 0;
var orderTokens = GenerateTokens(returnRequest, opv);
var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId);
var toEmail = emailAccount.Email;
var toName = emailAccount.DisplayName;
return SendNotification(messageTemplate, emailAccount,
languageId, orderTokens,
toEmail, toName);
}
示例12: PrepareReturnRequestModel
private void PrepareReturnRequestModel(ReturnRequestModel model,
ReturnRequest returnRequest, bool excludeProperties)
{
if (model == null)
throw new ArgumentNullException("model");
if (returnRequest == null)
throw new ArgumentNullException("returnRequest");
var opv = _orderService.GetOrderProductVariantById(returnRequest.OrderProductVariantId);
model.Id = returnRequest.Id;
model.ProductVariantId = opv.ProductVariantId;
//product name
if (!String.IsNullOrEmpty(opv.ProductVariant.Name))
model.ProductName = string.Format("{0} ({1})", opv.ProductVariant.Product.Name, opv.ProductVariant.Name);
else
model.ProductName = opv.ProductVariant.Product.Name;
model.OrderId = opv.OrderId;
model.CustomerId = returnRequest.CustomerId;
model.Quantity = returnRequest.Quantity;
model.ReturnRequestStatusStr = returnRequest.ReturnRequestStatus.GetLocalizedEnum(_localizationService, _workContext);
model.CreatedOn = _dateTimeHelper.ConvertToUserTime(returnRequest.CreatedOnUtc, DateTimeKind.Utc);
if (!excludeProperties)
{
model.ReasonForReturn = returnRequest.ReasonForReturn;
model.RequestedAction = returnRequest.RequestedAction;
model.CustomerComments = returnRequest.CustomerComments;
model.StaffNotes = returnRequest.StaffNotes;
model.ReturnRequestStatusId = returnRequest.ReturnRequestStatusId;
}
}
示例13: SendNewReturnRequestStoreOwnerNotification
/// <summary>
/// Sends 'New Return Request' message to a store owner
/// </summary>
/// <param name="returnRequest">Return request</param>
/// <param name="orderItem">Order item</param>
/// <param name="languageId">Message language identifier</param>
/// <returns>Queued email identifier</returns>
public virtual int SendNewReturnRequestStoreOwnerNotification(ReturnRequest returnRequest, OrderItem orderItem, int languageId)
{
if (returnRequest == null)
throw new ArgumentNullException("returnRequest");
var order = EngineContext.Current.Resolve<IOrderService>().GetOrderById(orderItem.OrderId);
var store = _storeService.GetStoreById(order.StoreId) ?? _storeContext.CurrentStore;
languageId = EnsureLanguageIsActive(languageId, store.Id);
var messageTemplate = GetActiveMessageTemplate("NewReturnRequest.StoreOwnerNotification", store.Id);
if (messageTemplate == null)
return 0;
//email account
var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId);
var customer = EngineContext.Current.Resolve<ICustomerService>().GetCustomerById(returnRequest.CustomerId);
//tokens
var tokens = new List<Token>();
_messageTokenProvider.AddStoreTokens(tokens, store, emailAccount);
_messageTokenProvider.AddCustomerTokens(tokens, customer);
_messageTokenProvider.AddReturnRequestTokens(tokens, returnRequest, orderItem);
//event notification
_eventPublisher.MessageTokensAdded(messageTemplate, tokens);
var toEmail = emailAccount.Email;
var toName = emailAccount.DisplayName;
return SendNotification(messageTemplate, emailAccount,
languageId, tokens,
toEmail, toName);
}
示例14: SendReturnRequestStatusChangedCustomerNotification
/// <summary>
/// Sends 'Return Request status changed' message to a customer
/// </summary>
/// <param name="returnRequest">Return request</param>
/// <param name="opv">Order product variant</param>
/// <param name="languageId">Message language identifier</param>
/// <returns>Queued email identifier</returns>
public virtual int SendReturnRequestStatusChangedCustomerNotification(ReturnRequest returnRequest, OrderProductVariant opv, int languageId)
{
if (returnRequest == null)
throw new ArgumentNullException("returnRequest");
var store = _storeService.GetStoreById(opv.Order.StoreId) ?? _storeContext.CurrentStore;
languageId = EnsureLanguageIsActive(languageId, store.Id);
var messageTemplate = GetLocalizedActiveMessageTemplate("ReturnRequestStatusChanged.CustomerNotification", languageId, store.Id);
if (messageTemplate == null)
return 0;
//tokens
var tokens = new List<Token>();
_messageTokenProvider.AddStoreTokens(tokens, store);
_messageTokenProvider.AddCustomerTokens(tokens, returnRequest.Customer);
_messageTokenProvider.AddReturnRequestTokens(tokens, returnRequest, opv);
//event notification
_eventPublisher.MessageTokensAdded(messageTemplate, tokens);
var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate, languageId);
var toEmail = returnRequest.Customer.Email;
var toName = returnRequest.Customer.GetFullName();
return SendNotification(messageTemplate, emailAccount,
languageId, tokens,
toEmail, toName);
}
示例15: AddReturnRequestTokens
public virtual void AddReturnRequestTokens(IList<Token> tokens, ReturnRequest returnRequest, OrderProductVariant opv)
{
tokens.Add(new Token("ReturnRequest.ID", returnRequest.Id.ToString()));
tokens.Add(new Token("ReturnRequest.Product.Quantity", returnRequest.Quantity.ToString()));
tokens.Add(new Token("ReturnRequest.Product.Name", opv.ProductVariant.FullProductName));
tokens.Add(new Token("ReturnRequest.Reason", returnRequest.ReasonForReturn));
tokens.Add(new Token("ReturnRequest.RequestedAction", returnRequest.RequestedAction));
tokens.Add(new Token("ReturnRequest.CustomerComment", HtmlHelper.FormatText(returnRequest.CustomerComments, false, true, false, false, false, false), true));
}