Esempio n. 1
0
        // POST: Service/Services/Save
        public string Save(string args, Guid workspaceId, Guid dataListId)
        {
            try
            {
                var service   = DeserializeService(args);
                var dbService = service as DbService;
                if (dbService != null)
                {
                    var source = _resourceCatalog.GetResource <DbSource>(workspaceId, dbService.Source.ResourceID);
                    if (source.ServerType == enSourceType.MySqlDatabase)
                    {
                        var broker = new MySqlDatabaseBroker();
                        broker.UpdateServiceOutParameters(dbService, source);
                    }
                }
                _resourceCatalog.SaveResource(workspaceId, service);

                if (workspaceId != GlobalConstants.ServerWorkspaceID)
                {
                    _resourceCatalog.SaveResource(GlobalConstants.ServerWorkspaceID, service);
                }

                return(service.ToString());
            }
            catch (Exception ex)
            {
                RaiseError(ex);
                return(new ValidationResult {
                    IsValid = false, ErrorMessage = ex.Message
                }.ToString());
            }
        }
Esempio n. 2
0
        public virtual ServiceMethodList FetchMethods(DbSource dbSource)
        {
            switch (dbSource.ServerType)
            {
            case enSourceType.MySqlDatabase:
            {
                var broker = new MySqlDatabaseBroker();
                return(broker.GetServiceMethods(dbSource));
            }

            case enSourceType.PostgreSQL:
            {
                var broker = new PostgreSqlDataBaseBroker();
                return(broker.GetServiceMethods(dbSource));
            }

            case enSourceType.Oracle:
            {
                var broker = new OracleDatabaseBroker();
                return(broker.GetServiceMethods(dbSource));
            }

            case enSourceType.SQLiteDatabase:
            {
                var broker = new SqliteDatabaseBroker();
                return(broker.GetServiceMethods(dbSource));
            }

            default:
            {
                var broker = CreateDatabaseBroker();
                return(broker.GetServiceMethods(dbSource));
            }
            }
        }
Esempio n. 3
0
     public virtual ServiceMethodList FetchMethods(DbSource dbSource)
     {
         switch(dbSource.ServerType)
         {
                 case enSourceType.MySqlDatabase:
             {
                 var broker = new  MySqlDatabaseBroker();
                 return broker.GetServiceMethods(dbSource);
             }
             default:
             {
                         var broker = CreateDatabaseBroker();
                     return broker.GetServiceMethods(dbSource);
             }
         }
 
     }
Esempio n. 4
0
        private Recordset FetchDbSourceRecordset(ref DbService dbService, bool addFields, DbSource source)
        {
            switch (source.ServerType)
            {
            case enSourceType.SqlDatabase:
            {
                var broker            = CreateDatabaseBroker();
                var outputDescription = broker.TestService(dbService);

                if (outputDescription?.DataSourceShapes == null || outputDescription.DataSourceShapes.Count == 0)
                {
                    throw new Exception(ErrorResource.ErrorRetrievingShapeFromServiceOutput);
                }
                if (dbService.Recordset != null)
                {
                    dbService.Recordset.Name = dbService.Method.ExecuteAction;
                    if (dbService.Recordset.Name != null)
                    {
                        dbService.Recordset.Name = dbService.Recordset.Name.Replace(".", "_");
                    }
                    dbService.Recordset.Fields.Clear();

                    var smh = new ServiceMappingHelper();
                    smh.MapDbOutputs(outputDescription, ref dbService, addFields);
                }
                return(dbService.Recordset);
            }

            case enSourceType.MySqlDatabase:
            {
                var broker            = new MySqlDatabaseBroker();
                var outputDescription = broker.TestService(dbService);

                if (outputDescription?.DataSourceShapes == null || outputDescription.DataSourceShapes.Count == 0)
                {
                    throw new Exception(ErrorResource.ErrorRetrievingShapeFromServiceOutput);
                }

                dbService.Recordset.Fields.Clear();

                var smh = new ServiceMappingHelper();

                smh.MySqlMapDbOutputs(outputDescription, ref dbService, addFields);

                return(dbService.Recordset);
            }

            case enSourceType.SQLiteDatabase:
            {
                var broker            = new SqliteDatabaseBroker();
                var outputDescription = broker.TestService(dbService);

                if (outputDescription?.DataSourceShapes == null || outputDescription.DataSourceShapes.Count == 0)
                {
                    throw new Exception(ErrorResource.ErrorRetrievingShapeFromServiceOutput);
                }

                dbService.Recordset.Fields.Clear();

                var smh = new ServiceMappingHelper();

                smh.MySqlMapDbOutputs(outputDescription, ref dbService, addFields);

                return(dbService.Recordset);
            }

            case enSourceType.PostgreSQL:
            {
                var broker            = new PostgreSqlDataBaseBroker();
                var outputDescription = broker.TestService(dbService);

                if (outputDescription?.DataSourceShapes == null || outputDescription.DataSourceShapes.Count == 0)
                {
                    throw new Exception(ErrorResource.ErrorRetrievingShapeFromServiceOutput);
                }

                dbService.Recordset.Fields.Clear();

                var smh = new ServiceMappingHelper();

                smh.MySqlMapDbOutputs(outputDescription, ref dbService, addFields);

                return(dbService.Recordset);
            }

            case enSourceType.Oracle:
            {
                var broker            = new OracleDatabaseBroker();
                var outputDescription = broker.TestService(dbService);

                if (outputDescription?.DataSourceShapes == null || outputDescription.DataSourceShapes.Count == 0)
                {
                    throw new Exception(ErrorResource.ErrorRetrievingShapeFromServiceOutput);
                }

                dbService.Recordset.Fields.Clear();

                var smh = new ServiceMappingHelper();

                smh.MapDbOutputs(outputDescription, ref dbService, addFields);

                return(dbService.Recordset);
            }

            case enSourceType.ODBC:
            {
                var broker            = new ODBCDatabaseBroker();
                var outputDescription = broker.TestService(dbService);

                if (outputDescription?.DataSourceShapes == null || outputDescription.DataSourceShapes.Count == 0)
                {
                    throw new Exception(ErrorResource.ErrorRetrievingShapeFromServiceOutput);
                }

                dbService.Recordset.Fields.Clear();

                var smh = new ServiceMappingHelper();

                smh.MapDbOutputs(outputDescription, ref dbService, addFields);
                dbService.Recordset.Name = @"Unnamed";
                return(dbService.Recordset);
            }

            default: return(null);
            }
        }
