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")); }
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); } }
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)); } }
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); }
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(); } }
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; }
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); }
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); }