Esempio n. 1
0
        static void Main(string[] args)
        {
            if (args.Length <= 0)
            {
                return;
            }
            var pushInformation = PushInformation.Load(AppDomain.CurrentDomain.BaseDirectory + "../../../info.xml");              // ASP.NETが保存しているファイルを見ます

            var webPushClient = new WebPushClient();
            var vapidDetails  = new VapidDetails("mailto:[email protected]", pushInformation.VapidPublic, pushInformation.VapipPrivate);
            var targetList    = pushInformation.Targets.ToArray();

            foreach (var target in targetList)
            {
                try
                {
                    var subscription = new PushSubscription(target.EndPoint, target.PublicKey, target.AuthSecret);
                    webPushClient.SendNotification(subscription, @"test application", vapidDetails);
                }
                catch (Exception exp)
                {
                    if (exp.Message == "Subscription no longer valid")                      // 購読者がいなくなるとこんな感じの例外を吐くので送信先から消しておこう
                    {
                        pushInformation.Targets.Remove(target);
                    }
                }
            }
            PushInformation.Save(pushInformation, AppDomain.CurrentDomain.BaseDirectory + "../../../info.xml");
            Console.ReadKey();
        }
Esempio n. 2
0
        public void Post(NotificationTarget target)
        {
            var pushInformation = PushInformation.Load(AppDomain.CurrentDomain.BaseDirectory + "../info.xml");              // 保存先はてきとうに

            if (pushInformation == null)
            {
                return;
            }
            pushInformation.Targets.Remove(pushInformation.Targets.FirstOrDefault(t => t.EndPoint == target.EndPoint));
            pushInformation.Targets.Add(target);
            PushInformation.Save(pushInformation, AppDomain.CurrentDomain.BaseDirectory + "../info.xml");
        }
Esempio n. 3
0
        public ActionResult Index()
        {
            var model           = new HomeModel();
            var pushInformation = PushInformation.Load(AppDomain.CurrentDomain.BaseDirectory + "../info.xml"); // 保存先はてきとうに

            if (pushInformation == null)                                                                       // VAPIDで使用する公開鍵を作成
            {
                pushInformation = new PushInformation();
                var vapidKeys = VapidHelper.GenerateVapidKeys();
                pushInformation.VapidPublic  = vapidKeys.PublicKey;
                pushInformation.VapipPrivate = vapidKeys.PrivateKey;
                PushInformation.Save(pushInformation, AppDomain.CurrentDomain.BaseDirectory + "../info.xml");                    // 作ったら保存しとく
            }
            model.VapidPublic = pushInformation.VapidPublic;
            model.Data        = Request.QueryString.Get("data");
            return(View(model));
        }
Esempio n. 4
0
 public void drawSystem()
 {
     //SETS TRANSFORM TO BOTTOM CENTRE OF SCREEN
     transform.position = new Vector2(0, -9.5f);
     //RESETS ROTATION
     transform.rotation = Quaternion.Euler(0, 0, 0);
     foreach (char c in sentences[generationStep])
     {
         //TURTLE GRAPHICS INSTRUCTIONS
         if (c == 'F')
         {
             //SAVES INITIAL POSITION IN LOCAL VARIABLE
             Vector3 startingPosition = transform.position;
             //MOVES TRANSFORM TO NEW POINT
             transform.Translate(Vector3.up * Rules.instance.activeLineLength);
             //CREATES LINE
             GameObject line = Instantiate(drawnLine);
             //SETS LINE'S STARTING POINT AS SAVED VARIABLE AND END POINT AS CURRENT POSITION
             line.GetComponent <LineRenderer>().SetPosition(0, startingPosition);
             line.GetComponent <LineRenderer>().SetPosition(1, transform.position);
             //CALCULATES LEAF ANGLE BY FINDING THE VECTOR BETWEEN THESE TWO POINTS
             leafAngle = returnAngle(startingPosition, transform.position);
         }
         else if (c == 'X')
         {
         }
         else if (c == '+')
         {
             float a = angle + Random.Range(-Rules.instance.activeRandomAngle, Rules.instance.activeRandomAngle);
             //TURNS TRANSFORM
             transform.Rotate(Vector3.forward * a);
         }
         else if (c == '-')
         {
             float a = angle + Random.Range(-Rules.instance.activeRandomAngle, Rules.instance.activeRandomAngle);
             //TURNS TRANSFORM
             transform.Rotate(Vector3.back * a);
         }
         else if (c == '[')
         {
             //SAVES POSITION TO STACK
             pushStack.Push(new PushInformation()
             {
                 pushPosition = transform.position,
                 pushRotation = transform.rotation
             });
         }
         else if (c == ']')
         {
             //CREATES A NEW LEAF
             GameObject newLeaf = Instantiate(leaf, transform.position, Quaternion.Euler(0, 0, leafAngle));
             //SETS RANDOM LEAF SIZE
             float size = Random.Range(0.05f, 0.15f);
             newLeaf.transform.localScale = new Vector3(size, size, 1);
             //RETURNS SAVED STACK INFORMATION AND MOVES/ROTATES TRANSFORM
             PushInformation returnPosition = pushStack.Pop();
             transform.position = returnPosition.pushPosition;
             transform.rotation = returnPosition.pushRotation;
         }
     }
 }