Ejemplo n.º 1
0
        public ActionResult Assign(JobCardViewModel jobCardViewModel)
        {
            IUnitOfWork testUnit = new UnitOfWork(_context);

            testUnit.JobCards.SingleOrDefault(s => s.Id == jobCardViewModel.Id);
            //
            var job = Mapper.Map <JobCardViewModel, JobCard>(jobCardViewModel);

            job.ScheduledFor = jobCardViewModel.ScheduledFor;
            job.JobStatusId  = 2;
            job.CustomerId   = jobCardViewModel.CustomerId;

            var userList = new List <ApplicationUser>();

            foreach (var userId in jobCardViewModel.ApplicationUserIdArray)
            {
                var user = _context.Users.SingleOrDefault(s => s.Id == userId);
                userList.Add(user);
                PushBullet.Assigned(user.Id);
            }

            job.ApplicationUsers = userList;

            testUnit.JobCards.Update(job);
            testUnit.Complete();



            return(RedirectToAction("Index"));
        }
Ejemplo n.º 2
0
        public static void GeneratePushes()
        {
            var bankier = new Bankier();
            var stocks  = new QuoteTableParser().Parse(bankier.GetStockTable().GetAwaiter().GetResult());

            var messages  = new List <Message>();
            var chunkSize = 20;

            for (int i = 0; i *chunkSize < stocks.Count; i++)
            {
                var stockChunk = stocks.Skip(i * chunkSize).Take(chunkSize).ToList();
                var tasks      = new List <Task <List <Message> > >();
                foreach (var stock in stockChunk)
                {
                    Console.WriteLine(stock);
                    tasks.Add(new MessagesParser(stock.Name).Parse(bankier.GetQuoteInfo(stock.Name, DateTime.Today.AddDays(-2), DateTime.Today)));
                }
                var results = Task.WhenAll(tasks).GetAwaiter().GetResult();
                messages.AddRange(results.SelectMany(x => x));
            }

            var tokenFilePath = ConfigurationManager.AppSettings["TokenFilePath"];
            var push          = new PushBullet(new FileToken(tokenFilePath));

            foreach (var message in messages)
            {
                Console.WriteLine($"##### {message.StockName} - {message.Time} #####");
                Console.WriteLine($"{message.Title}");
                Console.WriteLine($"{message.Url}");

                push.Push($"{message.StockName} - {message.Time.ToString("yyyy-MM-dd HH:mm:ss")}", message.Title, message.Url);
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Post([FromBody] PushBullet pushBulletModel)
        {
            var userAuthKey = Request.Headers["AuthKey"].ToString();

            var user = _userManager.FindByApiAuthKeyAsync(userAuthKey);

            try
            {
                var pushBulletUserSettings = await _pushBulletAppService.RetrieveDecryptedPushBulletSettingsByUserId(user.Id);

                var pushBulletApiKey        = pushBulletUserSettings.ApiKey;
                var pushBulletEncryptionKey = pushBulletUserSettings.EncryptionKey;

                if (pushBulletApiKey.IsNullOrEmpty())
                {
                    return(new BadRequestObjectResult("PushBullet Api Key cannot be found"));
                }

                if (pushBulletEncryptionKey.IsNullOrEmpty())
                {
                    return(new BadRequestObjectResult("PushBullet Encryption Key cannot be found"));
                }

                var client = new PushBulletClient(pushBulletApiKey, pushBulletEncryptionKey, TimeZoneInfo.Local);

                if (!string.IsNullOrEmpty(pushBulletModel.Channel) && (pushBulletModel.DeviceNickNames == null || !pushBulletModel.DeviceNickNames.Any()))
                {
                    var sendToChannel = await SendToChannel(client, pushBulletModel, user.Id);

                    return(new OkObjectResult(sendToChannel));
                }

                if (string.IsNullOrEmpty(pushBulletModel.Channel) && pushBulletModel.DeviceNickNames != null && pushBulletModel.DeviceNickNames.Any())
                {
                    var sendToDevices = await SendToDevices(client, pushBulletModel, user.Id);

                    return(new OkObjectResult(sendToDevices));
                }

                return(new ConflictObjectResult("Sending messages to devices and channels on the same request is not supported."));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Unable to send PushBullet messages for {UserId} using the PushBullet model {@PushBullet}", user.Id, pushBulletModel);
                return(new BadRequestObjectResult(ex));
            }
        }
Ejemplo n.º 4
0
        public ActionResult Create(JobCardViewModel jobCardViewModel)
        {
            if (ModelState.IsValid)
            {
                IUnitOfWork testUnit = new UnitOfWork(_context);

                var job = Mapper.Map <JobCardViewModel, JobCard>(jobCardViewModel);
                job.CreatedAt    = DateTime.Now;
                job.ScheduledFor = jobCardViewModel.ScheduledFor;

                var customer = testUnit.Customers.SingleOrDefault(f => f.Id == jobCardViewModel.CustomerId);
                job.Customer = customer;

                var userList = new List <ApplicationUser>();

                foreach (var userId in jobCardViewModel.ApplicationUserIdArray)
                {
                    var user = _context.Users.SingleOrDefault(s => s.Id == userId);
                    userList.Add(user);
                    PushBullet.Assigned(userId);
                }

                job.ApplicationUsers = userList;

                testUnit.JobCards.Add(job);
                testUnit.Complete();


                return(RedirectToAction("Index"));

                /*
                 * Note:
                 * This Code was used to pull the current user as the person the job is allocated to.
                 * //var userId = User.Identity.GetUserId();
                 * //var userFromDb = _context.Users.SingleOrDefault(u => u.Id == userId);
                 * //job.ApplicationUsers.Add(userFromDb);
                 */
            }

            return(View(jobCardViewModel));
        }
        public static Projectile CreateProjectile(Dictionary <string, object> projectileProperties)
        {
            Projectile projectile = null;

            string    textureName = (string)projectileProperties["textureName"];
            Texture2D texture     = TextureFactory.GetTexture(textureName);

            string colorName = (string)projectileProperties["color"];
            Color  color     = System.Drawing.Color.FromName(colorName).ToXNA();

            MovementPattern movement = MovementPatternFactory.CreateMovementPattern((Dictionary <string, object>)projectileProperties["movementPattern"]);

            int damage = Convert.ToInt32((float)projectileProperties["damage"]);

            switch (projectileProperties["projectileType"])
            {
            case "bullet":
                projectile = new Bullet(texture, color, movement, damage);
                break;

            case "bouncingBullet":
                projectile = new BouncingBullet(texture, color, movement, damage);
                break;

            case "bounceBullet":
                int numberOfTimesToBounce = (int)projectileProperties["bounceTimes"];
                projectile = new BounceBullet(texture, color, movement, damage, numberOfTimesToBounce);
                break;

            case "pushBullet":
                projectile = new PushBullet(texture, color, movement, damage);
                break;

            default:
                throw new Exception("Invalid Projectile Type");
            }

            return(projectile);
        }
Ejemplo n.º 6
0
        internal static void SendNotification(string message, string title, string url = null)
        {
            title = string.Format("{0}::{1}", StyxWoW.Me.Name, title);
            if (LogQueue.Contains(string.Format("{0}-{1}", message, title)))
            {
                return;
            }

            LogQueue.Enqueue(string.Format("{0}-{1}", message, title));
            if (MySettings.Instance.Push_Boxcar2)
            {
                new Task(() => BoxCar2.PushNotification(message, title, url)).Start();
            }
            if (MySettings.Instance.Push_NMY)
            {
                new Task(() => NotifyMyAndroid.PushNotification(message, title, url)).Start();
            }
            if (MySettings.Instance.Push_Pushalot)
            {
                new Task(() => Pushalot.PushNotification(message, title, url, title, MySettings.Instance.Pushalot_Silent, MySettings.Instance.Pushalot_Important)).Start();
            }
            if (MySettings.Instance.Push_Prowl)
            {
                new Task(() => Prowl.PushNotification(message, title, url)).Start();
            }
            if (MySettings.Instance.Push_Pushover)
            {
                new Task(() => Pushover.PushNotification(message, title, url, title)).Start();
            }
            if (MySettings.Instance.Push_Pushbullet)
            {
                new Task(() => PushBullet.PushNotification(message, title, url)).Start();
            }
            if (MySettings.Instance.Push_Toasty)
            {
                new Task(() => Toasty.PushNotification(message, title)).Start();
            }
        }
Ejemplo n.º 7
0
 public Profile()
 {
     FC = new ChatChannel();
     PM = new ChatChannel
     {
         Enabled           = true,
         PushBulletEnabled = true
     };
     chatLog = new ChatLog();
     Shout   = new ChatChannel();
     Say     = new ChatChannel();
     GM      = new ChatChannel {
         PushBulletEnabled = true
     };
     Party          = new ChatChannel();
     Emote          = new ChatChannel();
     pushBullet     = new PushBullet();
     Emote.Keywords = new string[] { "you" };
     GM.Enabled     = true;
     Linkshell      = new ChatChannel();
     ignoreSelf     = true;
     sound          = true;
 }
Ejemplo n.º 8
0
        private async Task <List <PushResponse> > SendToDevices(PushBulletClient client, PushBullet pushBulletModel, string userId)
        {
            var devices = await client.CurrentUsersDevices();

            var deviceToSend = devices.Devices.Where(x => pushBulletModel.DeviceNickNames.Contains(x.Nickname)).ToList();

            if (!deviceToSend.Any())
            {
                throw new NullReferenceException($"No device nicknames matched {string.Join(", ", pushBulletModel.DeviceNickNames)}");
            }

            var responses = new List <PushResponse>();

            deviceToSend.ForEach(async device =>
            {
                if (string.IsNullOrEmpty(pushBulletModel.Url))
                {
                    var pushNoteRequest = new PushNoteRequest
                    {
                        DeviceIden = device.Iden,
                        Title      = pushBulletModel.Title,
                        Body       = pushBulletModel.Body
                    };

                    var pushNoteResponse = await client.PushNote(pushNoteRequest);

                    _logger.LogInformation("PushBullet Sent Message by {UserId}.", userId);

                    responses.Add(pushNoteResponse);
                }
                else
                {
                    var pushLinkRequest = new PushLinkRequest
                    {
                        DeviceIden = device.Iden,
                        Title      = pushBulletModel.Title,
                        Url        = pushBulletModel.Url,
                        Body       = pushBulletModel.Body
                    };

                    var pushLinkResponse = await client.PushLink(pushLinkRequest);

                    _logger.LogInformation("PushBullet Sent Link Message by {UserId}.", userId);

                    responses.Add(pushLinkResponse);
                }
            });

            return(responses);
        }
Ejemplo n.º 9
0
        private async Task <List <PushResponse> > SendToChannel(PushBulletClient client, PushBullet pushBulletModel, string userId)
        {
            var responses = new List <PushResponse>();

            if (string.IsNullOrEmpty(pushBulletModel.Url))
            {
                var pushNoteRequest = new PushNoteRequest
                {
                    ChannelTag = pushBulletModel.Channel,
                    Title      = pushBulletModel.Title,
                    Body       = pushBulletModel.Body
                };

                var pushNoteResponse = await client.PushNote(pushNoteRequest);

                _logger.LogInformation("PushBullet Sent Message by {UserId}.", userId);

                responses.Add(pushNoteResponse);
            }
            else
            {
                var pushLinkRequest = new PushLinkRequest
                {
                    ChannelTag = pushBulletModel.Channel,
                    Title      = pushBulletModel.Title,
                    Url        = pushBulletModel.Url,
                    Body       = pushBulletModel.Body
                };

                var pushLinkResponse = await client.PushLink(pushLinkRequest);

                _logger.LogInformation("PushBullet Sent Link Message by {UserId}.", userId);

                responses.Add(pushLinkResponse);
            }

            return(responses);
        }