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();
        }
示例#3
0
        /// <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));
        }