Пример #1
0
        public HttpResponseMessage GetReturnRequestById(HttpRequestMessage request, int id)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = request.CreateErrorResponse(HttpStatusCode.NotFound, "No items found");
                if (true)
                {
                    var returnRequest = _returnRequestService.GetReturnRequestById(id);
                    if (returnRequest == null)
                    {
                        //No return request found with the specified id
                        Url.Route("ReturnRequestSearchModel", null);
                        string uri = Url.Link("ReturnRequestSearchModel", null);
                        response.Headers.Location = new Uri(uri);
                        return response;
                    }

                    var model = new ReturnRequestVM();
                    PrepareReturnRequestModel(model, returnRequest, false);

                    response = request.CreateResponse <ReturnRequestVM>(HttpStatusCode.OK, model);
                }
                else
                {
                    response = AccessDeniedView(request);
                    //response = request.CreateResponse(HttpStatusCode.Unauthorized, "Unauthorized user");
                }
                return response;
            }));
        }
Пример #2
0
        protected virtual void PrepareReturnRequestModel(ReturnRequestVM 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)
            {
                model.ProductId         = orderItem.ProductId;
                model.ProductName       = orderItem.Product.Name;
                model.OrderId           = orderItem.OrderId;
                model.AttributeInfo     = orderItem.AttributeDescription;
                model.CustomOrderNumber = orderItem.Order.CustomOrderNumber;
            }
            model.Id           = returnRequest.Id;
            model.CustomNumber = returnRequest.CustomNumber;
            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, _baseService.WorkContext);

            var download = _downloadService.GetDownloadById(returnRequest.UploadedFileId);

            model.UploadedFileGuid = download != null ? download.DownloadGuid : Guid.Empty;
            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;
            }
        }
Пример #3
0
        public HttpResponseMessage NotifyCustomer(HttpRequestMessage request, ReturnRequestVM model, bool continueEditing = false)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = request.CreateErrorResponse(HttpStatusCode.NotFound, "No items found");
                if (true)
                {
                    var returnRequest = _returnRequestService.GetReturnRequestById(model.Id);
                    if (returnRequest == null)
                    {
                        //No return request found with the specified id
                        Url.Route("ReturnRequestSearchModel", null);
                        string uri = Url.Link("ReturnRequestSearchModel", null);
                        response.Headers.Location = new Uri(uri);
                        return response;
                    }

                    var orderItem = _orderService.GetOrderItemById(returnRequest.OrderItemId);
                    if (orderItem == null)
                    {
                        LogError(_localizationService.GetResource("Admin.ReturnRequests.OrderItemDeleted"));
                        Url.Route("GetReturnRequestById", new { id = returnRequest.Id });
                        string nUri = Url.Link("GetReturnRequestById", new { id = returnRequest.Id });
                        response.Headers.Location = new Uri(nUri);
                        return response;
                    }

                    int queuedEmailId = _workflowMessageService.SendReturnRequestStatusChangedCustomerNotification(returnRequest, orderItem, orderItem.Order.CustomerLanguageId);

                    //if (queuedEmailId > 0)
                    //    SuccessNotification(_localizationService.GetResource("Admin.ReturnRequests.Notified"));

                    _baseService.Commit();
                }
                else
                {
                    response = AccessDeniedView(request);
                    // response = request.CreateResponse(HttpStatusCode.Unauthorized, "Unauthorized user");
                }
                return response;
            }));
        }
Пример #4
0
        public HttpResponseMessage ReturnRequestList(HttpRequestMessage request, ReturnRequestListVM model, int pageIndex = 0, int pageSize = int.MaxValue)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = request.CreateErrorResponse(HttpStatusCode.NotFound, "No items found");
                if (true)
                {
                    var rrs = model.ReturnRequestStatusId == -1 ? null : (ReturnRequestStatus?)model.ReturnRequestStatusId;

                    var startDateValue = model.StartDate == null ? null
                                    : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.StartDate.Value, _dateTimeHelper.CurrentTimeZone);

                    var endDateValue = model.EndDate == null ? null
                                    : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.EndDate.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1);

                    var returnRequests = _returnRequestService.SearchReturnRequests(0, 0, 0, model.CustomNumber, rrs, startDateValue, endDateValue, pageIndex, pageSize);

                    var returnRequestModels = new List <ReturnRequestVM>();
                    foreach (var rr in returnRequests)
                    {
                        var m = new ReturnRequestVM();
                        PrepareReturnRequestModel(m, rr, false);
                        returnRequestModels.Add(m);
                    }
                    var gridModel = new DataSourceResult
                    {
                        Data = returnRequestModels,
                        Total = returnRequests.TotalCount,
                    };
                    response = request.CreateResponse <DataSourceResult>(HttpStatusCode.OK, gridModel);
                }
                else
                {
                    //response = request.CreateResponse(HttpStatusCode.Unauthorized, "Unauthorized user");
                    response = AccessDeniedView(request);
                }
                return response;
            }));
        }
Пример #5
0
        public HttpResponseMessage EditReturnRequest(HttpRequestMessage request, ReturnRequestVM model, bool continueEditing = false)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = request.CreateErrorResponse(HttpStatusCode.NotFound, "No items found");
                if (true)
                {
                    var returnRequest = _returnRequestService.GetReturnRequestById(model.Id);
                    if (returnRequest == null)
                    {
                        //No return request found with the specified id
                        Url.Route("ReturnRequestSearchModel", null);
                        string uri = Url.Link("ReturnRequestSearchModel", null);
                        response.Headers.Location = new Uri(uri);
                        return response;
                    }

                    if (ModelState.IsValid)
                    {
                        returnRequest.Quantity = model.Quantity;
                        returnRequest.ReasonForReturn = model.ReasonForReturn;
                        returnRequest.RequestedAction = model.RequestedAction;
                        returnRequest.CustomerComments = model.CustomerComments;
                        returnRequest.StaffNotes = model.StaffNotes;
                        returnRequest.ReturnRequestStatusId = model.ReturnRequestStatusId;
                        returnRequest.UpdatedOnUtc = DateTime.UtcNow;
                        _customerService.UpdateCustomer(returnRequest.Customer);

                        //activity log
                        _customerActivityService.InsertActivity("EditReturnRequest", _localizationService.GetResource("ActivityLog.EditReturnRequest"), returnRequest.Id);

                        _baseService.Commit();

                        //SuccessNotification(_localizationService.GetResource("Admin.ReturnRequests.Updated"));
                        if (continueEditing)
                        {
                            Url.Route("GetReturnRequestById", new { id = returnRequest.Id });
                            string nUri = Url.Link("GetReturnRequestById", new { id = returnRequest.Id });
                            response.Headers.Location = new Uri(nUri);
                        }
                        else
                        {
                            Url.Route("ReturnRequestSearchModel", null);
                            string nuri = Url.Link("ReturnRequestSearchModel", null);
                            response.Headers.Location = new Uri(nuri);
                        }
                    }
                    else
                    {
                        //If we got this far, something failed, redisplay form
                        PrepareReturnRequestModel(model, returnRequest, true);
                        response = request.CreateResponse <ReturnRequestVM>(HttpStatusCode.OK, model);
                    }
                }
                else
                {
                    response = AccessDeniedView(request);
                    // response = request.CreateResponse(HttpStatusCode.Unauthorized, "Unauthorized user");
                }
                return response;
            }));
        }