Пример #1
0
        public void Should_Be_Able_To_Create_A_New_Data_Reader()
        {
            var results = new EntityResultSet(null, null, null);

            results.ColumnMetadata = new List <ColumnMetadata>();
            results.Results        = new EntityCollection(new List <Entity>());
            var subject = new CrmDbDataReader(results);
        }
Пример #2
0
 private void HandleUpdateResponse(UpdateResponse updateResponse, EntityResultSet resultSet)
 {
     if (updateResponse != null)
     {
         var updateRequest = (UpdateRequest)Request;
         var result        = updateRequest.Target;
         resultSet.Results = new EntityCollection(new List <Entity>(new Entity[] { result }));
     }
 }
Пример #3
0
        private void HandleUpdateResponse(UpdateResponse updateResponse, EntityResultSet resultSet)
        {
            if (updateResponse != null)
            {
                var updateRequest = (UpdateRequest)Request;
                var result = updateRequest.Target;
                resultSet.Results = new EntityCollection(new List<Entity>(new Entity[] { result }));

            }
        }
Пример #4
0
        public DataReaderTestsSandbox()
            : base()
        {
            // Arrange by registering our fake services into the test container.
            FakeCrmDbConnection = this.RegisterMockInstance <CrmDbConnection>();
            this.Container.Register <DbConnection>(FakeCrmDbConnection);

            CrmConnectionInfo connInfo = new CrmConnectionInfo();

            connInfo.BusinessUnitId   = Guid.NewGuid();
            connInfo.OrganisationId   = Guid.NewGuid();
            connInfo.OrganisationName = "UnitTesting";
            connInfo.ServerVersion    = "1.0.0.0";
            connInfo.UserId           = Guid.NewGuid();

            FakeCrmDbConnection.Stub(c => c.ConnectionInfo).Return(connInfo);

            SchemaTableProvider = new SchemaTableProvider();
            this.Container.Register <ISchemaTableProvider>(SchemaTableProvider); // Singleton.

            // Create some fake results data
            FakeResultSet = new EntityResultSet(null, null, null);
            FakeResultSet.ColumnMetadata = new List <ColumnMetadata>();

            var firstNameAttInfo = new StringAttributeInfo();

            firstNameAttInfo.AttributeType = AttributeTypeCode.String;
            firstNameAttInfo.LogicalName   = "firstname";
            var firstNameC = new ColumnMetadata(firstNameAttInfo);

            var lastNameAttInfo = new StringAttributeInfo();

            lastNameAttInfo.AttributeType = AttributeTypeCode.String;
            lastNameAttInfo.LogicalName   = "lastname";
            var lastnameC = new ColumnMetadata(lastNameAttInfo);

            FakeResultSet.ColumnMetadata.Add(firstNameC);
            FakeResultSet.ColumnMetadata.Add(lastnameC);
            FakeResultSet.Results = new EntityCollection(new List <Entity>());
            var result = new Entity("contact");

            result.Id           = Guid.NewGuid();
            result["firstname"] = "joe";
            result["lastname"]  = "schmoe";
            FakeResultSet.Results.Entities.Add(result);

            this.Container.Register <EntityResultSet>(FakeResultSet);
            this.Container.Register <ResultSet>(FakeResultSet);
        }
        public DataReaderTestsSandbox()
            : base()
        {
            // Arrange by registering our fake services into the test container.
            FakeCrmDbConnection = this.RegisterMockInstance<CrmDbConnection>();
            this.Container.Register<DbConnection>(FakeCrmDbConnection);

            CrmConnectionInfo connInfo = new CrmConnectionInfo();
            connInfo.BusinessUnitId = Guid.NewGuid();
            connInfo.OrganisationId = Guid.NewGuid();
            connInfo.OrganisationName = "UnitTesting";
            connInfo.ServerVersion = "1.0.0.0";
            connInfo.UserId = Guid.NewGuid();

            FakeCrmDbConnection.Stub(c => c.ConnectionInfo).Return(connInfo);

            SchemaTableProvider = new SchemaTableProvider();
            this.Container.Register<ISchemaTableProvider>(SchemaTableProvider); // Singleton.

            // Create some fake results data
            FakeResultSet = new EntityResultSet(null, null, null);
            FakeResultSet.ColumnMetadata = new List<ColumnMetadata>();

            var firstNameAttInfo = new StringAttributeInfo();
            firstNameAttInfo.AttributeType = AttributeTypeCode.String;
            firstNameAttInfo.LogicalName = "firstname";
            var firstNameC = new ColumnMetadata(firstNameAttInfo);

            var lastNameAttInfo = new StringAttributeInfo();
            lastNameAttInfo.AttributeType = AttributeTypeCode.String;
            lastNameAttInfo.LogicalName = "lastname";
            var lastnameC = new ColumnMetadata(lastNameAttInfo);

            FakeResultSet.ColumnMetadata.Add(firstNameC);
            FakeResultSet.ColumnMetadata.Add(lastnameC);
            FakeResultSet.Results = new EntityCollection(new List<Entity>());
            var result = new Entity("contact");
            result.Id = Guid.NewGuid();
            result["firstname"] = "joe";
            result["lastname"] = "schmoe";
            FakeResultSet.Results.Entities.Add(result);

            this.Container.Register<EntityResultSet>(FakeResultSet);
            this.Container.Register<ResultSet>(FakeResultSet);
        }
