Пример #1
0
        // Returns OrderInfoDTO based by content of info.txt and *.sca
        private OrderInfoDTO GetInfoDTO(Dictionary <string, string> infoData, string directory)
        {
            var result = new OrderInfoDTO()
            {
                Name             = infoData["name"],
                Picture          = $"api/image/{infoData["name"]}",
                FileType         = GetModelFileExtension(infoData.FirstOrDefault(x => x.Key.Equals("maket")).Value),
                Info             = infoData.FirstOrDefault(x => x.Key.Equals("dop-infa")).Value,
                Address          = infoData.FirstOrDefault(x => x.Key.Equals("adress")).Value,
                TransportCompany = infoData.FirstOrDefault(x => x.Key.Equals("transport_kompany")).Value,
            };

            if (File.Exists($"{directory}\\ok.txt"))
            {
                result.HasClientAnswer = true;

                var scaDir = GetScaDirectory(directory);

                if (scaDir != null)
                {
                    var scaData = ParseSca(directory);
                    scaData = RefactorScaData(scaData);

                    result.Status = scaData[0];
                }
            }

            return(result);
        }
Пример #2
0
        public async Task <OrderInfoDTO> GetOrder(string id)
        {
            var data = await orderRepository.GetById(id);

            if (data != null)
            {
                var order = new OrderInfoDTO
                {
                    OrderId           = data.OrderId,
                    DeliveryAddress   = data.DeliveryAddress,
                    DeliveryDateTime  = data.DeliveryDateTime,
                    PlacementDateTime = data.PlacementDateTime,
                    Price             = data.Price,
                    AccountId         = data.AccountId
                };
                int counter = 0;
                var items   = (await orderItemRepository.GetAll()).Where(oi => oi.OrderId.Equals(id)).ToList();
                order.OrderItems = new OrderItemDTO[items.Count];
                foreach (var item in items)
                {
                    order.OrderItems[counter++] = new OrderItemDTO
                    {
                        Amount   = item.Amount,
                        LaptopId = item.LaptopId
                    };
                }
                return(order);
            }
            return(null);
        }
        public ActionResult CreateRandomOrder(OrderInfoDTO orderInfoDTO)
        {
            IRestResponse <OrderResponseDTO> response = null;
            var          toppings = _distributedPizzaDbContext.Toppings.ToList();
            BetterRandom random   = new BetterRandom();

            for (int i = 0; i < orderInfoDTO.NumberOfRequests; i++)
            {
                var orderManager = new OrderManager(toppings, random);
                var order        = orderManager.GenerateRandomOrder();
                order.QueueType          = orderInfoDTO.QueueType;
                order.ReportBackToClient = orderInfoDTO.NumberOfRequests == 1;
                var client  = new RestClient("http://localhost/DistributedPizza.Web.Api");
                var request = new RestRequest("api/orders/create", Method.POST);
                request.AddHeader("Accept", "application/json");
                request.RequestFormat = DataFormat.Json;
                request.AddBody(order);
                response = client.Execute <OrderResponseDTO>(request);
            }

            if (orderInfoDTO.NumberOfRequests == 1 & response != null)
            {
                response.Data.NumberOfRequests = orderInfoDTO.NumberOfRequests;
                return(Json(response.Data));
            }
            else
            {
                return(Json(new OrderResponseDTO {
                    NumberOfRequests = orderInfoDTO.NumberOfRequests
                }));
            }
        }
        public ActionResult getorderdata(OrderInfoDTO orderInfoDTO)
        {
            var os = _distributedPizzaDbContext.Orders.Count(a => a.Status == Status.Started);
            var rd = _distributedPizzaDbContext.Orders.Count(a => a.Status == Status.ReadyForDelivery);
            var d  = _distributedPizzaDbContext.Orders.Count(a => a.Status == Status.Delivered);

            return(Json(new { OrderStarted = os, OrderReadyForDelivery = rd, OrderDelivered = d }));
        }
Пример #5
0
        public override Task <OrderInfoDTO> GetOrderById(RequestItem request, ServerCallContext context)
        {
            OrderInfoDTO order = new OrderInfoDTO();

            order.OrderId     = request.OrderId;
            order.ProductId   = Guid.NewGuid().ToString();
            order.ProductName = "Grpc";
            order.Price       = "1250";
            order.Number      = 2;
            return(Task.FromResult(order));
        }
