Ejemplo n.º 1
0
        public Stream SetMetadata(string name, Stream data)
        {
            try
            {
                if (_serverConfig == null || _serverConfig.Instances.Length == 0)
                {
                    return(WriteException("ServiceType not initialized!"));
                }

                string input = (data != null ? new StreamReader(data).ReadToEnd() : String.Empty);

                MapServerConfig.ServerConfig.InstanceConfig config = _serverConfig.Instances[0];
                InstanceConnection conn = new InstanceConnection("localhost:" + config.Port);

                string user, pwd;
                var    request = Request(out user, out pwd);

                return(WriteValue(
                           conn.UploadMetadata(name, input, user, pwd)
                           ));
            }
            catch (UnauthorizedAccessException)
            {
                return(WriteUnauthorized());
            }
        }
Ejemplo n.º 2
0
        public System.IO.Stream AxlPost(System.IO.Stream data)
        {
            try
            {
                if (_serverConfig == null || _serverConfig.Instances.Length == 0)
                {
                    return(WriteException("ServiceType not initialized!"));
                }

                string user, pwd;
                var    request = Request(out user, out pwd);

                NameValueCollection queryString = KeysToLower(request.UriTemplateMatch.QueryParameters);

                //DateTime td = DateTime.Now;
                //Console.WriteLine("Start AXL Request " + td.ToLongTimeString() + "." + td.Millisecond + " (" + queryString["servicename"] + ")");

                string input = (data != null ? new StreamReader(data).ReadToEnd() : String.Empty);

                OutgoingWebResponseContext context = WebOperationContext.Current.OutgoingResponse;


                if (queryString["cmd"] != null)
                {
                    context.ContentType = "text/plain; charset=UTF-8";
                    switch (queryString["cmd"].ToLower())
                    {
                    case "ping":
                        //return new MemoryStream(Encoding.UTF8.GetBytes("IMS v4.0.1\n"));
                        return(new MemoryStream(Encoding.UTF8.GetBytes("IMS v10.0.0\n")));

                    case "getversion":
                        //return new MemoryStream(Encoding.UTF8.GetBytes("Version:4.0.1\nBuild_Number:630.1700\n"));
                        return(new MemoryStream(Encoding.UTF8.GetBytes("Version=10.0.0\nBuild_Number=183.2159\n")));
                    }
                }

                if (queryString["servicename"] == null)
                {
                    return(WriteException("Parameter SERVICENAME is requiered!"));
                }

                context.ContentType = "text/xml; charset=UTF-8";

                int instanceNr = GetRandom(_serverConfig.Instances.Length /*MapServerConfig.ServerCount*/);
                MapServerConfig.ServerConfig.InstanceConfig config = _serverConfig.Instances[instanceNr];
                InstanceConnection connection = new InstanceConnection("localhost:" + config.Port);

                string response = connection.Send(
                    Functions.OgcOnlineResource(_serverConfig),
                    queryString["servicename"], input, "BB294D9C-A184-4129-9555-398AA70284BC", user, pwd).Trim();

                //Console.WriteLine("Finished AXL Request: " + (DateTime.Now - td).TotalMilliseconds + "ms (" + queryString["servicename"] + ")");
                return(new MemoryStream(Encoding.UTF8.GetBytes(response)));
            }
            catch (UnauthorizedAccessException)
            {
                return(WriteUnauthorized());
            }
        }