Esempio n. 5
0
        public virtual Recordset FetchRecordset(DbService dbService, bool addFields)
        {
            if (dbService == null)
            {
                throw new ArgumentNullException("dbService");
            }
            var source = dbService.Source as DbSource;

            if (source != null)
            {
                switch (source.ServerType)
                {
                case enSourceType.SqlDatabase:
                {
                    var broker            = CreateDatabaseBroker();
                    var outputDescription = broker.TestService(dbService);

                    if (outputDescription == null || outputDescription.DataSourceShapes == null || outputDescription.DataSourceShapes.Count == 0)
                    {
                        throw new Exception("Error retrieving shape from service output.");
                    }

                    dbService.Recordset.Name = dbService.Recordset.Name.Replace(".", "_");
                    dbService.Recordset.Fields.Clear();

                    ServiceMappingHelper smh = new ServiceMappingHelper();

                    smh.MapDbOutputs(outputDescription, ref dbService, addFields);

                    return(dbService.Recordset);
                }

                case enSourceType.MySqlDatabase:
                {
                    var broker            = new MySqlDatabaseBroker();
                    var outputDescription = broker.TestService(dbService);

                    if (outputDescription == null || outputDescription.DataSourceShapes == null || outputDescription.DataSourceShapes.Count == 0)
                    {
                        throw new Exception("Error retrieving shape from service output.");
                    }

                    dbService.Recordset.Name = dbService.Recordset.Name.Replace(".", "_");
                    dbService.Recordset.Fields.Clear();

                    ServiceMappingHelper smh = new ServiceMappingHelper();

                    smh.MySqlMapDbOutputs(outputDescription, ref dbService, addFields);

                    return(dbService.Recordset);
                }

                default: return(null);
                }
            }
            return(null);


            // Clear out the Recordset.Fields list because the sequence and
            // number of fields may have changed since the last invocation.
            //
            // Create a copy of the Recordset.Fields list before clearing it
            // so that we don't lose the user-defined aliases.
            //
        }
Esempio n. 6
0
        public virtual Recordset FetchRecordset(DbService dbService, bool addFields)
        {

            if(dbService == null)
            {
                throw new ArgumentNullException("dbService");
            }
                        var  source = dbService.Source as DbSource;
            if(source != null)
            {
                switch(source.ServerType)
                {
                    case enSourceType.SqlDatabase:
                        {
                            var broker = CreateDatabaseBroker();
                            var outputDescription = broker.TestService(dbService);

                            if (outputDescription == null || outputDescription.DataSourceShapes == null || outputDescription.DataSourceShapes.Count == 0)
                            {
                                throw new Exception("Error retrieving shape from service output.");
                            }

                            dbService.Recordset.Name = dbService.Recordset.Name.Replace(".", "_");
                            dbService.Recordset.Fields.Clear();

                            ServiceMappingHelper smh = new ServiceMappingHelper();

                            smh.MapDbOutputs(outputDescription, ref dbService, addFields);

                            return dbService.Recordset;
                        }

                    case enSourceType.MySqlDatabase:
                    {
                        
                            var broker = new MySqlDatabaseBroker();
                            var outputDescription = broker.TestService(dbService);

                            if (outputDescription == null || outputDescription.DataSourceShapes == null || outputDescription.DataSourceShapes.Count == 0)
                            {
                                throw new Exception("Error retrieving shape from service output.");
                            }

                            dbService.Recordset.Name = dbService.Recordset.Name.Replace(".", "_");
                            dbService.Recordset.Fields.Clear();

                            ServiceMappingHelper smh = new ServiceMappingHelper();

                            smh.MySqlMapDbOutputs(outputDescription, ref dbService, addFields);

                            return dbService.Recordset;
                        
                    }
                    default: return null;

                }
            }
            return null;
           

            // Clear out the Recordset.Fields list because the sequence and
            // number of fields may have changed since the last invocation.
            //
            // Create a copy of the Recordset.Fields list before clearing it
            // so that we don't lose the user-defined aliases.
            //

        }
Esempio n. 7
0
        // POST: Service/Services/Save
        public string Save(string args, Guid workspaceId, Guid dataListId)
        {
            try
            {
                var service = DeserializeService(args);
                var dbService = service as DbService;
                if (dbService != null)
                {
                    var source = _resourceCatalog.GetResource<DbSource>(workspaceId, dbService.Source.ResourceID);
                    if (source.ServerType == enSourceType.MySqlDatabase)
                    {
                        var broker = new MySqlDatabaseBroker();
                        broker.UpdateServiceOutParameters(dbService, source);
                    }
                }
                _resourceCatalog.SaveResource(workspaceId, service);

                if(workspaceId != GlobalConstants.ServerWorkspaceID)
                {
                    _resourceCatalog.SaveResource(GlobalConstants.ServerWorkspaceID, service);
                }

                return service.ToString();
            }
            catch(Exception ex)
            {
                RaiseError(ex);
                return new ValidationResult { IsValid = false, ErrorMessage = ex.Message }.ToString();
            }
        }