/// <summary> /// Builds the compact order view model. /// </summary> /// <param name="rawOrder">The raw order.</param> /// <param name="param"></param> /// <returns></returns> protected virtual LightOrderDetailViewModel BuildLightOrderDetailViewModel(OrderItem rawOrder, GetOrderHistoryViewModelParam param) { var lightOrderVm = new LightOrderDetailViewModel(); var orderInfo = ViewModelMapper.MapTo <OrderDetailInfoViewModel>(rawOrder, param.CultureInfo); var orderId = Guid.Parse(rawOrder.Id); orderInfo.OrderStatus = GetOrderStatusDisplayName(rawOrder, param); orderInfo.OrderStatusRaw = rawOrder.OrderStatus; orderInfo.IsOrderEditable = param.OrderEditingInfos != null && param.OrderEditingInfos.ContainsKey(orderId) && param.OrderEditingInfos[orderId]; CancellationStatus orderCancellationStatusInfo = null; if (param.OrderCancellationStatusInfos != null && param.OrderCancellationStatusInfos.ContainsKey(orderId)) { orderCancellationStatusInfo = param.OrderCancellationStatusInfos[orderId]; } orderInfo.IsOrderCancelable = orderCancellationStatusInfo?.CanCancel ?? false; orderInfo.IsOrderPendingCancellation = orderCancellationStatusInfo?.CancellationPending ?? false; orderInfo.IsBeingEdited = param.CurrentlyEditedOrderId == orderId; orderInfo.HasOwnDraft = HasOwnDraft(param, orderId); var orderDetailUrl = UrlFormatter.AppendQueryString(param.OrderDetailBaseUrl, new NameValueCollection { { "id", rawOrder.OrderNumber } }); lightOrderVm.Url = orderDetailUrl; lightOrderVm.OrderInfos = orderInfo; lightOrderVm.ShipmentSummaries = new List <OrderShipmentSummaryViewModel>(); if (rawOrder.ShipmentItems.Count > 0) { foreach (var shipment in rawOrder.ShipmentItems) { var shipmentSummary = new OrderShipmentSummaryViewModel(); if (shipment.FulfillmentScheduledTimeBeginDate.HasValue) { shipmentSummary.ScheduledShipDate = LocalizationHelper.LocalizedFormat("General", "ShortDateFormat", shipment.FulfillmentScheduledTimeBeginDate.Value, param.CultureInfo); } if (param.ShipmentsTrackingInfos != null && param.ShipmentsTrackingInfos.ContainsKey(shipment.Id)) { var trackingInfo = param.ShipmentsTrackingInfos[shipment.Id]; shipmentSummary.TrackingInfo = trackingInfo; } lightOrderVm.ShipmentSummaries.Add(shipmentSummary); } } return(lightOrderVm); }
/// <summary> /// Builds the compact order view model. /// </summary> /// <param name="rawOrder">The raw order.</param> /// <param name="param"></param> /// <returns></returns> protected virtual LightOrderDetailViewModel BuildLightOrderDetailViewModel(OrderItem rawOrder, GetOrderHistoryViewModelParam param) { var lightOrderVm = new LightOrderDetailViewModel(); var orderInfo = ViewModelMapper.MapTo <OrderDetailInfoViewModel>(rawOrder, param.CultureInfo); orderInfo.OrderStatus = GetOrderStatusDisplayName(rawOrder, param); orderInfo.OrderStatusRaw = rawOrder.OrderStatus; var orderDetailUrl = UrlFormatter.AppendQueryString(param.OrderDetailBaseUrl, new NameValueCollection { { "id", rawOrder.OrderNumber } }); lightOrderVm.Url = orderDetailUrl; lightOrderVm.OrderInfos = orderInfo; lightOrderVm.ShipmentSummaries = new List <OrderShipmentSummaryViewModel>(); if (rawOrder.ShipmentItems.Count > 0) { foreach (var shipment in rawOrder.ShipmentItems) { var shipmentSummary = new OrderShipmentSummaryViewModel(); if (shipment.FulfillmentScheduledTimeBeginDate.HasValue) { shipmentSummary.ScheduledShipDate = LocalizationHelper.LocalizedFormat("General", "ShortDateFormat", shipment.FulfillmentScheduledTimeBeginDate.Value, param.CultureInfo); } if (param.ShipmentsTrackingInfos != null && param.ShipmentsTrackingInfos.ContainsKey(shipment.Id)) { var trackingInfo = param.ShipmentsTrackingInfos[shipment.Id]; shipmentSummary.TrackingInfo = trackingInfo; } lightOrderVm.ShipmentSummaries.Add(shipmentSummary); } } return(lightOrderVm); }