示例#1
0
 /// <summary>
 /// EventHandler for ItemAdd Event of InboxFolder
 /// </summary>
 /// <param name="Item">The Item wich was added to InboxFolder</param>
 private void Items_ItemAdd(object Item)
 {
     if (MutexManager.InFullSync())
     {
         return;
     }
     try
     {
         // Check the ItemType, could be a MeetingAccept or something else
         if (Item is Ol.ContactItem)
         {
             // Cast to ContactItem Object
             Ol.ContactItem contact = (Ol.ContactItem)Item;
             if (MutexManager.IsBlocked(contact))
             {
                 logger.Debug("Removing contact " + OutlookAdapter.ContactItemDisplay(contact) + " from mutex file");
                 MutexManager.ClearBlockedContact(contact);
                 return;
             }
             logger.Info("Adding " + OutlookAdapter.ContactItemDisplay(contact));
             // Do something with Item
             GoogleAdapter ga = new GoogleAdapter(Config.Username, Config.Password, logger);
             MutexManager.AddToBlockedContacts(contact);
             ga.CreateContactFromOutlookAsync(contact);
             // Release COM Object
             contact = null;
         }
     }
     catch (System.Exception ex)
     {
         logger.Error(ex.Message);
         logger.Debug(ex.StackTrace.ToString());
         MessageBox.Show(ex.Message);
     }
 }
示例#2
0
        private static List <SocialFeedItem> SearchYouTube(string query)
        {
            GoogleAdapter.ApiKey = ConfigurationManager.AppSettings["GoogleAPIKey"].ToString();
            var results = GoogleAdapter.SearchYouTube(query);

            return(results);
        }
示例#3
0
 private void Items_ItemChange(object Item)
 {
     if (MutexManager.InFullSync())
     {
         return;
     }
     try
     {
         if (Item is ContactItem)
         {
             ContactItem item = (ContactItem)Item;
             if (MutexManager.IsBlocked(item))
             {
                 logger.Debug("Removing contact " + OutlookAdapter.ContactItemDisplay(item) + " from mutex file");
                 MutexManager.ClearBlockedContact(item);
                 return;
             }
             logger.Info("Adding " + OutlookAdapter.ContactItemDisplay(item) + " to mutex file");
             MutexManager.AddToBlockedContacts(item);
             logger.Info("Updating " + OutlookAdapter.ContactItemDisplay(item));
             GoogleAdapter ga = new GoogleAdapter(Config.Username, Config.Password, logger);
             ga.UpdateContactFromOutlookAsync(item, null);
         }
     }
     catch (System.Exception ex)
     {
         logger.Error(ex.Message);
         logger.Debug(ex.StackTrace.ToString());
         MessageBox.Show(ex.Message);
     }
 }
        public static HttpConfiguration MapGoogleBotFramework(this HttpConfiguration httpConfiguration, Action <GoogleBotConfigurationBuilder> configurer)
        {
            var options        = new GoogleBotOptions();
            var optionsBuilder = new GoogleBotConfigurationBuilder(options);

            configurer(optionsBuilder);

            ConfiguregoogleBotRoutes(BuildAdapter());

            return(httpConfiguration);

            GoogleAdapter BuildAdapter()
            {
                var adapter = new GoogleAdapter();

                foreach (var middleware in options.Middleware)
                {
                    adapter.Use(middleware);
                }

                return(adapter);
            }

            void ConfiguregoogleBotRoutes(GoogleAdapter adapter)
            {
                var routes  = httpConfiguration.Routes;
                var baseUrl = options.Paths.BasePath;

                if (!baseUrl.StartsWith("/"))
                {
                    baseUrl = baseUrl.Substring(1, baseUrl.Length - 1);
                }

                if (!baseUrl.EndsWith("/"))
                {
                    baseUrl += "/";
                }

                routes.MapHttpRoute(
                    "Google Action Requests Handler",
                    baseUrl + options.Paths.SkillRequestsPath,
                    defaults: null,
                    constraints: null,
                    handler: new GoogleRequestHandler(adapter, options.googleOptions));
            }
        }
        public ActionResult GooglePlusSearch(string query)
        {
            var apiKey = System.Web.HttpContext.Current.Application["GoogleAPIKey"].ToString();

            GoogleAdapter.ApiKey = apiKey;

            var model = new GooglePlusSearch()
            {
                Query = query, ResultsXml = string.Empty
            };

            if (string.IsNullOrEmpty(query))
            {
                return(this.View(model));
            }

            model.ResultsXml = GoogleAdapter.SearchGooglePlus(query);

            return(this.View(model));
        }