Ejemplo n.º 3
0
        public static bool IgnoreCustomFact(string factType)
        {
            if (InstanceConnection.State != ConnectionState.Open)
            {
                InstanceConnection.Open();
            }
            bool result = false;

            using (SqliteCommand cmd = new SqliteCommand("SELECT EXISTS(SELECT ignore FROM CustomFacts where FactType=?)", InstanceConnection))
            {
                SqliteParameter param = cmd.CreateParameter();
                param.DbType = DbType.String;
                cmd.Parameters.Add(param);
                param = cmd.CreateParameter();
                cmd.Prepare();
                cmd.Parameters[0].Value = factType;
                using (SqliteDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleResult))
                {
                    if (reader.Read())
                    {
                        result = reader[0].ToString() == "1";
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 4
0
        public Stream AddMap(string name, Stream data)
        {
            try
            {
                if (_serverConfig == null || _serverConfig.Instances.Length == 0)
                {
                    return(WriteException("ServiceType not initialized!"));
                }

                string input = (data != null ? new StreamReader(data).ReadToEnd() : String.Empty);

                MapServerConfig.ServerConfig.InstanceConfig config = _serverConfig.Instances[0];
                InstanceConnection conn = new InstanceConnection("localhost:" + config.Port);

                string user, pwd;
                var    request = Request(out user, out pwd);

                object ret = conn.AddMap(name, input, user, pwd);

                for (int i = 1; i < _serverConfig.Instances.Length; i++)
                {
                    MapServerConfig.ServerConfig.InstanceConfig config2 = _serverConfig.Instances[i];
                    InstanceConnection conn2 = new InstanceConnection("localhost:" + config2.Port);
                    conn2.AddMap(name, String.Empty, user, pwd);  // Refrsh
                }

                return(WriteValue(ret));
            }
            catch (UnauthorizedAccessException)
            {
                return(WriteUnauthorized());
            }
        }
Ejemplo n.º 5
0
        public Stream Catalog()
        {
            try
            {
                if (_serverConfig == null || _serverConfig.Instances.Length == 0)
                {
                    return(WriteException("ServiceType not initialized!"));
                }

                string user, pwd;
                var    request = Request(out user, out pwd);
                NameValueCollection queryString = request.UriTemplateMatch.QueryParameters;

                InstanceConnection conn = new InstanceConnection("localhost:" + _serverConfig.Instances[0].Port);
                var services            = conn.Services(user, pwd);

                if (queryString["format"] == "xml")
                {
                    #region Xml
                    StringBuilder sb = new StringBuilder();
                    sb.Append("<RESPONSE><SERVICES>");
                    foreach (var service in services)
                    {
                        sb.Append("<SERVICE ");
                        sb.Append("NAME='" + service.Name + "' ");
                        sb.Append("name='" + service.Name + "' ");
                        sb.Append("type='" + service.Type.ToString() + "' ");
                        sb.Append("/>");
                    }
                    sb.Append("</SERVICES></RESPONSE>");

                    OutgoingWebResponseContext context = WebOperationContext.Current.OutgoingResponse;
                    context.ContentType = "text/xml; charset=UTF-8";
                    return(new MemoryStream(Encoding.UTF8.GetBytes(sb.ToString())));

                    #endregion
                }

                string html = LoadHtml("TaskerCatalog.htm");
                #region Services List
                StringBuilder ul = new StringBuilder();
                ul.Append("<div class='listbox'><span style='font-weight:bold'>Services</span>");
                ul.Append("<ul>");
                foreach (var service in services)
                {
                    ul.Append("<li class='servicelink'><a href='ServiceCapabilities?service=" + service.Name + "'>" + service.Name + "</a></li>");
                }
                ul.Append("</ul></div>");
                html = html.Replace("[SERVICES]", ul.ToString());
                #endregion
                return(HtmlStream(html));
            }
            catch (UnauthorizedAccessException)
            {
                return(WriteUnauthorized());
            }
        }
Ejemplo n.º 6
0
        public static void StoreLostCousinsFact(CensusIndividual ind, IProgress <string> outputText)
        {
            try
            {
                if (InstanceConnection.State != ConnectionState.Open)
                {
                    InstanceConnection.Open();
                }
                SqliteParameter param;

                using (SqliteCommand cmd = new SqliteCommand("insert into LostCousins (CensusYear, CensusCountry, CensusRef, IndID, FullName) values(?,?,?,?,?)", InstanceConnection))
                {
                    param        = cmd.CreateParameter();
                    param.DbType = DbType.Int32;
                    cmd.Parameters.Add(param);
                    param        = cmd.CreateParameter();
                    param.DbType = DbType.String;
                    cmd.Parameters.Add(param);
                    param        = cmd.CreateParameter();
                    param.DbType = DbType.String;
                    cmd.Parameters.Add(param);
                    param        = cmd.CreateParameter();
                    param.DbType = DbType.String;
                    cmd.Parameters.Add(param);
                    param        = cmd.CreateParameter();
                    param.DbType = DbType.String;
                    cmd.Parameters.Add(param);
                    cmd.Prepare();

                    if (ind.CensusReference != null)
                    {
                        cmd.Parameters[0].Value = ind.CensusDate.BestYear;
                        cmd.Parameters[1].Value = ind.CensusCountry;
                        cmd.Parameters[2].Value = ind.CensusReference;
                        cmd.Parameters[3].Value = ind.IndividualID;
                        cmd.Parameters[4].Value = ind.Name;

                        int rowsaffected = cmd.ExecuteNonQuery();
                        if (rowsaffected != 1)
                        {
                            outputText.Report($"\nProblem updating record in database update affected {rowsaffected} records.");
                        }
                        else
                        {
                            FactLocation location = FactLocation.GetLocation(ind.CensusCountry);
                            Fact         f        = new Fact(ind.CensusRef, Fact.LC_FTA, ind.CensusDate, location, string.Empty, true, true);
                            Individual   person   = FamilyTree.Instance.GetIndividual(ind.IndividualID); // get the individual not the census indvidual
                            person?.AddFact(f);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                outputText.Report($"\nFailed to save Lost Cousins record in database error was: {e.Message}");
            }
        }
Ejemplo n.º 7
0
 public static void GetLocationDetails(FactLocation location)
 {
     if (location.ToString().Length == 0)
     {
         return;
     }
     if (InstanceConnection.State != ConnectionState.Open)
     {
         InstanceConnection.Open();
     }
     ReadLocationIntoFact(location, InstanceConnection);
 }
Ejemplo n.º 8
0
 public static void LoadGeoLocations()
 {
     if (InstanceConnection.State != ConnectionState.Open)
     {
         InstanceConnection.Open();
     }
     foreach (FactLocation loc in FactLocation.AllLocations)
     {
         ReadLocationIntoFact(loc, InstanceConnection);
     }
     InstanceConnection.Close();
 }
Ejemplo n.º 9
0
 public static void ResetPartials()
 {
     if (InstanceConnection.State != ConnectionState.Open)
     {
         InstanceConnection.Open();
     }
     using (SQLiteCommand cmd = new SQLiteCommand("update geocode set latitude = 0, longitude = 0, founddate = date('now'), foundlocation = '', foundlevel = -2, viewport_x_ne = 0, viewport_y_ne = 0, viewport_x_sw = 0, viewport_y_sw = 0, geocodestatus = 0, foundresulttype = '' where geocodestatus in (2,7,9)", InstanceConnection))
     {
         cmd.ExecuteNonQuery();
     }
     InstanceConnection.Close();
 }
Ejemplo n.º 10
0
 void UpgradeDatabase(Version dbVersion)
 {
     try
     {
         Version v7_3_3_2 = new Version("7.3.3.2");
         InstanceConnection.Close();
     }
     catch (Exception ex)
     {
         UIHelpers.ShowMessage($"Error upgrading database. Error is :{ex.Message}", "FTAnalyzer");
     }
 }
Ejemplo n.º 11
0
        private static void BarOutput(InstanceConnector output, InstanceConnection <SyntaxNode> connection, Scope scope)
        {
            Assert.IsNotNull(connection.OutputNode);
            Assert.IsNotNull(connection.InputNode);
            Assert.IsInstanceOfType(connection.InputNode, typeof(ExpressionSyntax));
            Assert.IsInstanceOfType(connection.OutputNode, typeof(ExpressionSyntax));

            scope.AddInstanceInitializer(FooInputInit.Get(
                                             connection.Source,
                                             CSharp.ParseExpression('"' + connection.Input.Id + '"'),
                                             CSharp.BinaryExpression(SyntaxKind.EqualsExpression,
                                                                     (ExpressionSyntax)connection.InputNode,
                                                                     (ExpressionSyntax)connection.OutputNode)));
        }
Ejemplo n.º 12
0
        public static void StoreLostCousinsFact(CensusIndividual ind, IProgress <string> outputText)
        {
            try
            {
                if (InstanceConnection.State != ConnectionState.Open)
                {
                    InstanceConnection.Open();
                }
                SQLiteParameter param;

                using (SQLiteCommand cmd = new SQLiteCommand("insert into LostCousins (CensusYear, CensusCountry, CensusRef, IndID, FullName) values(?,?,?,?,?)", InstanceConnection))
                {
                    param        = cmd.CreateParameter();
                    param.DbType = DbType.Int32;
                    cmd.Parameters.Add(param);
                    param        = cmd.CreateParameter();
                    param.DbType = DbType.String;
                    cmd.Parameters.Add(param);
                    param        = cmd.CreateParameter();
                    param.DbType = DbType.String;
                    cmd.Parameters.Add(param);
                    param        = cmd.CreateParameter();
                    param.DbType = DbType.String;
                    cmd.Parameters.Add(param);
                    param        = cmd.CreateParameter();
                    param.DbType = DbType.String;
                    cmd.Parameters.Add(param);
                    cmd.Prepare();

                    if (ind.CensusReference != null)
                    {
                        cmd.Parameters[0].Value = ind.CensusDate.BestYear;
                        cmd.Parameters[1].Value = ind.CensusCountry;
                        cmd.Parameters[2].Value = ind.CensusReference;
                        cmd.Parameters[3].Value = ind.IndividualID;
                        cmd.Parameters[4].Value = ind.Name;

                        int rowsaffected = cmd.ExecuteNonQuery();
                        if (rowsaffected != 1)
                        {
                            outputText.Report($"\nProblem updating record in database update affected {rowsaffected} records.");
                        }
                    }
                }
            }
            catch (Exception e)
            {
                outputText.Report($"\nFailed to save Lost Cousins record in database error was: {e.Message}");
            }
        }
Ejemplo n.º 13
0
        private void applyConnection(
            InstanceConnection <TNode> connection,
            Instance <TNode> instance,
            bool isInput,
            Action <InstanceConnector, InstanceConnection <TNode>, Scope> transform,
            Scope scope)
        {
            if (transform != null)
            {
                var connector = isInput ? connection.Input : connection.Output;

                transform(connector, connection, scope);
                instance.Node = isInput ? connection.InputModelNode : connection.OutputModelNode;
            }
        }
Ejemplo n.º 14
0
 public void InstanceCreate(string GeneratedKey)
 {
     if (!Instances.ContainsKey(GeneratedKey))
     {
         var InstanceToCreate = new InstanceConnection();
         InstanceToCreate.ConnectionID = Context.ConnectionId;
         InstanceToCreate.Pause        = false;
         InstanceToCreate.TimeLeft     = 0;
         Instances.Add(GeneratedKey, InstanceToCreate);
         Clients.Client(Context.ConnectionId).SendAsync("gameCreated", true, GeneratedKey);
     }
     else
     {
         Clients.Client(Context.ConnectionId).SendAsync("gameCreated", false, GeneratedKey);
     }
 }
Ejemplo n.º 15
0
 protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         try
         {
             if (InstanceConnection?.State == ConnectionState.Open)
             {
                 InstanceConnection.Close();
             }
             InstanceConnection?.Dispose();
             // dispose of things here
         }
         catch (Exception) { }
     }
 }
Ejemplo n.º 16
0
        public Stream Index()
        {
            try
            {
                string html = LoadHtml("TaskerIndex.htm");

                #region Instances
                StringBuilder ul = new StringBuilder();
                ul.Append("<div class='listbox'><span style='font-weight:bold'>Worker Processes</span>");
                ul.Append("<ul>");
                for (int i = 0; i < _serverConfig.Instances.Length; i++)
                {
                    InstanceConnection conn = new InstanceConnection("localhost:" + _serverConfig.Instances[i].Port);

                    ul.Append("<li class='servicelink'>Instance " + (i + 1));
                    try
                    {
                        DateTime start = DateTime.Now;
                        string   ping;
                        for (int p = 0; p < 20; p++)
                        {
                            ping = conn.Ping();
                        }
                        TimeSpan ts = DateTime.Now - start;

                        ul.Append(" ... running (" + conn.Ping() + ") ... " + Math.Round(ts.TotalMilliseconds / 20, 1) + "ms/ping");
                    }
                    catch (Exception ex)
                    {
                        ul.Append(" ... error (" + ex.Message + ")");
                    }
                    ul.Append("</li>");
                }
                ul.Append("</ul></div>");
                html = html.Replace("[INSTANCES]", ul.ToString());
                #endregion

                return(HtmlStream(html));
            }
            catch (UnauthorizedAccessException)
            {
                return(WriteUnauthorized());
            }
        }
Ejemplo n.º 17
0
        public static int AddLostCousinsFacts()
        {
            int count = 0;

            if (InstanceConnection.State != ConnectionState.Open)
            {
                InstanceConnection.Open();
            }
            using (SqliteCommand cmd = new SqliteCommand("select CensusYear, CensusCountry, CensusRef, IndID, FullName from LostCousins", InstanceConnection))
            {
                using (SqliteDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        string     indID    = reader["IndID"].ToString();
                        string     fullName = reader["FullName"].ToString();
                        Individual ind      = FamilyTree.Instance.GetIndividual(indID);
                        if (ind?.Name == fullName) // only load if individual exists in this tree.
                        {
                            string CensusYear    = reader["CensusYear"].ToString();
                            string CensusCountry = reader["CensusCountry"].ToString();
                            string CensusRef     = reader["CensusRef"].ToString();
                            if (!ind.IsLostCousinsEntered(CensusDate.GetLostCousinsCensusYear(new FactDate(CensusYear), true)))
                            {
                                FactLocation location = FactLocation.GetLocation(CensusCountry);
                                Fact         f        = new Fact(CensusRef, Fact.LOSTCOUSINS, new FactDate(CensusYear), location, string.Empty, true, true);
                                ind?.AddFact(f);
                            }
                            count++;
                        }
                        else
                        {
                            Console.Write("name wrong");
                            // UpdateFullName(reader, ind.Name); needed during testing
                        }
                    }
                }
            }
            return(count);
        }
Ejemplo n.º 18
0
        public static bool LostCousinsExists(CensusIndividual ind)
        {
            if (InstanceConnection.State != ConnectionState.Open)
            {
                InstanceConnection.Open();
            }
            bool result = false;

            using (SqliteCommand cmd = new SqliteCommand("SELECT EXISTS(SELECT 1 FROM LostCousins where CensusYear=? and CensusCountry=? and CensusRef=? and IndID=?)", InstanceConnection))
            {
                SqliteParameter param = cmd.CreateParameter();
                param.DbType = DbType.Int32;
                cmd.Parameters.Add(param);
                param        = cmd.CreateParameter();
                param.DbType = DbType.String;
                cmd.Parameters.Add(param);
                param        = cmd.CreateParameter();
                param.DbType = DbType.String;
                cmd.Parameters.Add(param);
                param        = cmd.CreateParameter();
                param.DbType = DbType.String;
                cmd.Parameters.Add(param);
                param        = cmd.CreateParameter();
                param.DbType = DbType.String;
                cmd.Parameters.Add(param);
                cmd.Prepare();
                cmd.Parameters[0].Value = ind.CensusDate.BestYear;
                cmd.Parameters[1].Value = ind.CensusCountry;
                cmd.Parameters[2].Value = ind.CensusReference;
                cmd.Parameters[3].Value = ind.IndividualID;
                using (SqliteDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleResult))
                {
                    if (reader.Read())
                    {
                        result = reader[0].ToString() == "1";
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 19
0
 public void AddEmptyLocationsToQueue(ConcurrentQueue <FactLocation> queue)
 {
     if (InstanceConnection.State != ConnectionState.Open)
     {
         InstanceConnection.Open();
     }
     using (SqliteCommand cmd = new SqliteCommand("select location from geocode where foundlocation='' and geocodestatus in (3, 8, 9)", InstanceConnection))
     {
         using (SqliteDataReader reader = cmd.ExecuteReader())
         {
             while (reader.Read())
             {
                 FactLocation loc = FactLocation.LookupLocation(reader[0].ToString());
                 if (!queue.Contains(loc))
                 {
                     queue.Enqueue(loc);
                 }
             }
         }
     }
     InstanceConnection.Close();
 }
Ejemplo n.º 20
0
        public static bool IsLocationInDatabase(string location)
        {
            bool inDatabase;

            if (InstanceConnection.State != ConnectionState.Open)
            {
                InstanceConnection.Open();
            }
            using (SQLiteCommand cmd = new SQLiteCommand("select location from geocode where location = ?", InstanceConnection))
            {
                SQLiteParameter param = cmd.CreateParameter();
                param.DbType = DbType.String;
                cmd.Parameters.Add(param);
                cmd.Prepare();
                cmd.Parameters[0].Value = location;
                using (SQLiteDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleResult))
                {
                    inDatabase = reader.Read();
                }
            }
            return(inDatabase);
        }
Ejemplo n.º 21
0
        static Version GetDatabaseVersion()
        {
            string db = null;

            try
            {
                if (InstanceConnection.State != ConnectionState.Open)
                {
                    InstanceConnection.Open();
                }
                using (SQLiteCommand cmd = new SQLiteCommand("select Database from versions where platform='PC'", InstanceConnection))
                {
                    db = (string)cmd.ExecuteScalar();
                }
            }
            catch (Exception)
            {  // use old method if current method fails
                try
                {
                    using (SQLiteCommand cmd = new SQLiteCommand("select Database from versions", InstanceConnection))
                    {
                        db = (string)cmd.ExecuteScalar();
                    }
                }
                catch { }
            }
            finally
            {
                InstanceConnection.Close();
            }
            Version dbVersion = db == null ? new Version("0.0.0.0") : new Version(db);

            if (dbVersion == new Version("7.3.0.0"))
            {
                return(new Version("7.0.0.0")); // force old version so it updates after beta fix on v7.3.0.0
            }
            return(dbVersion);
        }
Ejemplo n.º 22
0
        public Stream GetMetadata(string name)
        {
            try
            {
                if (_serverConfig == null || _serverConfig.Instances.Length == 0)
                {
                    return(WriteException("ServiceType not initialized!"));
                }

                MapServerConfig.ServerConfig.InstanceConfig config = _serverConfig.Instances[0];
                InstanceConnection conn = new InstanceConnection("localhost:" + config.Port);

                string user, pwd;
                var    request = Request(out user, out pwd);

                return(WriteValue(
                           conn.QueryMetadata(name, user, pwd)
                           ));
            }
            catch (UnauthorizedAccessException)
            {
                return(WriteUnauthorized());
            }
        }
Ejemplo n.º 23
0
        static Version GetDatabaseVersion()
        {
            string db = null;

            try
            {
                if (InstanceConnection.State != ConnectionState.Open)
                {
                    InstanceConnection.Open();
                }
                using (SqliteCommand cmd = new SqliteCommand("select Database from versions where platform='Mac'", InstanceConnection))
                {
                    db = (string)cmd.ExecuteScalar();
                }
                InstanceConnection.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error in GetDatabaseVersion " + e.Message);
            }
            Version dbVersion = db == null ? new Version("0.0.0.0") : new Version(db);

            return(dbVersion);
        }
Ejemplo n.º 24
0
        private static Version GetDatabaseVersion()
        {
            string db = null;

            try
            {
                if (InstanceConnection.State != ConnectionState.Open)
                {
                    InstanceConnection.Open();
                }
                using (SQLiteCommand cmd = new SQLiteCommand("select Database from versions", InstanceConnection))
                {
                    db = (string)cmd.ExecuteScalar();
                }
                InstanceConnection.Close();
            }
            catch (Exception)
            {
                //log.Error("Error in GetDatabaseVersion " + e.Message);
            }
            Version dbVersion = db == null ? new Version("0.0.0.0") : new Version(db);

            return(dbVersion);
        }
Ejemplo n.º 25
0
        public static void InsertGeocode(FactLocation loc)
        {
            if (InstanceConnection.State != ConnectionState.Open)
            {
                InstanceConnection.Open();
            }
            SQLiteParameter param;

            using (SQLiteCommand insertCmd = new SQLiteCommand("insert into geocode (location, level, latitude, longitude, founddate, foundlocation, foundlevel, viewport_x_ne, viewport_y_ne, viewport_x_sw, viewport_y_sw, geocodestatus, foundresulttype, latm, longm) values(?,?,?,?,date('now'),?,?,?,?,?,?,?,?,?,?)", InstanceConnection))
            {
                param        = insertCmd.CreateParameter();
                param.DbType = DbType.String;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.Int32;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.Double;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.Double;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.String;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.Int32;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.Double;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.Double;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.Double;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.Double;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.Int32;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.String;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.Double;
                insertCmd.Parameters.Add(param);

                param        = insertCmd.CreateParameter();
                param.DbType = DbType.Double;
                insertCmd.Parameters.Add(param);

                insertCmd.Prepare();

                insertCmd.Parameters[0].Value  = loc.ToString();
                insertCmd.Parameters[1].Value  = loc.Level;
                insertCmd.Parameters[2].Value  = loc.Latitude;
                insertCmd.Parameters[3].Value  = loc.Longitude;
                insertCmd.Parameters[4].Value  = loc.FoundLocation;
                insertCmd.Parameters[5].Value  = loc.FoundLevel;
                insertCmd.Parameters[6].Value  = loc.ViewPort.NorthEast.Long;
                insertCmd.Parameters[7].Value  = loc.ViewPort.NorthEast.Lat;
                insertCmd.Parameters[8].Value  = loc.ViewPort.SouthWest.Long;
                insertCmd.Parameters[9].Value  = loc.ViewPort.SouthWest.Lat;
                insertCmd.Parameters[10].Value = loc.GeocodeStatus;
                insertCmd.Parameters[11].Value = loc.FoundResultType;
                insertCmd.Parameters[12].Value = loc.LatitudeM;
                insertCmd.Parameters[13].Value = loc.LongitudeM;

                int rowsaffected = insertCmd.ExecuteNonQuery();
            }
        }
Ejemplo n.º 26
0
        public static void UpdateGeocode(FactLocation loc)
        {
            if (InstanceConnection.State != ConnectionState.Open)
            {
                InstanceConnection.Open();
            }
            using (SQLiteCommand updateCmd = new SQLiteCommand("update geocode set founddate=date('now'), level = ?, latitude = ?, longitude = ?, foundlocation = ?, foundlevel = ?, viewport_x_ne = ?, viewport_y_ne = ?, viewport_x_sw = ?, viewport_y_sw = ?, geocodestatus = ?, foundresulttype = ?, latm = ?, longm = ? where location = ?", InstanceConnection))
            {
                SQLiteParameter param = updateCmd.CreateParameter();
                param.DbType = DbType.Int32;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.String;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Int32;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Int32;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.String;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.String;
                updateCmd.Parameters.Add(param);

                updateCmd.Prepare();

                updateCmd.Parameters[0].Value  = loc.Level;
                updateCmd.Parameters[1].Value  = loc.Latitude;
                updateCmd.Parameters[2].Value  = loc.Longitude;
                updateCmd.Parameters[3].Value  = loc.FoundLocation;
                updateCmd.Parameters[4].Value  = loc.FoundLevel;
                updateCmd.Parameters[5].Value  = loc.ViewPort.NorthEast.Long;
                updateCmd.Parameters[6].Value  = loc.ViewPort.NorthEast.Lat;
                updateCmd.Parameters[7].Value  = loc.ViewPort.SouthWest.Long;
                updateCmd.Parameters[8].Value  = loc.ViewPort.SouthWest.Lat;
                updateCmd.Parameters[9].Value  = loc.GeocodeStatus;
                updateCmd.Parameters[10].Value = loc.FoundResultType;
                updateCmd.Parameters[11].Value = loc.LatitudeM;
                updateCmd.Parameters[12].Value = loc.LongitudeM;
                updateCmd.Parameters[13].Value = loc.ToString();
                int rowsaffected = updateCmd.ExecuteNonQuery();
                if (rowsaffected != 1)
                {
                    Console.WriteLine("Problem updating");
                }
                OnGeoLocationUpdated(loc);
            }
        }
Ejemplo n.º 27
0
        public Stream MapRequestPost(string interpreter, string name, Stream data)
        {
            try
            {
                if (_serverConfig == null || _serverConfig.Instances.Length == 0)
                {
                    return(WriteException("ServiceType not initialized!"));
                }

                if (IfMatch())
                {
                    OutgoingWebResponseContext context = WebOperationContext.Current.OutgoingResponse;
                    context.StatusCode = HttpStatusCode.NotModified;
                    return(null);
                }

                //DateTime td = DateTime.Now;
                //Console.WriteLine("Start Map Request " + td.ToLongTimeString() + "." + td.Millisecond + " (" + name + ")");
                //System.Threading.Thread.Sleep(10000);

                string user, pwd;
                var    request = Request(out user, out pwd);
                NameValueCollection queryString = KeysToLower(request.UriTemplateMatch.QueryParameters);
                string input = (data != null ? new StreamReader(data).ReadToEnd() : String.Empty);

                if (String.IsNullOrEmpty(input))
                {
                    StringBuilder parameters = new StringBuilder();
                    foreach (string key in queryString.Keys)
                    {
                        if (parameters.Length > 0)
                        {
                            parameters.Append("&");
                        }
                        parameters.Append(key.ToUpper() + "=" + queryString[key]);
                    }
                    input = parameters.ToString();
                }

                int instanceNr = GetRandom(_serverConfig.Instances.Length /*  MapServerConfig.ServerCount*/);
                MapServerConfig.ServerConfig.InstanceConfig config = _serverConfig.Instances[instanceNr];
                InstanceConnection conn = new InstanceConnection("localhost:" + config.Port);

                string onlineResource = _serverConfig.OnlineResource + "/MapRequest/" + interpreter + "/" + name;

                IServiceRequestInterpreter requestInterpreter = GetInterpreter(interpreter);

                string ret = conn.Send(onlineResource, name, input, PlugInManager.PlugInID(requestInterpreter).ToString(), user, pwd,
                                       input.Contains("tile:render") ? 3600 : 0);

                //Console.WriteLine("Finished map Request: " + (DateTime.Now - td).TotalMilliseconds + "ms (" + name + ")");
                if (ret.StartsWith("image:"))
                {
                    OutgoingWebResponseContext context = WebOperationContext.Current.OutgoingResponse;
                    context.ContentType = "image/png";

                    ret = ret.Substring(6, ret.Length - 6);
                    return(WriteFile(ret));
                }
                if (ret.StartsWith("{"))
                {
                    try
                    {
                        var mapServerResponse = gView.Framework.system.MapServerResponse.FromString(ret);

                        OutgoingWebResponseContext context = WebOperationContext.Current.OutgoingResponse;
                        context.ContentType = mapServerResponse.ContentType;

                        if (mapServerResponse.Expires != null)
                        {
                            AppendEtag((DateTime)mapServerResponse.Expires);
                        }

                        return(WriteBytes(mapServerResponse.Data));
                    }
                    catch { }
                }

                return(WriteValue(ret));
            }
            catch (UnauthorizedAccessException)
            {
                return(WriteUnauthorized());
            }
        }
Ejemplo n.º 28
0
        public Stream TileWmts(string name, string cacheType, string origin, string epsg, string style, string level, string row, string col)
        {
            try
            {
                if (_serverConfig == null || _serverConfig.Instances.Length == 0)
                {
                    return(WriteException("ServiceType not initialized!"));
                }

                if (IfMatch())
                {
                    OutgoingWebResponseContext context = WebOperationContext.Current.OutgoingResponse;
                    context.StatusCode = HttpStatusCode.NotModified;
                    return(null);
                }

                string user, pwd;
                var    request = Request(out user, out pwd);

                int instanceNr = GetRandom(_serverConfig.Instances.Length /*  MapServerConfig.ServerCount*/);
                MapServerConfig.ServerConfig.InstanceConfig config = _serverConfig.Instances[instanceNr];
                InstanceConnection conn = new InstanceConnection("localhost:" + config.Port);

                IServiceRequestInterpreter requestInterpreter = GetInterpreter("wmts");

                string ret = conn.Send(String.Empty, name, cacheType + "/" + origin + "/" + epsg + "/" + style + "/~" + level + "/" + row + "/" + col, PlugInManager.PlugInID(requestInterpreter).ToString(), user, pwd);

                if (ret.StartsWith("image:"))
                {
                    OutgoingWebResponseContext context = WebOperationContext.Current.OutgoingResponse;
                    context.ContentType = "image/png";

                    ret = ret.Substring(6, ret.Length - 6);
                    return(WriteFile(ret));
                }
                if (ret.StartsWith("{"))
                {
                    try
                    {
                        var mapServerResponse = gView.Framework.system.MapServerResponse.FromString(ret);

                        OutgoingWebResponseContext context = WebOperationContext.Current.OutgoingResponse;
                        context.ContentType = mapServerResponse.ContentType;

                        if (mapServerResponse.Expires != null)
                        {
                            AppendEtag((DateTime)mapServerResponse.Expires);
                        }

                        return(WriteBytes(mapServerResponse.Data));
                    }
                    catch { }
                }

                return(WriteValue(ret));
            }
            catch (UnauthorizedAccessException)
            {
                return(WriteUnauthorized());
            }
        }
Ejemplo n.º 29
0
        void ConvertLatLongs()
        {
            Coordinate Point, NorthEast, SouthWest;
            Coordinate mPoint, mNorthEast, mSouthWest;
            double     latitude, longitude, viewport_x_ne, viewport_y_ne, viewport_x_sw, viewport_y_sw;

            if (InstanceConnection.State != ConnectionState.Open)
            {
                InstanceConnection.Open();
            }
            int rowcount = 0;

            using (SQLiteCommand cmd = new SQLiteCommand("select count(*) from geocode where latitude <> 0 and longitude <> 0", InstanceConnection))
            {
                using (SQLiteDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleResult))
                {
                    reader.Read();
                    int.TryParse(reader[0].ToString(), out rowcount);
                }
            }
            #region update cmd
            using (SQLiteCommand updateCmd = new SQLiteCommand("update geocode set latm=?, longm=?, viewport_x_ne=?, viewport_y_ne=?, viewport_x_sw=?, viewport_y_sw=?  where location = ?", InstanceConnection))
            {
                SQLiteParameter param = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.Double;
                updateCmd.Parameters.Add(param);

                param        = updateCmd.CreateParameter();
                param.DbType = DbType.String;
                updateCmd.Parameters.Add(param);
                updateCmd.Prepare();
                Progress p = new Progress(rowcount);
                p.Show();
                int row = 0;
                using (SQLiteCommand cmd = new SQLiteCommand("select location, latitude, longitude, viewport_x_ne, viewport_y_ne, viewport_x_sw, viewport_y_sw from geocode where latitude <> 0 and longitude <> 0", InstanceConnection))
                {
                    using (SQLiteDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            latitude = longitude = viewport_x_ne = viewport_x_sw = viewport_y_ne = viewport_y_sw = 0;
                            string location = reader["location"].ToString();
                            double.TryParse(reader["latitude"].ToString(), out latitude);
                            double.TryParse(reader["longitude"].ToString(), out longitude);
                            double.TryParse(reader["viewport_x_ne"].ToString(), out viewport_x_ne);
                            double.TryParse(reader["viewport_y_ne"].ToString(), out viewport_y_ne);
                            double.TryParse(reader["viewport_x_sw"].ToString(), out viewport_x_sw);
                            double.TryParse(reader["viewport_y_sw"].ToString(), out viewport_y_sw);
                            Point      = new Coordinate(longitude, latitude);
                            NorthEast  = new Coordinate(viewport_y_ne, viewport_x_ne); // old viewports had x & y wrong way round
                            SouthWest  = new Coordinate(viewport_y_sw, viewport_x_sw); // x is stored as lat y as long
                            mPoint     = MapTransforms.TransformCoordinate(Point);
                            mNorthEast = MapTransforms.TransformCoordinate(NorthEast);
                            mSouthWest = MapTransforms.TransformCoordinate(SouthWest);
                            // now write back the m versions
                            updateCmd.Parameters[0].Value = mPoint.Y;
                            updateCmd.Parameters[1].Value = mPoint.X;
                            updateCmd.Parameters[2].Value = mNorthEast.X;
                            updateCmd.Parameters[3].Value = mNorthEast.Y;
                            updateCmd.Parameters[4].Value = mSouthWest.X;
                            updateCmd.Parameters[5].Value = mSouthWest.Y;
                            updateCmd.Parameters[6].Value = location;
                            updateCmd.ExecuteNonQuery();
                            p.Update(++row);
                        }
                    }
                }
                p.Dispose();
            }
            #endregion
        }
Ejemplo n.º 30
0
        private static void BarOutput(InstanceConnector output, InstanceConnection<SyntaxNode> connection, Scope scope)
        {
            Assert.IsNotNull(connection.OutputNode);
            Assert.IsNotNull(connection.InputNode);
            Assert.IsInstanceOfType(connection.InputNode, typeof(ExpressionSyntax));
            Assert.IsInstanceOfType(connection.OutputNode, typeof(ExpressionSyntax));

            scope.AddInstanceInitializer(FooInputInit.Get(
                connection.Source,
                CSharp.ParseExpression('"' + connection.Input.Id + '"'),
                CSharp.BinaryExpression(SyntaxKind.EqualsExpression,
                    (ExpressionSyntax)connection.InputNode,
                    (ExpressionSyntax)connection.OutputNode)));
        }
Ejemplo n.º 31
0
 void UpgradeDatabase(Version dbVersion)
 {
     try
     {
         Version v7_3_3_2 = new Version("7.3.3.2");
         Version v7_4_0_0 = new Version("7.4.0.0");
         Version v8_0_0_0 = new Version("8.0.0.0");
         if (InstanceConnection.State != ConnectionState.Open)
         {
             InstanceConnection.Open();
         }
         if (dbVersion < v7_3_3_2)
         {
             try
             {
                 using (SqliteCommand cmd = new SqliteCommand("SELECT count(*) FROM LostCousins", InstanceConnection))
                 {
                     cmd.ExecuteNonQuery();
                 }
             }
             catch (SqliteException)
             {
                 using (SqliteCommand cmd = new SqliteCommand("create table IF NOT EXISTS LostCousins (CensusYear INTEGER(4), CensusCountry STRING (20), CensusRef STRING(25), IndID STRING(10), FullName String(80), constraint pkLostCousins primary key (CensusYear, CensusCountry, CensusRef, IndID))", InstanceConnection))
                 {
                     cmd.ExecuteNonQuery();
                 }
             }
             using (SqliteCommand cmd = new SqliteCommand("update versions set Database = '7.3.3.2'", InstanceConnection))
             {
                 cmd.ExecuteNonQuery();
             }
         }
         if (dbVersion < v7_4_0_0)
         {
             using (SqliteCommand cmd = new SqliteCommand("drop table versions", InstanceConnection))
             {
                 cmd.ExecuteNonQuery();
             }
             using (SqliteCommand cmd = new SqliteCommand("CREATE TABLE IF NOT EXISTS Versions(Platform VARCHAR(10) PRIMARY KEY, [Database] VARCHAR(10));", InstanceConnection))
             {
                 cmd.ExecuteNonQuery();
             }
             using (SqliteCommand cmd = new SqliteCommand("insert into Versions(platform, database) values('PC', '7.4.0.0')", InstanceConnection))
             {
                 cmd.ExecuteNonQuery();
             }
             using (SqliteCommand cmd = new SqliteCommand("insert into Versions(platform, database) values('Mac', '1.2.0.42')", InstanceConnection))
             {
                 cmd.ExecuteNonQuery();
             }
         }
         if (dbVersion < v8_0_0_0)
         {
             using (SqliteCommand cmd = new SqliteCommand("CREATE TABLE IF NOT EXISTS CustomFacts (FactType STRING(60) PRIMARY KEY, [Ignore] BOOLEAN)", InstanceConnection))
             {
                 cmd.ExecuteNonQuery();
             }
             using (SqliteCommand cmd = new SqliteCommand("update Versions set database = '8.0.0.0' where platform = 'PC'", InstanceConnection))
             {
                 cmd.ExecuteNonQuery();
             }
         }
     }
     catch (Exception ex)
     {
         UIHelpers.ShowMessage($"Error upgrading database. Error is :{ex.Message}", "FTAnalyzer");
     }
 }