public void SendAdvertToAllAndroid(string type) { KompetansetorgetServerContext db = new KompetansetorgetServerContext(); Random rnd = new Random(); string uuid; string message; if (type == "project") { List<Project> projects = db.projects.ToList(); int index = rnd.Next(0, projects.Count); // creates a number between 0 and Count uuid = projects[index].uuid; message = "Nytt oppgaveforslag registert!"; } else { List<Job> jobs = db.jobs.ToList(); int index = rnd.Next(0, jobs.Count); // creates a number between 0 and Count uuid = jobs[index].uuid; message = "Ny jobbstilling registert!"; } var jGcmData = new JObject(); var jData = new JObject(); jData.Add("message", message); jData.Add("uuid", uuid); jData.Add("type", type); jGcmData.Add("to", "/topics/global"); jGcmData.Add("data", jData); var url = new Uri("https://gcm-http.googleapis.com/gcm/send"); try { using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.TryAddWithoutValidation( "Authorization", "key=" + API_KEY); Task.WaitAll(client.PostAsync(url, new StringContent(jGcmData.ToString(), Encoding.Default, "application/json")) .ContinueWith(response => { Console.WriteLine(response); Console.WriteLine("Message sent: check the client device notification tray."); })); } } catch (Exception e) { Debug.WriteLine("Unable to send GCM message:"); Debug.WriteLine(e.StackTrace); } }
public void PushToAndroid(string myAuthToken, string type) { //Create our push services broker var push = new PushBroker(); //Wire up the events for all the services that the broker registers push.OnNotificationSent += NotificationSent; push.OnChannelException += ChannelException; push.OnServiceException += ServiceException; push.OnNotificationFailed += NotificationFailed; push.OnDeviceSubscriptionExpired += DeviceSubscriptionExpired; push.OnDeviceSubscriptionChanged += DeviceSubscriptionChanged; push.OnChannelCreated += ChannelCreated; push.OnChannelDestroyed += ChannelDestroyed; // string myAuthToken = // "f1NihVZfat0:APA91bE7vk55QCEbQzjYfI0jUv1bdCTP9ciK27AXXutSsXfJcOmAZCt8vRxFrMHHslo6DbVZyNKRMdxfYN6np1NJ9DR6Tz20SV9hInGlia7ftgq0o-mimw_UI7cUfE9wi4FzQJgND7y5"; push.RegisterGcmService(new GcmPushChannelSettings("AIzaSyDIbpRonx7yh3NKBAr4rAzmfmIFeEWRTfE")); KompetansetorgetServerContext db = new KompetansetorgetServerContext(); Random rnd = new Random(); string uuid; string message; if (type == "project") { List<Project> projects = db.projects.ToList(); int index = rnd.Next(0, projects.Count); // creates a number between 0 and Count uuid = projects[index].uuid; message = "Nytt oppgaveforslag registert!"; } else { List<Job> jobs = db.jobs.ToList(); int index = rnd.Next(0, jobs.Count); // creates a number between 0 and Count uuid = jobs[index].uuid; message = "Ny jobbstilling registert!"; } push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(myAuthToken) .WithJson("{\"message\":\"" + message + "\",\"badge\":\"7\",\"sound\":\"sound.caf\",\"type\":\"" + type + "\", \"uuid\":\"" + uuid + "\"}")); //Stop and wait for the queues to drains before it dispose push.StopAllServices(); }
/// <summary> /// Creates a new user based on a external access token. /// </summary> /// <param name="provider"></param> /// <param name="verifiedAccessToken"></param> /// <param name="externalAccessToken"></param> /// <returns></returns> private async Task<IHttpActionResult> CreateNewUserFromExternalAccesToken(string provider, ParsedExternalAccessToken verifiedAccessToken, string externalAccessToken) { RegisterExternalBindingModel model = new RegisterExternalBindingModel() { UserName = verifiedAccessToken.email, // this is null Provider = provider, ExternalAccessToken = externalAccessToken }; Student student = new Student(); student.username = verifiedAccessToken.email; student.email = verifiedAccessToken.email; KompetansetorgetServerContext db = new KompetansetorgetServerContext(); db.students.Add(student); db.SaveChanges(); return await RegisterExternal(model); }