コード例 #1
0
ファイル: Main.cs プロジェクト: undyings/SoftTech
        public static SoftTech.Wui.HtmlResult<HElement> HView(object _state, JsonData[] jsons, HContext context)
        {
            var state = _state.As<MainState>() ?? new MainState();

              foreach (var json in jsons.Else_Empty())
              {

            switch (json.JPath("data", "command").ToString_Fair())
            {
              case "text":
            state = state.With(text: json.JPath("value").ToString_Fair());
            System.Threading.Thread.Sleep(new Random().Next(0, 500));
            break;
              default:
            break;
            }
              }

              var page = Page(state);
              return new SoftTech.Wui.HtmlResult<HElement>
              {
            Html = page,
            State = state,
              };
        }
コード例 #2
0
ファイル: Part2.cs プロジェクト: Serj-Tm/SoftTech
        public static SoftTech.Wui.HtmlResult<HElement> HView(object _state, JsonData[] jsons, HContext context)
        {
            var state = _state.As<MainState>() ?? new MainState();

              foreach (var json in jsons.Else_Empty())
              {
            //var account = MemoryDatabase.World.Accounts.FirstOrDefault(_account => _account.Name == "darkgray");

            switch (json.JPath("data", "command").ToString_Fair())
            {
              default:
            //state = new MyLibState(new[] { new Message(json.ToString_Fair()) }.Concat(state.Messages).Take(10).ToArray());
            break;
            }
              }

              var page = Page(state, context);
              return new SoftTech.Wui.HtmlResult<HElement>
              {
            Html = page,
            State = state,
              };
        }
コード例 #3
0
ファイル: Main.cs プロジェクト: Serj-Tm/SoftTech
        public static SoftTech.Wui.HtmlResult<HElement> HView(object _state, JsonData[] jsons, HContext context)
        {
            var state = _state.As<MainState>() ?? new MainState();

              foreach (var json in jsons.Else_Empty())
              {
            switch (json.JPath("data", "command").ToString_Fair())
            {
              case "new-order":
            {
              var name = json.JPath("data", "name").ToString_Fair() ?? "C";
              var isDelivery = json.JPath("data", "is-delivery").ToString_Fair() == "True";
              var toTime = ToTime(json.JPath("data", "to-time").ToString_Fair());
              var status = toTime == null ? ProductStatus.New: ProductStatus.InQueue;
              var products = name == "B" ? new[] { new Product("K", status) } : new[] { new Product("M", status), new Product("P", status) };
              state = state.With(orders: state.Orders.Add(new Order(name: name, isDelivery: isDelivery, status: toTime == null ? OrderStatus.New: OrderStatus.InQueue, products: ImmutableArray.Create(products), toTime: toTime)));
            }
            break;
              case "product-prepare":
            {
              var orderId = ConvertHlp.ToGuid(json.JPath("data", "order"));
              var productId = ConvertHlp.ToGuid(json.JPath("data", "product"));
              var order = state.Orders.FirstOrDefault(_order => _order.Id == orderId);
              var product = order._f(_ => _.Products).Else_Empty().FirstOrDefault(_product => _product.Id == productId);
              if (product != null && product.Status != ProductStatus.New)
                product = null;
              if (product != null)
              {
                state = state.With(orders: state.Orders.Replace(order, order.With(products: order.Products.Replace(product, product.With(status: ProductStatus.Prepare)))));
              }
            }
            break;
              case "product-ready":
            {
              var orderId = ConvertHlp.ToGuid(json.JPath("data", "order"));
              var productId = ConvertHlp.ToGuid(json.JPath("data", "product"));
              var order = state.Orders.FirstOrDefault(_order => _order.Id == orderId);
              var product = order._f(_ => _.Products).Else_Empty().FirstOrDefault(_product => _product.Id == productId);
              if (product != null && product.Status != ProductStatus.Prepare)
                product = null;
              if (product != null)
              {
                state = state.With(orders: state.Orders.Replace(order, order.With(products: order.Products.Replace(product, product.With(status: ProductStatus.Ready)))));
              }
            }
            break;
              case "order-build":
            {
              var orderId = ConvertHlp.ToGuid(json.JPath("data", "order"));
              var order = state.Orders.FirstOrDefault(_order => _order.Id == orderId);
              if (order != null && order.Status != OrderStatus.Prepare && !order.IsReady)
                order = null;
              if (order != null)
              {
                state = state.With(orders: state.Orders.Replace(order, order.With(status: OrderStatus.Ready)));
              }
            }
            break;
              case "courier":
            {
              var orderId = ConvertHlp.ToGuid(json.JPath("data", "order"));
              var courier = json.JPath("data", "courier").ToString_Fair();
              var order = state.Orders.FirstOrDefault(_order => _order.Id == orderId);
              if (order != null && order.Status != OrderStatus.Ready && !order.IsDelivery)
                order = null;
              if (order != null)
              {
                state = state.With(orders: state.Orders.Replace(order, order.With(status: OrderStatus.ToDelivery, courier: courier)));
              }
            }
            break;
              case "order-deliveried":
            {
              var orderId = ConvertHlp.ToGuid(json.JPath("data", "order"));
              var order = state.Orders.FirstOrDefault(_order => _order.Id == orderId);
              if (order != null && order.Status != OrderStatus.ToDelivery)
                order = null;
              if (order != null)
              {
                state = state.With(orders: state.Orders.Replace(order, order.With(status: OrderStatus.Deliveried)));
              }
            }
            break;
              case "order-to-table":
            {
              var orderId = ConvertHlp.ToGuid(json.JPath("data", "order"));
              var order = state.Orders.FirstOrDefault(_order => _order.Id == orderId);
              if (order != null && order.Status != OrderStatus.Ready && order.IsDelivery)
                order = null;
              if (order != null)
              {
                state = state.With(orders: state.Orders.Replace(order, order.With(status: OrderStatus.ToTable)));
              }
            }
            break;
              default:
            break;
            }
              }
              state = state.With(orders: DeQueue(state.Orders, DateTime.Now));

              var page = Page(state);
              return new SoftTech.Wui.HtmlResult<HElement>
              {
            Html = page,
            State = state,
              };
        }