示例#6
0
        /// <summary>
        /// Initializes and adds a bot adapter to the HTTP request pipeline, using custom endpoint paths for the bot.
        /// </summary>
        /// <param name="applicationBuilder">The application builder for the ASP.NET application.</param>
        /// <param name="configurePaths">Allows you to modify the endpoints for the bot.</param>
        /// <returns>The updated application builder.</returns>
        /// <remarks>This method adds any middleware from the <see cref="GoogleBotOptions"/> provided in the
        /// <see cref="ServiceCollectionExtensions.AddBot{TBot}(IServiceCollection, Action{GoogleBotOptions})"/>
        /// method to the adapter.</remarks>
        public static IApplicationBuilder UseGoogle(this IApplicationBuilder applicationBuilder, Action <GoogleBotPaths> configurePaths)
        {
            if (applicationBuilder == null)
            {
                throw new ArgumentNullException(nameof(applicationBuilder));
            }

            if (configurePaths == null)
            {
                throw new ArgumentNullException(nameof(configurePaths));
            }

            var options = applicationBuilder.ApplicationServices.GetRequiredService <IOptions <GoogleBotOptions> >().Value;

            var googleAdapter = new GoogleAdapter()
            {
                ActionInvocationName      = options.GoogleOptions.ActionInvocationName,
                ShouldEndSessionByDefault = options.GoogleOptions.ShouldEndSessionByDefault,
                TryConvertFirstActivityAttachmentToGoogleCard = options.GoogleOptions.TryConvertFirstActivityAttachmentTogoogleCard
            };

            foreach (var middleware in options.Middleware)
            {
                googleAdapter.Use(middleware);
            }

            var paths = options.Paths;

            configurePaths(paths);

            if (!options.Paths.BasePath.EndsWith("/"))
            {
                options.Paths.BasePath += "/";
            }

            applicationBuilder.Map(
                $"{paths.BasePath}{paths.SkillRequestsPath}",
                botActivitiesAppBuilder => botActivitiesAppBuilder.Run(new GoogleRequestHandler(googleAdapter, options.GoogleOptions).HandleAsync));

            return(applicationBuilder);
        }
示例#7
0
 public GoogleController(GoogleAdapter adapter, IBot bot)
 {
     Adapter = adapter;
     Bot     = bot;
 }
        protected async Task <object> ProcessMessageRequestAsync(HttpRequest request, GoogleAdapter GoogleAdapter, BotCallbackHandler botCallbackHandler)
        {
            GoogleRequestBody actionRequest;
            Payload           actionPayload;

            var memoryStream = new MemoryStream();

            request.Body.CopyTo(memoryStream);
            memoryStream.Position = 0;

            var projectId = AuthenticationHelpers.GetProjectIdFromRequest(request);

            GoogleAdapter.ActionProjectId = projectId;

            using (var bodyReader = new StreamReader(memoryStream, Encoding.UTF8))
            {
                var skillRequestContent = bodyReader.ReadToEnd();
                try
                {
                    actionRequest = JsonConvert.DeserializeObject <GoogleRequestBody>(skillRequestContent);
                    actionPayload = actionRequest.OriginalDetectIntentRequest.Payload;
                }
                catch
                {
                    actionPayload = JsonConvert.DeserializeObject <Payload>(skillRequestContent);
                }
            }

            var responseBody = await GoogleAdapter.ProcessActivity(
                actionPayload,
                botCallbackHandler);

            return(responseBody);
        }
 public GoogleRequestHandler(GoogleAdapter googleAdapter, GoogleOptions googleOptions)
 {
     _googleAdapter = googleAdapter;
     _googleOptions = googleOptions;
 }
示例#10
0
        public async Task <HttpResponseMessage> ProcessMessageRequestAsync(HttpRequestMessage request, GoogleAdapter googleAdapter, Func <ITurnContext, Task> botCallbackHandler, CancellationToken cancellationToken)
        {
            GoogleRequestBody skillRequest;
            Payload           actionPayload;

            byte[] requestByteArray;

            try
            {
                requestByteArray = await request.Content.ReadAsByteArrayAsync();

                skillRequest = await request.Content.ReadAsAsync <GoogleRequestBody>(googleMessageMediaTypeFormatters, cancellationToken);

                actionPayload = skillRequest.OriginalDetectIntentRequest.Payload;
            }
            catch (Exception)
            {
                try
                {
                    actionPayload = await request.Content.ReadAsAsync <Payload>(googleMessageMediaTypeFormatters, cancellationToken);
                }
                catch (Exception e)
                {
                    throw new JsonSerializationException("Invalid JSON received");
                }
            }

            var GoogleResponseBody = await googleAdapter.ProcessActivity(
                actionPayload,
                _googleOptions,
                null);

            if (GoogleResponseBody == null)
            {
                return(null);
            }

            var GoogleResponseBodyJson = JsonConvert.SerializeObject(GoogleResponseBody, Formatting.None,
                                                                     new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore,
                ContractResolver  = new DefaultContractResolver {
                    NamingStrategy = new CamelCaseNamingStrategy()
                }
            });

            var response = request.CreateResponse(HttpStatusCode.OK);

            response.Content = new StringContent(GoogleResponseBodyJson);
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            return(response);
        }
        protected async Task <GoogleResponseBody> ProcessMessageRequestAsync(HttpRequest request, GoogleAdapter googleAdapter, BotCallbackHandler botCallbackHandler)
        {
            GoogleRequestBody actionRequest;
            Payload           actionPayload;

            var memoryStream = new MemoryStream();

            request.Body.CopyTo(memoryStream);
            var requestBytes = memoryStream.ToArray();

            memoryStream.Position = 0;

            using (var bodyReader = new StreamReader(memoryStream, Encoding.UTF8))
            {
                var skillRequestContent = bodyReader.ReadToEnd();
                try
                {
                    actionRequest = JsonConvert.DeserializeObject <GoogleRequestBody>(skillRequestContent);
                    actionPayload = actionRequest.OriginalDetectIntentRequest.Payload;
                }
                catch (Exception ex)
                {
                    try
                    {
                        actionPayload = JsonConvert.DeserializeObject <Payload>(skillRequestContent);
                    }
                    catch (Exception e)
                    {
                        throw;
                    }
                }
            }

            var GoogleResponseBody = await googleAdapter.ProcessActivity(
                actionPayload,
                _googleOptions,
                botCallbackHandler);

            return(GoogleResponseBody);
        }
        partial void loginWithGoogle(NSObject sender)
        {
            ILoginProvider provider = new GoogleAdapter(new GoogleLoginProvider());

            Login(provider);
        }