예제 #1
0
        public virtual async Task <IActionResult> AddOrderNote(AddOrderNoteModel model)
        {
            if (!_orderSettings.AllowCustomerToAddOrderNote)
            {
                return(RedirectToRoute("HomePage"));
            }

            if (!ModelState.IsValid)
            {
                return(View("AddOrderNote", model));
            }

            var order = await _orderService.GetOrderById(model.OrderId);

            if (!order.Access(_workContext.CurrentCustomer))
            {
                return(Challenge());
            }

            await _mediator.Send(new InsertOrderNoteCommand()
            {
                Order = order, OrderNote = model, Language = _workContext.WorkingLanguage
            });

            //notification
            await _mediator.Publish(new OrderNoteEvent(order, model));

            AddNotification(Framework.UI.NotifyType.Success, _localizationService.GetResource("OrderNote.Added"), true);
            return(RedirectToRoute("OrderDetails", new { orderId = model.OrderId }));
        }
예제 #2
0
        public virtual IActionResult AddOrderNote(string orderId, AddOrderNoteModel model)
        {
            if (!_orderSettings.AllowCustomerToAddOrderNote)
            {
                return(RedirectToRoute("HomePage"));
            }

            if (!ModelState.IsValid)
            {
                return(View("AddOrderNote", model));
            }

            var order = _orderService.GetOrderById(orderId);

            if (order == null || order.Deleted || _workContext.CurrentCustomer.Id != order.CustomerId)
            {
                return(Challenge());
            }

            _orderService.InsertOrderNote(new OrderNote
            {
                CreatedOnUtc      = DateTime.UtcNow,
                DisplayToCustomer = true,
                Note              = model.Note,
                OrderId           = orderId,
                CreatedByCustomer = true
            });

            AddNotification(Framework.UI.NotifyType.Success, _localizationService.GetResource("OrderNote.Added"), true);
            return(RedirectToRoute("OrderDetails", orderId));
        }
예제 #3
0
        public virtual async Task InsertOrderNote(AddOrderNoteModel model)
        {
            var orderNote = new OrderNote {
                CreatedOnUtc      = DateTime.UtcNow,
                DisplayToCustomer = true,
                Note              = model.Note,
                OrderId           = model.OrderId,
                CreatedByCustomer = true
            };
            await _orderService.InsertOrderNote(orderNote);

            //email
            await _serviceProvider.GetRequiredService <IWorkflowMessageService>().SendNewOrderNoteAddedCustomerNotification(
                orderNote, _workContext.WorkingLanguage.Id);
        }
        public virtual void InsertOrderNote(AddOrderNoteModel model)
        {
            var orderNote = new OrderNote
            {
                CreatedOnUtc      = DateTime.UtcNow,
                DisplayToCustomer = true,
                Note              = model.Note,
                OrderId           = model.OrderId,
                CreatedByCustomer = true
            };

            _orderService.InsertOrderNote(orderNote);

            //email
            Core.Infrastructure.EngineContext.Current.Resolve <IWorkflowMessageService>().SendNewOrderNoteAddedCustomerNotification(
                orderNote, _workContext.WorkingLanguage.Id);
        }
예제 #5
0
        //My account / Order details page / Add order note
        public virtual async Task <IActionResult> AddOrderNote(string orderId)
        {
            if (!_orderSettings.AllowCustomerToAddOrderNote)
            {
                return(RedirectToRoute("HomePage"));
            }

            var order = await _orderService.GetOrderById(orderId);

            if (order == null || order.Deleted || _workContext.CurrentCustomer.Id != order.CustomerId)
            {
                return(Challenge());
            }

            var model = new AddOrderNoteModel();

            model.OrderId = orderId;
            return(View("AddOrderNote", model));
        }
예제 #6
0
        public virtual async Task <IActionResult> AddOrderNote(AddOrderNoteModel model)
        {
            if (!_orderSettings.AllowCustomerToAddOrderNote)
            {
                return(RedirectToRoute("HomePage"));
            }

            if (!ModelState.IsValid)
            {
                return(View("AddOrderNote", model));
            }

            var order = await _orderService.GetOrderById(model.OrderId);

            if (order == null || order.Deleted || _workContext.CurrentCustomer.Id != order.CustomerId)
            {
                return(Challenge());
            }

            await _orderViewModelService.InsertOrderNote(model);

            AddNotification(Framework.UI.NotifyType.Success, _localizationService.GetResource("OrderNote.Added"), true);
            return(RedirectToRoute("OrderDetails", model.OrderId));
        }
예제 #7
0
 public OrderNoteEvent(Order order, AddOrderNoteModel noteModel)
 {
     Order     = order;
     NoteModel = noteModel;
 }
예제 #8
0
        //My account / Order details page / Add order note
        public virtual IActionResult AddOrderNote(string orderId)
        {
            var model = new AddOrderNoteModel();

            return(View("AddOrderNote", model));
        }