Example #1
0
        public ActionResult <string> Get()
        {
            var url        = GetReqParam("url");
            var host       = this.Request.Host.ToString();
            var hostPrefix = Request.IsHttps ? "https://" : "http://";

            if (url.IsNotNullOrEmpty())
            {
                var uow  = new UnitOfWork();
                var _url = new XPQuery <UrlShort>(uow).Where(x => x.Url == url).FirstOrDefault();
                if (_url.IsNull())
                {
                    _url = new UrlShort(uow)
                    {
                        Url      = url,
                        ShortUrl = GetShortUrl(uow)
                    };
                    _url.Save();
                    uow.CommitChanges();
                }

                return($"{hostPrefix}{host}/{_url.ShortUrl}");
            }
            return(url);
        }
Example #2
0
        public override object Import(string zipFilePath, UnitOfWork uow)
        {
            if (File.Exists(zipFilePath))
            {
                var fileName = ExtractAndGetFirstArchiveItemFilePath(zipFilePath);
                try {
                    using (var conn = new SqliteConnection($"DataSource=\"{fileName}\"")) {
                        SQLitePCL.Batteries.Init();
                        conn.Open();

                        var command = conn.CreateCommand();
                        command.CommandText = @"SELECT book_number, short_name, long_name, book_color FROM books_all";

                        using (var reader = command.ExecuteReader()) {
                            while (reader.Read())
                            {
                                var number   = reader.GetInt32(0);
                                var shortcut = reader.GetString(1);
                                var name     = reader.GetString(2);
                                var title    = reader.GetString(3);
                                var color    = reader.GetString(4);
                                var status   = GetBookStatus(uow, GetPart(number), GetCanon(number));
                                var q        = new XPQuery <BookBase>(uow).Where(x => x.NumberOfBook == number).FirstOrDefault();
                                if (q.IsNull())
                                {
                                    var book = new BookBase(uow)
                                    {
                                        NumberOfBook = number,
                                        BookName     = name,
                                        BookShortcut = shortcut,
                                        BookTitle    = title,
                                        Color        = color,
                                        Status       = status
                                    };
                                    book.Save();
                                    uow.CommitChanges();
                                    uow.ReloadChangedObjects();
                                }
                            }
                        }
                        conn.Close();
                    }
                }
                finally {
                    try { File.Delete(fileName); } catch { }
                }
            }
            return(default);
Example #3
0
        private async Task <Stream> CreateStream(string queryString)
        {
            Book book;
            var  paramsTable = queryString.Split(',');

            if (paramsTable.Length == 2)
            {
                var translationName = paramsTable[0];
                var bookNumber      = paramsTable[1].ToInt();

                var uow = new UnitOfWork();

                var trans = new XPQuery <Translation>(uow).Where(x => !x.Hidden && x.Name == translationName).FirstOrDefault();
                if (trans.IsNull() && translationName.EndsWith(" "))
                {
                    translationName = translationName.Trim() + "+";
                    trans           = new XPQuery <Translation>(uow).Where(x => x.Name == translationName).FirstOrDefault();
                }
                if (trans.IsNull())
                {
                    return(default);
Example #4
0
        private async Task _Import(string zipFilePath, UnitOfWork uow)
        {
            if (File.Exists(zipFilePath))
            {
                var controller = new TranslatorController();
                var fileName   = ExtractAndGetFirstArchiveItemFilePath(zipFilePath);
                try {
                    using (var conn = new SqliteConnection($"DataSource=\"{fileName}\"")) {
                        SQLitePCL.Batteries.Init();
                        conn.Open();

                        var command = conn.CreateCommand();
                        var sql     = @"SELECT topic, lexeme, transliteration, pronunciation, short_definition, definition FROM dictionary WHERE CAST(substr(topic,2) as INTEGER) > 4031 AND topic like ""G%""";
                        command.CommandText = sql; //@"SELECT topic, lexeme, transliteration, pronunciation, short_definition, definition FROM dictionary";

                        using (var reader = command.ExecuteReader()) {
                            while (reader.Read())
                            {
                                var topic           = reader.GetString(0);
                                var lexeme          = reader.GetString(1);
                                var transliteration = reader.GetString(2);
                                var pronunciacion   = reader.GetString(3);
                                var shortDefinition = reader.GetString(4);
                                var definition      = reader.GetString(5);

                                var lang  = topic.StartsWith("H") ? Language.Hebrew : Language.Greek;
                                var _code = topic.Substring(1);
                                var code  = Convert.ToInt32(_code);

                                var short_definition_translation = await GetTranslation(controller, shortDefinition);

                                var definition_translation = await GetTranslation(controller, definition);

                                var item = new XPQuery <StrongCode>(uow).Where(x => x.Lang == lang && x.Code == code).FirstOrDefault();
                                if (item.IsNull())
                                {
                                    item = new StrongCode(uow)
                                    {
                                        Code            = code,
                                        Definition      = definition_translation,
                                        Lang            = lang,
                                        Pronunciation   = pronunciacion,
                                        ShortDefinition = short_definition_translation,
                                        SourceWord      = lexeme,
                                        Transliteration = transliteration
                                    };
                                }
                                else
                                {
                                    item.Definition      = definition_translation;
                                    item.Pronunciation   = pronunciacion;
                                    item.ShortDefinition = short_definition_translation;
                                    item.SourceWord      = lexeme;
                                    item.Transliteration = transliteration;
                                }

                                item.Save();
                            }
                        }

                        conn.Close();
                    }
                }
                finally {
                    try { File.Delete(fileName); } catch { }
                }
            }
        }