public async Task <Tuple <bool, string> > InsertUrl(UrlShortenedModelDb model, ILogger logger) { try { logger.Log(LogLevel.Information, _INSERT_NEW_URL_TRACE); var collection = this._MongoDatabase.GetCollection <UrlShortenedModelDb>(this._MongoCollection); await collection.InsertOneAsync(model); return(new Tuple <bool, string>(true, model.short_code)); } catch (MongoWriteException ex) { logger.Log(LogLevel.Critical, ex, _INSERT_NEW_URL_TRACE); return(new Tuple <bool, string>(false, "")); } catch (Exception ex) { logger.Log(LogLevel.Critical, ex, _INSERT_NEW_URL_TRACE); return(new Tuple <bool, string>(false, "")); } }
public async Task<Tuple<bool,ResponsePostNewUrlModel>> GenerateShortUrl(string url) { try { this._Logger.Log(LogLevel.Information, _GENERATE_SHORT_URL_TRACE); var sizeCode = Convert.ToInt32(this._Configuration["SizeCode"].ToString()); var doc = new UrlShortenedModelDb() { url = url, obj = (int)OBJ_DOCUMENT.SHORT_URL, short_code = Tools.GetAlphanumericRandom(sizeCode), created_date = DateTime.UtcNow }; var result = await this._MongoTransaction.InsertUrl(doc, this._Logger); if(result.Item1) { var response = new ResponsePostNewUrlModel() { short_url = doc.short_code }; return new Tuple<bool, ResponsePostNewUrlModel>(true, response); } return new Tuple<bool, ResponsePostNewUrlModel>(false, null); } catch(Exception ex) { this._Logger.Log(LogLevel.Critical, ex, _GENERATE_SHORT_URL_TRACE); return new Tuple<bool, ResponsePostNewUrlModel>(false, null); } }