Пример #6
0
        private void HandleCreateResponse(CreateResponse createResponse, EntityResultSet resultSet)
        {
            if (createResponse != null)
            {
                // if(orgCommand.Columns.Any)
                // for execute reader and execute scalar purposes, we provide a result that has the newly created id of the entity.
                var request   = (CreateRequest)Request;
                var entResult = new Entity(request.Target.LogicalName);

                // Populate results for execute reader and execute scalar purposes.
                var idattname = string.Format("{0}id", request.Target.LogicalName);
                entResult[idattname] = createResponse.id;
                entResult.Id         = createResponse.id;
                resultSet.Results    = new EntityCollection(new List <Entity>(new Entity[] { entResult }));

                // Add column metadata for the results we are returning, in this case it's just the id.
                string[] resultattributes = new string[] { idattname };
                //  AddResultColumnMetadata(orgCommand, resultSet, request.Target.LogicalName, resultattributes);
            }
        }
Пример #7
0
        private void HandleCreateResponse(CreateResponse createResponse, EntityResultSet resultSet)
        {
            if (createResponse != null)
            {
                // if(orgCommand.Columns.Any)
                // for execute reader and execute scalar purposes, we provide a result that has the newly created id of the entity.
                var request = (CreateRequest)Request;
                var entResult = new Entity(request.Target.LogicalName);

                // Populate results for execute reader and execute scalar purposes.
                var idattname = string.Format("{0}id", request.Target.LogicalName);
                entResult[idattname] = createResponse.id;
                entResult.Id = createResponse.id;
                resultSet.Results = new EntityCollection(new List<Entity>(new Entity[] { entResult }));

                // Add column metadata for the results we are returning, in this case it's just the id.
                string[] resultattributes = new string[] { idattname };
                //  AddResultColumnMetadata(orgCommand, resultSet, request.Target.LogicalName, resultattributes);
            }
        }
Пример #8
0
        private void HandleUpdateWithRetreiveResponse(ExecuteMultipleResponse executeMultipleResponse, EntityResultSet resultSet)
        {
            if (executeMultipleResponse != null)
            {
                // for execute reader and execute scalar purposes, we provide a result that has the newly created id of the entity.
                //  var execMultipleRequest = (ExecuteMultipleRequest)executeMultipleRequest;
                int updateOperationBatchPosition = 0; // BatchRequestIndex;

                var batchRequest = BatchRequest;
                if (batchRequest == null)
                {
                    throw new InvalidOperationException("BatchRequest should not be null when executing a request with an output clause.");
                }

                var request = (UpdateRequest)batchRequest.Requests[updateOperationBatchPosition];
                int retrieveOperationBatchPosition = updateOperationBatchPosition + 1;
                var retrieveResponse = (RetrieveResponse)executeMultipleResponse.Responses[retrieveOperationBatchPosition].Response;
                var result = retrieveResponse.Entity;

                resultSet.Results = new EntityCollection(new List<Entity>(new Entity[] { result }));
            }
        }