Пример #6
0
        public StatusCodeResult DenyOrder([FromBody] OrderInfoDTO data)
        {
            if (SessionController.sm.ifTokenValidForEmployee(data.authToken))
            {
                if (EmployeeOrderQueue.denyOrder(data.orderID))
                {
                    return(StatusCode(200));
                }

                //Internal Server Error
                return(StatusCode(500));
            }
            else
            {
                return(StatusCode(401));
            }
        }
Пример #7
0
        private OrderInfo ConvertOrder(OrderInfoDTO info)
        {
            OrderInfo order = new OrderInfo();

            order.Address    = info.Address;
            order.AddTime    = DateTime.Now;
            order.Area       = info.Area;
            order.Buyer      = info.Buyer;
            order.City       = info.City;
            order.IntoDate   = info.IntoDate;
            order.IsCheck    = false;
            order.IsDel      = false;
            order.OrderDate  = info.OrderDate;
            order.ProName    = info.ProName;
            order.Province   = info.Province;
            order.remarks1   = info.remarks1;
            order.remarks2   = info.remarks2;
            order.UserID     = info.UserID;
            order.Use_UserID = info.Use_UserID;
            order.OrderID    = Border.GetMaxId();
            return(order);
        }
Пример #8
0
        public string GetOrderQueue([FromBody] OrderInfoDTO data)
        {
            // validate that they are an employee and have valid token
            if (SessionController.sm.ifTokenValidForEmployee(data.authToken))
            {
                var          DTO   = new OrderQueueDTO();
                List <Order> queue = EmployeeOrderQueue.getOrderQueue();
                foreach (var order in queue)
                {
                    //TODO: don't pass in total from frontend
                    DTO.populateOrder(order.orderID, order.userID.ToString(), order.firstName, order.lastName,
                                      order.getTotal().ToString(), order.getDate().ToString(), order.getItemsDictionary());
                }

                string output = JsonConvert.SerializeObject(DTO);
                return(output);
            }
            else
            {
                return("");
            }
        }
Пример #9
0
        public StatusCodeResult SubmitOrder([FromBody] OrderInfoDTO data)
        {
            if (SessionController.sm.ifTokenValid(data.authToken))
            {
                //TODO: populate and create order id
                string orderID = EmployeeOrderQueue.generateOrderID();

                if (orderID is null)
                {
                    return(StatusCode(500));
                }

                EmployeeOrderQueue.addOrder(new Order(orderID, data.userID, data.firstName, data.lastName,
                                                      data.returnItemsAsDictionary(), data.total, DateTime.Now));

                return(StatusCode(200));
            }
            else
            {
                return(StatusCode(401));
            }
        }
Пример #10
0
        public async Task <List <OrderInfoDTO> > GetOrders(string userName)
        {
            var user = await userManager.FindByNameAsync(userName);

            if (user != null)
            {
                var data = await userAccountRepository.GetUserOrders(user.Id);

                var orders = new List <OrderInfoDTO>();
                foreach (var pair in data)
                {
                    var entry = await orderRepository.GetById(pair.Key);

                    var order = new OrderInfoDTO
                    {
                        OrderId           = entry.OrderId,
                        DeliveryAddress   = entry.DeliveryAddress,
                        DeliveryDateTime  = entry.DeliveryDateTime,
                        PlacementDateTime = entry.PlacementDateTime,
                        Price             = entry.Price,
                        AccountId         = entry.AccountId
                    };
                    int counter = 0;
                    order.OrderItems = new OrderItemDTO[pair.Value.Count];
                    foreach (var item in pair.Value)
                    {
                        order.OrderItems[counter++] = new OrderItemDTO
                        {
                            Amount   = item.Amount,
                            LaptopId = item.LaptopId
                        };
                    }
                    orders.Add(order);
                }
                return(orders);
            }
            return(null);
        }
