Пример #1
0
        public ActionResult Edit(long id)
        {
            Session[RefundRequest.ProcessRequestId] = null; // Used for gift certificate

            var request = ((IRefundRequestRepository)_repository).Get(id);
            var model   = Mapper.Map <RefundRequest, RefundRequestResultEditModel>(request);

            var order           = _orderRepository.GetOrder(request.OrderId);
            var productsInOrder = _electronicProductRepository.GetProductIdsForOrderItems(order.OrderDetails
                                                                                          .Where(od => od.OrderItemStatus.OrderStatusState == OrderStatusState.FinalSuccess && od.DetailType == OrderItemType.ProductItem)
                                                                                          .Select(od => od.OrderItemId).ToArray());

            var cancellationReason = "N/A";

            if (model.RefundType == RefundRequestType.CustomerCancellation)
            {
                var appointmentCancellationLogs = _eventAppointmentCancellationLogRepository.GetByEventIdCustomerId(model.EventId, model.CustomerId);
                if (!appointmentCancellationLogs.IsNullOrEmpty())
                {
                    var appointmentCancellationLog = appointmentCancellationLogs.FirstOrDefault(x => x.DateCreated > request.RequestedOn.AddMinutes(-3) && x.DateCreated < request.RequestedOn.AddMinutes(3));
                    if (appointmentCancellationLog != null)
                    {
                        cancellationReason = ((CancelAppointmentReason)appointmentCancellationLog.ReasonId).GetDescription();
                    }
                }
            }

            model.CancellationReason = cancellationReason;

            var products = _electronicProductRepository.GetAllProducts();

            model.OfferFreeProduct = Mapper.Map <IEnumerable <Product>, IEnumerable <ProductstoOfferModel> >(products);
            if (productsInOrder != null && productsInOrder.Count() > 0)
            {
                foreach (var product in productsInOrder)
                {
                    var temp        = model.OfferFreeProduct.Where(p => p.ProductId == product.SecondValue).FirstOrDefault();
                    var orderDetail =
                        order.OrderDetails.Where(od => od.OrderItemId == product.FirstValue).FirstOrDefault();
                    temp.ProductPriceinOrder = orderDetail.Price;
                    temp.OrderItemId         = orderDetail.OrderItemId;
                }
            }
            CompleteEditModel(model, request.CustomerId);
            model.PaymentEditModel.Amount = model.RequestedRefundAmount;
            var nameIdpair = _orgRoleUserRepository.GetNameIdPairofUsers(new[] { request.RequestedByOrgRoleUserId }).FirstOrDefault();

            model.RequestedBy = nameIdpair != null ? nameIdpair.SecondValue : string.Empty;
            return(View(model));
        }
Пример #2
0
        public SourceCodeEditModel Get(SourceCodeEditModel model)
        {
            model.AllSignUpModes = SignUpMode.CallCenter.GetNameValuePairs().Select(dt => new OrderedPair <int, string>(dt.FirstValue, dt.SecondValue));
            model.AllPackages    = _packageRepository.GetAll().Select(m => new OrderedPair <long, string>(m.Id, m.Name)).OrderBy(m => m.SecondValue).ToArray();
            model.AllTests       = ((ITestRepository)_testRepository).GetAll().Select(m => new OrderedPair <long, string>(m.Id, m.Name)).OrderBy(m => m.SecondValue).ToArray();

            var shippingOptions = _shippingOptionRepository.GetAllShippingOptions();

            model.AllShippingOptions = shippingOptions != null?shippingOptions.Select(so => new OrderedPair <long, string>(so.Id, so.Name)).OrderBy(m => m.SecondValue).ToArray() : new OrderedPair <long, string> [0];

            var products = _electronicProductRepository.GetAllProducts();

            model.AllProducts = products != null?products.Select(po => new OrderedPair <long, string>(po.Id, po.Name)).OrderBy(m => m.SecondValue).ToArray() : new OrderedPair <long, string> [0];

            return(model);
        }