public async Task <IActionResult> Refund(RefundViewModel model) { var user = await userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{userManager.GetUserId(User)}'."); } ViewData["Message"] = ""; var added = refundRepository.AddRefund(new Refund { Address = model.Address, Amount = model.Amount, Done = false }); var bc = await blockchain.InvokeContractRequestRefund(NETWORK_TYPE.TESTNET, user.Wif, user.ScriptHash, 10, 2); if (bc) { if (added) { ViewData["Message"] = "Transaction and db added"; return(View(model)); } ViewData["Message"] = "transaction done, db fail"; return(View(model)); } ViewData["Message"] = added ? "Refund was requested (only db)" : "Failed to request"; return(View(model)); }
public OptResult Refund(RefundViewModel vmRefund) { OptResult rst = null; if (vmRefund == null) { rst = OptResult.Build(ResultCode.ParamError, "参数不能为空"); return(rst); } if (ModelState.IsValid == false) { rst = OptResult.Build(ResultCode.ParamError, ModelState.Parse()); return(rst); } var token = base.ParseToken(ActionContext); if (string.IsNullOrEmpty(vmRefund.opt)) { vmRefund.opt = token.iss; } var refundEntity = OOMapper.Map <RefundViewModel, RefundEntity>(vmRefund); rst = _cardMoneySrv.Refound(refundEntity); return(rst); }
public async Task <IActionResult> Refund(RefundViewModel viewModel) { var result = await _onlinePayment.RefundCompletelyAsync(viewModel.TrackingNumber); // Note: This is just for development and testing. // Don't show the actual result object to clients in production environment. // Instead, show only the important information such as IsSucceed, Tracking Number and Transaction Code. return(View("RefundResult", result)); }
public OrderChangeViewModel(RefundViewModel refund) { ChangeType = OrderChangeTypes.MadeRefund; Message = refund.Amount + " (" + refund.StatusName + ")"; ChangeDate = refund.Date; ChangedBy = refund.By; //ChangedByName = refund.ByName; }
public ActionResult CreateNewRefund() { BussinesLayer bl = new BussinesLayer(new FinalDB()); RefundViewModel refundVM = new RefundViewModel(); List <Department> departmentsModel = bl.GetAllDepartments(); List <DepartmentViewModel> departmentsVM = Services.ConverterService.ToDepartmentsViewModel(departmentsModel); refundVM.DepartmentsCombo = departmentsVM; return(View("CreateNewRefund", refundVM)); }
public MainWindow() { InitializeComponent(); viewModelPay = new PayViewModel(); viewModelGetStatus = new GetStatusViewModel(); viewModelRefund = new RefundViewModel(); this.grdPay.DataContext = viewModelPay; this.grdGetStatus.DataContext = viewModelPay; this.grdRefund.DataContext = viewModelRefund; }
public ActionResult Refund(RefundViewModel refundViewModel) { if (!ModelState.IsValid) { return(View(refundViewModel)); } var result = Payment.Refund(new RefundInvoice(refundViewModel.OrderNumber, refundViewModel.Amount)); return(View("RefundResult", result)); }
public ActionResult CreateNewRefund(RefundViewModel refundVM) { BussinesLayer bl = new BussinesLayer(new FinalDB()); string username = Session["Username"] as string; Refund refundModel = new Refund(); refundModel.TeacherUserName = username; refundModel.Date = DateTime.Now; refundModel.DepartmentID = Convert.ToInt32(refundVM.SelectedDepartment); refundModel.CourseID = Convert.ToInt32(refundVM.SelectedCourses); refundModel.LecturerName = refundVM.LecturerName; refundModel.IsGrouped = refundVM.IsGrouped; int refundID = bl.AddRefund(refundModel); return(RedirectToAction("CreateNewSession", new { refundID = refundID })); }
public async Task <IActionResult> Refund(RefundViewModel viewModel) { var result = await _onlinePayment.RefundCompletelyAsync(viewModel.TrackingNumber); return(View("RefundResult", result)); }
public static OrderHistoryViewModel GetByOrderId(IUnitOfWork db, ILogService log, IWeightService weightService, string orderId) { DTOOrder order = null; if (!String.IsNullOrEmpty(orderId)) { orderId = orderId.RemoveWhitespaces(); var orderNumber = OrderHelper.RemoveOrderNumberFormat(orderId); var filter = new OrderSearchFilter() { EqualOrderNumber = orderNumber, IncludeMailInfos = true, IncludeNotify = false, UnmaskReferenceStyles = false, }; order = db.ItemOrderMappings .GetFilteredOrdersWithItems(weightService, filter) .FirstOrDefault(); } if (order == null) { return(null); } else { var anotherBuyerOrders = new List <OrderLinkViewModel>(); if (!String.IsNullOrEmpty(order.BuyerEmail)) { anotherBuyerOrders = db.Orders.GetAll().Where(o => o.BuyerEmail == order.BuyerEmail) .ToList() .Where(o => o.Id != order.Id) .OrderByDescending(o => o.OrderDate) .Select(o => new OrderLinkViewModel() { OrderId = o.Id, OrderNumber = o.AmazonIdentifier, OrderDate = o.OrderDate, OrderStatus = o.OrderStatus, Market = o.Market, MarketplaceId = o.MarketplaceId }) .ToList(); } var comments = db.OrderComments.GetByOrderIdDto(order.Id).ToList(); var emails = db.Emails.GetAllWithOrder(new EmailSearchFilter() { OrderId = orderId }).ToList(); var returnRequests = db.ReturnRequests.GetAll() .OrderByDescending(r => r.CreateDate) .Select(r => new ReturnRequestDTO() { OrderNumber = r.OrderNumber, ReceiveDate = r.ReceiveDate, ItemName = r.ItemName, CustomerComments = r.CustomerComments, Details = r.Details, CreateDate = r.CreateDate, Reason = r.Reason }) .Where(r => r.OrderNumber == order.OrderId) .ToList(); var refundRequests = RefundViewModel.GetByOrderId(db, order.OrderId); var labels = order.ShippingInfos .Where(i => !String.IsNullOrEmpty(i.LabelPath) //|| i.LabelPurchaseResult != null //NOTE: in case when bag system shows user issue (keeped twice shippings with labels) ) .ToList(); labels.AddRange(order.MailInfos); var address = order.GetAddressDto(); var changes = db.OrderChangeHistories.GetByOrderIdDto(order.Id) .ToList() .OrderByDescending(ch => ch.ChangeDate) .Select(ch => new OrderChangeViewModel(ch, emails)) .Where(ch => ch.ChangeType != OrderChangeTypes.None) //NOTE: Skipped empty .ToList(); changes.Add(OrderChangeViewModel.BuildCreateOrderChange(order)); changes.AddRange(comments.Select(c => new OrderChangeViewModel(c)).ToList()); changes.AddRange(emails.Select(e => new OrderChangeViewModel(e)).ToList()); changes.AddRange(labels.SelectMany(l => OrderChangeViewModel.BuildChanges(l)).ToList()); changes.AddRange(refundRequests.Select(r => new OrderChangeViewModel(r)).ToList()); changes.AddRange(returnRequests.Select(r => new OrderChangeViewModel(r)).ToList()); return(new OrderHistoryViewModel { //Notes = string.Format("{0} {1}", order.OrderId, itemsNotes), OrderID = order.OrderId, OrderEntityId = order.Id, OrderDate = order.OrderDate, Market = (MarketType)order.Market, MarketplaceId = order.MarketplaceId, WeightLb = (int)Math.Floor(order.WeightD / 16), WeightOz = order.WeightD % 16, TotalPrice = order.TotalPrice, PriceCurrency = PriceHelper.FormatCurrency(order.TotalPriceCurrency), Items = order.Items.Select(i => new OrderItemViewModel(i, false, false)).ToList(), Changes = changes.OrderByDescending(c => c.ChangeDate).ToList(), AnotherOrders = anotherBuyerOrders, ToAddress = new AddressViewModel(address), }); } }
public static OrderQuickSummaryViewModel GetByOrderId(IUnitOfWork db, ILogService log, IWeightService weightService, string orderId) { DTOOrder order = null; if (!String.IsNullOrEmpty(orderId)) { orderId = orderId.RemoveWhitespaces(); var orderNumber = OrderHelper.RemoveOrderNumberFormat(orderId); var filter = new OrderSearchFilter() { EqualOrderNumber = orderNumber, IncludeMailInfos = true, IncludeNotify = false, UnmaskReferenceStyles = false, }; order = db.ItemOrderMappings .GetFilteredOrdersWithItems(weightService, filter) .FirstOrDefault(); } if (order == null) { return(null); } else { var refundRequestList = RefundViewModel.GetByOrderId(db, order.OrderId); var shippingPrice = 0M; var activeShippings = order.ShippingInfos.Where(i => i.IsActive).ToList(); activeShippings.AddRange(order.MailInfos); activeShippings = activeShippings.OrderBy(sh => sh.LabelPurchaseDate).ToList(); //if (order.MailInfos.Any(m => !m.LabelCanceled) // && order.ShippingInfos.All(sh => String.IsNullOrEmpty(sh.LabelPath) || sh.LabelCanceled)) //{ // var mailShipping = order.MailInfos.OrderBy(m => m.LabelPurchaseDate).FirstOrDefault(l => !l.LabelCanceled); // activeShippings = new List<OrderShippingInfoDTO>() { mailShipping }; //} //var mainActiveShipping = activeShippings.FirstOrDefault(); //var shipmentProviderType = mainActiveShipping != null ? mainActiveShipping.ShipmentProviderType : (int)Core.Models.Settings.ShipmentProviderType.Stamps; var address = order.GetAddressDto(); return(new OrderQuickSummaryViewModel() { OrderID = order.OrderId, OrderEntityId = order.Id, OrderDate = order.OrderDate, OrderStatus = order.OrderStatus, Market = (MarketType)order.Market, MarketplaceId = order.MarketplaceId, OrderIsOnHold = order.OnHold, WeightLb = (int)Math.Floor(order.WeightD / 16), WeightOz = order.WeightD % 16, TrackingNumbers = activeShippings.Where(t => !String.IsNullOrEmpty(t.TrackingNumber)).Select(t => new LabelViewModel() { TrackingNumber = t.TrackingNumber, Carrier = t.ShippingMethod.CarrierName, FromType = (LabelFromType)t.LabelFromType, TrackingStatusSource = t.TrackingStateSource, ShippingDate = t.ShippingDate, EstDeliveryDate = t.EstimatedDeliveryDate, ActualDeliveryDate = t.ActualDeliveryDate, LastTrackingStateUpdateDate = t.LastTrackingRequestDate, IsCanceled = t.CancelLabelRequested || t.LabelCanceled, DeliveryStatusMessage = GetDeliveryStatus(order.LatestDeliveryDate, t.ActualDeliveryDate, t.TrackingStateDate, t.DeliveredStatus == (int)DeliveredStatusEnum.DeliveredToSender), ShippingMethodName = t.ShippingMethod != null ? ShippingUtils.PrepareMethodNameToDisplay(t.ShippingMethod.Name, t.DeliveryDaysInfo) : string.Empty, ShippingProviderName = ShipmentProviderHelper.GetName((ShipmentProviderType)t.ShipmentProviderType), }).ToList(), PriceCurrency = PriceHelper.FormatCurrency(order.TotalPriceCurrency), ExpectedShipDate = order.LatestShipDate, ExpectedDeliveryDate = order.LatestDeliveryDate, //ShippingMethodName = mainActiveShipping != null && mainActiveShipping.ShippingMethod != null // ? ShippingUtils.PrepareMethodNameToDisplay(mainActiveShipping.ShippingMethod.Name, mainActiveShipping.DeliveryDaysInfo) : string.Empty, //ShippingProviderName = ShipmentProviderHelper.GetName((ShipmentProviderType)shipmentProviderType), //ShippingDate = activeShippings.Where(i => i.IsActive).Max(i => i.ShippingDate), //DeliveryDate = mainActiveShipping != null ? mainActiveShipping.ActualDeliveryDate : null, //DeliveryStatus = GetDeliveryStatus(order.LatestDeliveryDate, // mainActiveShipping != null ? mainActiveShipping.ActualDeliveryDate : null, // mainActiveShipping != null ? mainActiveShipping.TrackingStateDate : null, // mainActiveShipping != null ? mainActiveShipping.DeliveredStatus == (int)DeliveredStatusEnum.DeliveredToSender : false), Refunds = refundRequestList, Items = order.Items.Select(i => new OrderItemViewModel(i, false, false)).ToList(), ToAddress = address, }); } }