public async Task <JsonResult> SaveData(OrderChangeViewModel orders) { if (orders.updated != null) { foreach (var item in orders.updated) { _orderService.Update(item); } } if (orders.deleted != null) { foreach (var item in orders.deleted) { _orderService.Delete(item); } } if (orders.inserted != null) { foreach (var item in orders.inserted) { _orderService.Insert(item); } } await _unitOfWork.SaveChangesAsync(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); }
public ActionResult SaveData(OrderChangeViewModel orders) { if (orders.updated != null) { foreach (var updated in orders.updated) { _orderService.Update(updated); } } if (orders.deleted != null) { foreach (var deleted in orders.deleted) { _orderService.Delete(deleted); } } if (orders.inserted != null) { foreach (var inserted in orders.inserted) { _orderService.Insert(inserted); } } _unitOfWork.SaveChanges(); return(Json(new { Success = true }, JsonRequestBehavior.AllowGet)); }
public async Task <JsonResult> SaveDataAsync(OrderChangeViewModel orders) { if (orders == null) { throw new ArgumentNullException(nameof(orders)); } if (this.ModelState.IsValid) { if (orders.updated != null) { foreach (var item in orders.updated) { this.orderService.Update(item); } } if (orders.deleted != null) { foreach (var item in orders.deleted) { this.orderService.Delete(item); } } if (orders.inserted != null) { foreach (var item in orders.inserted) { this.orderService.Insert(item); } } try { var result = await this.unitOfWork.SaveChangesAsync(); return(this.Json(new { success = true, result = result }, JsonRequestBehavior.AllowGet)); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { var errormessage = string.Join(",", e.EntityValidationErrors.Select(x => x.ValidationErrors.FirstOrDefault()?.PropertyName + ":" + x.ValidationErrors.FirstOrDefault()?.ErrorMessage)); return(this.Json(new { success = false, err = errormessage }, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(this.Json(new { success = false, err = e.GetBaseException().Message }, JsonRequestBehavior.AllowGet)); } } else { var modelStateErrors = string.Join(",", this.ModelState.Keys.SelectMany(key => this.ModelState[key].Errors.Select(n => n.ErrorMessage))); return(this.Json(new { success = false, err = modelStateErrors }, JsonRequestBehavior.AllowGet)); } }
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), }); } }