Пример #11
0
        public void AddOrder(OrderInfoDTO info, List <OrderDetailDTO> details)
        {
            DateTime          thisTime = DateTime.Now;
            OrderInfo         order    = ConvertOrder(info);
            List <TransModel> models   = new List <TransModel>();

            order.OrderID   = Border.GetMaxId();
            order.AddTime   = thisTime;
            order.OrderCode = CreateOrderCode(order);
            models.Add(Border.CreateAddSql(order));
            int detailID = BDetail.GetMaxId();

            foreach (OrderDetailDTO d in details)
            {
                OrderDetail detail = ConvertOrderDetail(d);
                detail.OrderDetailID = detailID;
                detail.OrderID       = order.OrderID;
                detail.UpTime        = thisTime;
                models.Add(BDetail.CreateAddSql(detail));
                detailID++;
            }
            DataService.DbHelperSQL.ExecuteSqlTran(models);
        }
Пример #12
0
 public StatusCodeResult ApproveOrder([FromBody] OrderInfoDTO data)
 {
     if (SessionController.sm.ifTokenValidForEmployee(data.authToken))
     {
         int result = EmployeeOrderQueue.approveOrder(data.orderID);
         if (result == 1)
         {
             return(StatusCode(200));
         }
         else if (result == 0)
         {
             return(StatusCode(403));
         }
         else
         {
             //Internal Server Error
             return(StatusCode(500));
         }
     }
     else
     {
         return(StatusCode(401));
     }
 }
