Beispiel #1
0
        public bool ExecuteProcess()
        {
            var settings    = GetSettings(typeof(RKRecieverSettings)) as RKRecieverSettings;
            var rkInterface = new RKInterface();

            rkInterface.SetCLientSettings(settings.RK7ApiAddress, settings.RK7ApiUser, settings.RK7ApiPassword);

            var getSystemInfo2      = rkInterface.GetSystemInfo2();
            var getWaiterListResult = rkInterface.GetWaiterList(true);
            var getOrderListResult  = rkInterface.GetOrderList();

            var restaurant = new Restaurant
            {
                Id   = getSystemInfo2.SystemInfo.Restaurant.id,
                Name = getSystemInfo2.SystemInfo.Restaurant.AnyAttr[0].Value
            };

            var waiters = getWaiterListResult.Waiters.Select(waiter =>
            {
                var firstOrDefault = getOrderListResult.Visit.Select(
                    visit =>
                    visit.Orders.Select(order => new { name = order.WaiterName, code = order.WaiterCode })
                    .FirstOrDefault())
                                     .FirstOrDefault(t => t != null && t.code == waiter.Code);
                return(new Waiter
                {
                    Code = waiter.Code,
                    Id = int.Parse(waiter.ID),
                    Name = (firstOrDefault ?? new { name = "", code = "" }).name
                });
            }).ToList();

            var parseValue = 0;

            var visits = getOrderListResult.Visit.Select(visit => new Visit
            {
                Id         = int.Parse(visit.VisitID),
                GuestCount = int.Parse(visit.GuestsCount),
                Orders     = visit.Orders.Select(order => new Order()
                {
                    Id         = int.TryParse(order.OrderName.Replace("/", ""), out parseValue) ? parseValue : 0,
                    BillTime   = order.BillTime,
                    CreateTime = order.CreateTime,
                    Dessert    = order.Dessert,
                    Finished   = order.Finished,
                    FinishTime = order.FinishTime,
                    OrderName  = order.OrderName,
                    OrderSum   = int.Parse(order.OrderSum),
                    Table      = new Table()
                    {
                        Code = order.TableCode,
                        Id   = int.TryParse(order.TableID, out parseValue) ? parseValue : 0,
                        Name = order.TableName
                    },
                    Version = int.TryParse(order.Version, out parseValue) ? parseValue : 0
                }).ToList()
            }).ToList();

            var shift = new Shift
            {
                ShiftNum   = getSystemInfo2.SystemInfo.CommonShift.ShiftNum,
                CreateTime = getSystemInfo2.SystemInfo.CommonShift.ShiftStartTime,
                Restaurant = restaurant,
                Waiters    = waiters,
                Visits     = visits
            };

            CreateLogRecord(shift.ToJson());

            var mongoDB = new MongoDBInteface(settings.MongoConnectionString);

            mongoDB.SaveShift(shift);
            return(true);
        }
Beispiel #2
0
        public void SaveShift(Shift shift)
        {
            var collection = _database.GetCollection <Shift>("shifts");

            collection.InsertOne(shift);
        }