Пример #9
0
        /// <summary>
        /// 固有表現抽出を行う
        /// </summary>
        /// <param name="sentence">抽出を行う文章</param>
        /// <param name="classFilter">抽出を行う固有表現の種類 複数指定可 未指定の場合は全部</param>
        /// <returns>単語と固有表現の種類を含む構造体のリスト</returns>
        public async Task <List <EntityResultSet> > ExecAsync(String sentence, ClassType classFilter = ClassType.ALL)
        {
            var client = new HttpClient();

            //固有表現抽出のエンドポイントURL
            var uri = "https://api.apigw.smt.docomo.ne.jp/gooLanguageAnalysis/v1/entity?APIKEY=" + APIKey;

            //固有表現種類のフィルターのパラメータを生成
            string class_filter = "";

            if (classFilter.HasFlag(ClassType.ART))
            {
                class_filter += "ART|";
            }
            if (classFilter.HasFlag(ClassType.DAT))
            {
                class_filter += "DAT|";
            }
            if (classFilter.HasFlag(ClassType.LOC))
            {
                class_filter += "LOC|";
            }
            if (classFilter.HasFlag(ClassType.ORG))
            {
                class_filter += "ORG|";
            }
            if (classFilter.HasFlag(ClassType.PSN))
            {
                class_filter += "PSN|";
            }
            if (classFilter.HasFlag(ClassType.TIM))
            {
                class_filter += "TIM|";
            }
            class_filter.TrimEnd('|');

            //要求するメッセージを作成
            dynamic request = new
            {
                sentence     = sentence,
                class_filter = class_filter
            };

            //JSONへ変換(Newtonsoft Json.NETライブラリ使用)
            string json = JsonConvert.SerializeObject(request);

            //要求を送信
            StringContent content = new StringContent(json);

            content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json");
            HttpResponseMessage response = await client.PostAsync(uri, content);

            //エラー確認
            if (response.StatusCode != System.Net.HttpStatusCode.OK)
            {
                string err_resp = await response.Content.ReadAsStringAsync();

                throw new Exception("ERROR" + err_resp);
            }

            //サーバーからの応答(Json)を文字列として取り出す
            string response_json = await response.Content.ReadAsStringAsync();

            //jsonをパース(Newtonsoft Json.NETライブラリ使用)
            JObject result_object = JObject.Parse(response_json);
            dynamic result        = result_object["ne_list"];
            var     return_value  = new List <EntityResultSet>();

            //変換結果を取り出す
            foreach (var r in result)
            {
                EntityResultSet e = new EntityResultSet();
                e.Entity = r[0];
                e.Type   = (ClassType)Enum.Parse(typeof(ClassType), (string)r[1]);
                return_value.Add(e);
            }

            return(return_value);
        }
Пример #10
0
 protected virtual EntityResultSet CreateEntityResultSet()
 {
     var resultSet = new EntityResultSet(DbCommand.CrmDbConnection, Request, Columns);
     return resultSet;
 }
Пример #11
0
        protected virtual EntityResultSet CreateEntityResultSet()
        {
            var resultSet = new EntityResultSet(DbCommand.CrmDbConnection, Request, Columns);

            return(resultSet);
        }
