public async Task <IActionResult> Index(string tinyCode) { TinyActionResult <Url> res = new TinyActionResult <Url>(); res = await _urlService.GetByIdAsync(tinyCode, true); if (res.IsSuccess) { return(Redirect(res.Data.SourceUrl)); } else { return(View("404")); } }
public async Task <TinyActionResult <Url> > InsertAsync(string MainUrl) { TinyActionResult <Url> res = new TinyActionResult <Url>(); res.Data = null; res.IsSuccess = false; try { if (Helper.IsValidURL(MainUrl)) { //you can use your algorithm to generate uniqe code string generateCode = Guid.NewGuid().ToString(); Url u = new Url() { TinyCode = generateCode, SourceUrl = MainUrl }; await _dbContext.AddAsync(u); var dbRes = await _dbContext.SaveChangesAsync(); if (dbRes > 0) { res.Data = u; res.Message = Messages.SuccessfullyAdd; res.IsSuccess = true; } else { res.Message = Messages.Error; } } else { res.Message = Messages.NotValidUrl; } return(res); } catch (Exception ex) { //Log res.Message = ex.Message; return(res); } }
public async Task <TinyActionResult <Url> > GetByIdAsync(string TinyCode, bool doHit) { TinyActionResult <Url> res = new TinyActionResult <Url>(); res.Data = null; res.IsSuccess = false; try { var TinyObj = await _dbContext.Urls.Where(o => o.TinyCode == TinyCode).SingleOrDefaultAsync(); if (TinyObj != null) { res.Data = TinyObj; res.IsSuccess = true; res.Message = Messages.SuccessfullyFind; if (doHit) { try { var item = _dbContext.Urls.Where(o => o.TinyCode == TinyCode).SingleOrDefault(); item.Hit++; await _dbContext.SaveChangesAsync(); } catch (Exception ex) { //Log throw; } } } else { res.Message = Messages.NoItemFound; } return(res); } catch (Exception ex) { //Log res.Data = null; res.IsSuccess = false; res.Message = ex.Message; return(res); } }