コード例 #4
0
ファイル: AuthView.cs プロジェクト: Serj-Tm/SoftTech
        //
        //  см. также Global.Application_AuthenticateRequest
        //
        public static SoftTech.Wui.HtmlResult<HElement> HView(object _state, JsonData[] jsons, HContext context)
        {
            var logins = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase){{"Demo", "demodemo"}, {"Test", "test"}};

              foreach (var json in jsons.Else_Empty())
              {

            switch (json.JPath("data", "command").ToString_Fair())
            {
              case "login":
            {
              var login = json.JPath("data", "login").ToString_Fair();
              var password = json.JPath("data", "password").ToString_Fair();
              if (logins.Find(login) == password)
                context.HttpContext.SetUserAndCookie(login);
              else
              {
                //display error
              }
            }
            break;
              case "logout":
            context.HttpContext.SetUserAndCookie(null);
            break;
              default:
            break;
            }

            if (context.HttpContext.UserName() != null)
            {
              switch (json.JPath("data", "command").ToString_Fair())
              {
            case "login":
              {
                var login = json.JPath("data", "login").ToString_Fair();
                var password = json.JPath("data", "password").ToString_Fair();
                if (logins.Find(login) == password)
                  context.HttpContext.SetUserAndCookie(login);
                else
                {
                  //display error
                }
              }
              break;
            case "logout":
              context.HttpContext.SetUserAndCookie(null);
              break;
            default:
              break;
              }

            }
              }
              var account = context.HttpContext.UserName();

              var page = Page(logins, account);
              return new SoftTech.Wui.HtmlResult<HElement>
              {
            Html = page,
            State = null,
              };
        }