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); }
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);
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);
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 { } } } }