示例#1
0
        public OrdersChangeInfo shipDrugOrders(List <int> OrderForShipping, string connectionString, string sessionTicket, out TransactionalInformation transaction)
        {
            var method = MethodInfo.GetCurrentMethod();
            var ipInfo = Util.GetIPInfo(HttpContext.Current.Request);

            var userSecurityTicket = VerifySessionToken(sessionTicket);
            List <OrderForStatusChange> orderChangeL = new List <OrderForStatusChange>();

            transaction = new TransactionalInformation();
            OR_GOwS_1428[] ordersInMo2 = cls_Get_all_Orders_with_Status.Invoke(connectionString, new P_OR_GOwS_1428()
            {
                Status = new string[] { "2" }
            }, userSecurityTicket).Result;
            OrdersChangeInfo orderToReturn = new OrdersChangeInfo();

            try
            {
                foreach (var ordSt in OrderForShipping)
                {
                    var data = ordersInMo2.Where(od => od.OrderNumber == ordSt).SingleOrDefault();
                    if (data != null)
                    {
                        OrderForStatusChange orderChange = new OrderForStatusChange();

                        orderChange.CaseID      = data.CaseID;
                        orderChange.OrderID     = data.OrderID;
                        orderChange.StatusTo    = 3;
                        orderChange.StatusToStr = "MO3";
                        orderChangeL.Add(orderChange);
                    }
                }

                orderToReturn.orderForChange  = orderChangeL;
                orderToReturn.NumberChangeXls = OrderForShipping.Count();
                orderToReturn.NumberChange    = OrderForShipping.Count() - orderChangeL.Count();
            }
            catch (Exception ex)
            {
                Logger.LogInfo(new LogEntry(ipInfo.address, ipInfo.agent, connectionString, method, userSecurityTicket, ex));

                transaction.ReturnMessage = new List <string>();
                string errorMessage = ex.Message;
                transaction.ReturnStatus = false;
                transaction.ReturnMessage.Add(errorMessage);
                transaction.IsAuthenicated = true;
                transaction.IsException    = true;
            }

            return(orderToReturn);
        }
示例#2
0
        public async Task <HttpResponseMessage> Post()
        {
            List <int> orderNumbers = new List <int>();
            TransactionalInformation transaction    = new TransactionalInformation();
            OrdersChangeInfoApiModel orderChangeApi = new OrdersChangeInfoApiModel();

            if (!Request.Content.IsMimeMultipartContent())
            {
                return(Request.CreateResponse(HttpStatusCode.UnsupportedMediaType));
            }

            var provider = new MultipartMemoryStreamProvider();
            await Request.Content.ReadAsMultipartAsync(provider);

            foreach (var file in provider.Contents)
            {
                var filename = file.Headers.ContentDisposition.FileName.Trim('\"');
                var buffer   = await file.ReadAsByteArrayAsync();

                MemoryStream          ms        = new MemoryStream(buffer);
                bool                  hasHeader = true;
                System.Data.DataTable excelData = ExcelUtils.getDataFromExcelFileNoPath(ms, hasHeader);
                try
                {
                    foreach (System.Data.DataRow item in excelData.Rows)
                    {
                        if (item.ItemArray[0].ToString() != "")
                        {
                            orderNumbers.Add(int.Parse(item.ItemArray[0].ToString()));
                        }
                    }
                }
                catch (Exception)
                {
                    return(Request.CreateResponse <TransactionalInformation>(HttpStatusCode.BadRequest, transaction));
                }
            }
            OrdersChangeInfo orders = dashboardDataService.shipDrugOrders(orderNumbers, connectionString, SessionToken, out transaction);

            orderChangeApi.OrdersChangeInfoApi = orders;
            if (transaction.ReturnStatus)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, orderChangeApi));
            }

            return(Request.CreateResponse <TransactionalInformation>(HttpStatusCode.BadRequest, transaction));
        }