Пример #13
0
        public IndexModule() : base(RouteDictionary.OrderBase)
        {
            this.RequiresAuthentication();

            Get[RouteDictionary.Add] = p =>
            {
                UserIdentity user = (UserIdentity)Context.CurrentUser;
                NavManager   mgr  = new NavManager();
                NavInfo      nav  = mgr.CreateNav(Request.Path, user.Menus);
                return(View[ViewDictionary.OrderAdd, nav]);
            };

            Get[RouteDictionary.OrderBizType] = p =>
            {
                ProductTypeSource pt    = new ProductTypeSource();
                List <BizType>    types = pt.CreateBizTypes();
                return(Response.AsJson(types));
            };

            Get[RouteDictionary.OrderProType] = p =>
            {
                string                typeName = SiteFun.cutechar(p.name);
                ProductTypeSource     pt       = new ProductTypeSource();
                List <ProductTypeDTO> types    = pt.CreateProTypes(typeName);
                return(Response.AsJson(types));
            };

            Post[RouteDictionary.Add] = p =>
            {
                string buyer               = Request.Form["buyer"].Value;     //甲方名称
                string proName             = Request.Form["proName"].Value;   //项目名称
                string orderdate           = Request.Form["orderdate"].Value; //下单日期
                string intodate            = Request.Form["intodate"].Value;  //进场日期
                string Province            = Request.Form["Province"].Value;  //省
                string City                = Request.Form["City"].Value;      //市
                string Area                = Request.Form["Area"].Value;      //区
                string address             = Request.Form["address"].Value;   //详细地址
                string selUsers            = Request.Form["selUsers"].Value;  //业务员
                string remarks1            = Request.Form["remarks1"].Value;  //付款方式
                string remarks2            = Request.Form["remarks2"].Value;  //备注
                string json                = Request.Form["data"].Value;
                List <OrderDetailDTO> list = JsonHelper.ParseFromJson(json, typeof(List <OrderDetailDTO>)) as List <OrderDetailDTO>;
                OrderInfoDTO          info = new OrderInfoDTO();
                info.Address = address;
                info.Area    = Area;
                info.Buyer   = buyer;
                info.City    = City;
                if (!String.IsNullOrEmpty(intodate))
                {
                    info.IntoDate = DateTime.Parse(intodate);
                }
                info.OrderDate  = DateTime.Parse(orderdate);
                info.ProName    = proName;
                info.Province   = Province;
                info.remarks1   = remarks1;
                info.remarks2   = remarks2;
                info.Use_UserID = Int32.Parse(selUsers);
                UserIdentity user = (UserIdentity)Context.CurrentUser;
                info.UserID = user.UserID;

                OrderSource   order = new OrderSource();
                ResponseModel model = new ResponseModel();
                try
                {
                    order.AddOrder(info, list);
                    model.StatusCode = HttpStatusCode.OK;
                }
                catch (Exception ex)
                {
                    model.StatusCode = HttpStatusCode.BadGateway;
                    model.Message    = ex.Message;
                }
                return(Response.AsJson(model));
            };

            Get[RouteDictionary.ListGet] = p =>
            {
                string per       = Request.Query["limit"];  //显示数量
                string offset    = Request.Query["offset"]; //当前记录条数
                int    pageSize  = 10;                      //每页显示条数
                int    offsetNum = 0;                       //当前记录偏移量
                if (!Int32.TryParse(offset, out offsetNum))
                {
                    offsetNum = 0;
                }
                if (!Int32.TryParse(per, out pageSize))
                {
                    pageSize = 10;
                }
                int    pageNum  = (offsetNum / pageSize) + 1;//当前页码
                string sqlWhere = "1=1";
                string buyer    = Request.Query["buyer"];
                if (!String.IsNullOrEmpty(buyer))
                {
                    sqlWhere += " and Buyer like '%" + SiteFun.cutechar(buyer) + "%'";
                }
                string pro = Request.Query["p"];
                if (!String.IsNullOrEmpty(pro))
                {
                    sqlWhere += " and ProName like '%" + SiteFun.cutechar(pro) + "%'";
                }
                string user = Request.Query["u"];
                int    uid  = 0;
                if (!String.IsNullOrEmpty(user) && Int32.TryParse(user, out uid) && uid > 0)
                {
                    sqlWhere += " and Use_UserID =" + uid;
                }

                OrderPageModel          model  = new OrderPageModel();
                DataService.BLL.v_Order BOrder = new DataService.BLL.v_Order();
                model.rows  = BOrder.GetModelsByPage(sqlWhere, "OrderID desc", pageSize * (pageNum - 1) + 1, pageSize * pageNum);
                model.total = BOrder.GetRecordCount(sqlWhere);
                return(Response.AsJson(model));
            };

            Get[RouteDictionary.List] = p =>
            {
                UserIdentity user = (UserIdentity)Context.CurrentUser;
                NavManager   mgr  = new NavManager();
                NavInfo      nav  = mgr.CreateNav(Request.Path, user.Menus);
                return(View[ViewDictionary.OrderList, nav]);
            };
        }
        public async Task <IHttpActionResult> PostSELF_ORDERINFO([FromBody] string jsonstr)
        {
            if (!string.IsNullOrEmpty(jsonstr))
            {
                OrderInfoDTO   sELF_ORDERINFODTO = JsonConvert.DeserializeObject <OrderInfoDTO>(jsonstr);
                SELF_ORDERINFO sELF_ORDERINFO    = await db.SELF_ORDERINFO.FirstOrDefaultAsync(p => p.ID == sELF_ORDERINFODTO.Id);

                if (sELF_ORDERINFO == null)
                {
                    return(NotFound());
                }

                sELF_ORDERINFO.MAIL_ADDRESS = sELF_ORDERINFODTO.ShippingAddress;
                sELF_ORDERINFO.MAIL_TELNUM  = sELF_ORDERINFODTO.ShippingPhone;
                sELF_ORDERINFO.MAIL_SN      = sELF_ORDERINFODTO.ShippingSN;
                sELF_ORDERINFO.MAIL_STATE   = sELF_ORDERINFODTO.ShippingStatus;
                sELF_ORDERINFO.MAIL_DATE    = sELF_ORDERINFODTO.ShippingTime;

                sELF_ORDERINFO.MISC = sELF_ORDERINFODTO.Misc;

                sELF_ORDERINFO.PAYMENT_STATE = sELF_ORDERINFODTO.PaymentStatus;
                sELF_ORDERINFO.PAYMENT_TYPE  = sELF_ORDERINFODTO.PaymentType;
                sELF_ORDERINFO.PAYMENT_DATE  = sELF_ORDERINFODTO.PaymentTime;
                sELF_ORDERINFO.PAYMENT_ID    = sELF_ORDERINFODTO.PaymentId;

                sELF_ORDERINFO.ORDER_STATE = sELF_ORDERINFODTO.OrderStatus;



                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }


                db.Entry(sELF_ORDERINFO).State = EntityState.Modified;

                try
                {
                    await db.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SELF_ORDERINFOExists(sELF_ORDERINFODTO.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        //throw;
                        return(StatusCode(HttpStatusCode.NotModified));
                    }
                }

                return(StatusCode(HttpStatusCode.OK));
            }
            else
            {
                return(StatusCode(HttpStatusCode.BadRequest));
            }
        }