Ejemplo n.º 1
0
        public async Task get_order_detail(int orderID)
        {
            var bb = 0;

            Thread.Sleep(1700);
            //try {
            var baseAddress            = new Uri("https://ssapi.shipstation.com/");
            db_a094d4_icdbEntities1 db = new db_a094d4_icdbEntities1();

            using (var httpClient = new HttpClient {
                BaseAddress = baseAddress
            })
            {
                httpClient.DefaultRequestHeaders.TryAddWithoutValidation("authorization", "Basic ZmU3YzE2MGMyZjE0NDc1ZDljNWQ0ZWI2ZmMzYmRhOWU6YzRiM2RhMjlkZWZlNDgyOWJlZmRlYTExNmU1N2Q5ZTY=");

                using (var response = await httpClient.GetAsync("orders/" + orderID + ""))
                {
                    string responseData = await response.Content.ReadAsStringAsync();

                    var result = JsonConvert.DeserializeObject <Models.ShipStation_orderID.Rootobject>(responseData);
                    for (int i = 0; i < result.items.Length; i++)
                    {
                        var write_table = new shipstation_log();

                        if (result.advancedOptions.customField1 == null)
                        {
                            result.advancedOptions.customField1 = "";
                        }
                        if (result.advancedOptions.customField2 == null)
                        {
                            result.advancedOptions.customField2 = "";
                        }

                        if (result.advancedOptions.customField3 == null)
                        {
                            result.advancedOptions.customField3 = "";
                        }

                        write_table.sku            = result.items[i].sku;
                        write_table.store_id       = result.advancedOptions.storeId;
                        write_table.item_name      = result.items[i].name;
                        write_table.item_qty       = result.items[i].quantity;
                        write_table.item_url       = result.items[i].imageUrl;
                        write_table.custom_field_1 = result.advancedOptions.customField1.ToString();
                        write_table.custom_field_2 = result.advancedOptions.customField2.ToString();
                        write_table.custom_field_3 = result.advancedOptions.customField3.ToString();
                        write_table.order_id       = orderID;
                        write_table.order_num      = result.orderNumber;
                        write_table.status         = result.orderStatus;
                        if (result.shipDate == null)
                        {
                            write_table.shipment_date = null;
                        }
                        else
                        {
                            write_table.shipment_date = DateTime.Parse(result.shipDate);
                        }

                        db.shipstation_log.Add(write_table);
                        db.SaveChanges();
                        Debug.WriteLine(bb++);
                        count_item(write_table);
                    }
                }
            }

            //}
            //catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
            //{
            //    Exception raise = dbEx;
            //    foreach (var validationErrors in dbEx.EntityValidationErrors)
            //    {
            //        foreach (var validationError in validationErrors.ValidationErrors)
            //        {
            //            string message = string.Format("{0}:{1}",
            //                validationErrors.Entry.Entity.ToString(),
            //                validationError.ErrorMessage);
            //            // raise a new exception nesting
            //            // the current instance as InnerException
            //            raise = new InvalidOperationException(message, raise);
            //        }
            //    }
            //    throw raise;
            //}
        }
Ejemplo n.º 2
0
        //process the item in custom fields
        public void count_item(shipstation_log entry)
        {
            try
            {
                var write_table = new ship_log();

                if (string.IsNullOrEmpty(entry.custom_field_2))
                {
                }
                else
                {
                    try {
                        string[] lines = entry.custom_field_2.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
                        lines = lines.Where(x => !string.IsNullOrEmpty(x)).ToArray();
                        foreach (var item in lines)
                        {
                            using (db_a094d4_icdbEntities1 db = new db_a094d4_icdbEntities1())
                            {
                                var exisit = (from t in db.ship_log where t.ictag == item select t).SingleOrDefault();
                                if (exisit == null)
                                {
                                    write_table.ictag     = item;
                                    write_table.order_id  = entry.order_id;
                                    write_table.order_num = entry.order_num;
                                    write_table.shipdate  = entry.shipment_date;
                                    write_table.sku       = entry.sku;
                                    write_table.status    = entry.status;
                                    write_table.store_id  = entry.store_id;
                                    db.ship_log.Add(write_table);
                                    db.SaveChanges();
                                }
                                var update = db.ts_stock.Where(s => s.ictag == item).FirstOrDefault();
                                if (update != null)
                                {
                                    update.status      = "Shipped";
                                    update.update_time = DateTime.Now;
                                    using (var dbCtx = new db_a094d4_icdbEntities1())
                                    {
                                        //Mark entity as modified
                                        dbCtx.Entry(update).State = System.Data.Entity.EntityState.Modified;

                                        //call SaveChanges
                                        dbCtx.SaveChanges();
                                    }
                                }
                            }
                        }
                    }

                    catch {
                        entry.custom_field_2 = "";
                    }
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
            {
                Exception raise = dbEx;
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        string message = string.Format("{0}:{1}",
                                                       validationErrors.Entry.Entity.ToString(),
                                                       validationError.ErrorMessage);
                        // raise a new exception nesting
                        // the current instance as InnerException
                        raise = new InvalidOperationException(message, raise);
                    }
                }
                throw raise;
            }
        }