Ejemplo n.º 1
0
        public AmazonOrder UpdateOrder(AmazonOrderSyncData amazonOrderSyncData)
        {
            var existingAmazonOrder = _amazonOrderService.GetByAmazonOrderId(amazonOrderSyncData.OrderId);

            if (amazonOrderSyncData.Operation == SyncAmazonOrderOperation.Add && existingAmazonOrder != null)
            {
                amazonOrderSyncData.Status      = SyncAmazonOrderStatus.Synced;
                amazonOrderSyncData.AmazonOrder = existingAmazonOrder;
                _amazonOrderSyncDataService.Update(amazonOrderSyncData);
                _amazonOrderSyncDataService.Delete(amazonOrderSyncData);
                return(existingAmazonOrder);
            }

            if (amazonOrderSyncData.AmazonOrder == null && existingAmazonOrder != null)
            {
                amazonOrderSyncData.AmazonOrder = existingAmazonOrder;
                _amazonOrderSyncDataService.Update(amazonOrderSyncData);
            }

            var amazonOrder = amazonOrderSyncData.AmazonOrder = amazonOrderSyncData.AmazonOrder ?? new AmazonOrder();
            var order       = AmazonAppHelper.DeserializeFromJson <Order>(amazonOrderSyncData.Data);

            var success = ProcessOrder(order, ref amazonOrder, amazonOrderSyncData.Operation == SyncAmazonOrderOperation.Add);

            if (success)
            {
                amazonOrderSyncData.Status      = SyncAmazonOrderStatus.Synced;
                amazonOrderSyncData.AmazonOrder = amazonOrder;
                _amazonOrderSyncDataService.Update(amazonOrderSyncData);
                _amazonOrderSyncDataService.Delete(amazonOrderSyncData);
            }
            else
            {
                amazonOrderSyncData.Status      = SyncAmazonOrderStatus.Pending;
                amazonOrderSyncData.AmazonOrder = amazonOrder;
                _amazonOrderSyncDataService.Update(amazonOrderSyncData);
            }

            return(amazonOrder);
        }
 private void LogStatus(AmazonOrderSyncData data, SyncAmazonOrderStatus status)
 {
     data.Status = status;
     _amazonOrderSyncDataService.Update(data);
 }