Пример #12
0
        private void HandleUpdateWithRetreiveResponse(ExecuteMultipleResponse executeMultipleResponse, EntityResultSet resultSet)
        {
            if (executeMultipleResponse != null)
            {
                // for execute reader and execute scalar purposes, we provide a result that has the newly created id of the entity.
                //  var execMultipleRequest = (ExecuteMultipleRequest)executeMultipleRequest;
                int updateOperationBatchPosition = 0; // BatchRequestIndex;

                var batchRequest = BatchRequest;
                if (batchRequest == null)
                {
                    throw new InvalidOperationException("BatchRequest should not be null when executing a request with an output clause.");
                }

                var request = (UpdateRequest)batchRequest.Requests[updateOperationBatchPosition];
                int retrieveOperationBatchPosition = updateOperationBatchPosition + 1;
                var retrieveResponse = (RetrieveResponse)executeMultipleResponse.Responses[retrieveOperationBatchPosition].Response;
                var result           = retrieveResponse.Entity;

                resultSet.Results = new EntityCollection(new List <Entity>(new Entity[] { result }));
            }
        }
Пример #13
0
 public void Should_Throw_Argument_Null_When_Constructed_With_Null_Results()
 {
     EntityResultSet results = null;
     var             subject = new CrmDbDataReader(results);
 }
Пример #14
0
        private void HandleCreateWithRetreiveResponse(ExecuteMultipleResponse executeMultipleResponse, EntityResultSet resultSet)
        {
            if (executeMultipleResponse != null)
            {
                // for execute reader and execute scalar purposes, we provide a result that has the newly created id of the entity.
                //  var execMultipleRequest = (ExecuteMultipleRequest)executeMultipleRequest;
                int createOperationBatchPosition = 0;

                if (executeMultipleResponse.IsFaulted)
                {
                    var fault = executeMultipleResponse.Responses.Where(r => r.Fault != null).FirstOrDefault();
                    //  var errorText = from f in faults select f.Fault.InnerFault.Message;
                    FaultReason reason = new FaultReason(fault.Fault.Message);
                    throw new FaultException <OrganizationServiceFault>(fault.Fault, reason);
                }


                var batchRequest = BatchRequest;
                if (batchRequest == null)
                {
                    throw new InvalidOperationException("BatchRequest should not be null when executing a request with an output clause.");
                }

                var request = (CreateRequest)batchRequest.Requests[createOperationBatchPosition];
                int retrieveOperationBatchPosition = createOperationBatchPosition + 1;
                var retrieveResponse = (RetrieveResponse)executeMultipleResponse.Responses[retrieveOperationBatchPosition].Response;
                var result           = retrieveResponse.Entity;

                resultSet.Results = new EntityCollection(new List <Entity>(new Entity[] { result }));
            }
        }
Пример #15
0
        private void HandleCreateWithRetreiveResponse(ExecuteMultipleResponse executeMultipleResponse, EntityResultSet resultSet)
        {
            if (executeMultipleResponse != null)
            {
                // for execute reader and execute scalar purposes, we provide a result that has the newly created id of the entity.
                //  var execMultipleRequest = (ExecuteMultipleRequest)executeMultipleRequest;
                int createOperationBatchPosition = 0;

                if (executeMultipleResponse.IsFaulted)
                {
                    var fault = executeMultipleResponse.Responses.Where(r => r.Fault != null).FirstOrDefault();
                    //  var errorText = from f in faults select f.Fault.InnerFault.Message;
                    FaultReason reason = new FaultReason(fault.Fault.Message);
                    throw new FaultException<OrganizationServiceFault>(fault.Fault, reason);
                }

                var batchRequest = BatchRequest;
                if (batchRequest == null)
                {
                    throw new InvalidOperationException("BatchRequest should not be null when executing a request with an output clause.");
                }

                var request = (CreateRequest)batchRequest.Requests[createOperationBatchPosition];
                int retrieveOperationBatchPosition = createOperationBatchPosition + 1;
                var retrieveResponse = (RetrieveResponse)executeMultipleResponse.Responses[retrieveOperationBatchPosition].Response;
                var result = retrieveResponse.Entity;

                resultSet.Results = new EntityCollection(new List<Entity>(new Entity[] { result }));
            }
        }