public async Task<Response> CreateAsync(UrlModel item) { var returnValue = new Response(); try { using (var dc = _conn.GetContext()) { var localobject = Mapper.Map<urls>(item); dc.urls.Add(localobject); await dc.SaveChangesAsync(); var resultSet = Mapper.Map<UrlModel>(localobject); returnValue.Model = resultSet; } } catch (Exception e) { // Log exception and compose Error message _logger.LogError("Create URL Record Error : ", e); returnValue.Succeeded = false; returnValue.Errors.Add("Unexpected error occurred saving the url."); } return returnValue; }
public async Task<Response> RetrieveByUrlAsync(string url) { var returnValue = new Response(); try { using (var dc = _conn.GetContext()) { var retrivedObject = await dc.urls.FirstOrDefaultAsync(a => a.actualUrl.Equals(url)); var resultSet = Mapper.Map<UrlModel>(retrivedObject); returnValue.Model = resultSet; } } catch (Exception e) { // Log exception and compose Error message _logger.LogError("Retrieve URL by Actual Url Error : ", e); returnValue.Succeeded = false; returnValue.Errors.Add("Unexpected error occurred finding the url."); } return returnValue; }
public async Task<Response> RetrieveAsync(int id) { var returnValue = new Response(); try { using (var dc = _conn.GetContext()) { var retrivedObject = await dc.urls.FindAsync(id); var resultSet = Mapper.Map<UrlModel>(retrivedObject); returnValue.Model = resultSet; } } catch (Exception e) { // Log exception and compose Error message _logger.LogError("Retrieve URL Error : ", e); returnValue.Succeeded = false; returnValue.Errors.Add("Unexpected error occurred retrieving the url."); } return returnValue; }
/// <summary> /// Helper method to append create short url /// </summary> /// <param name="response">Response object with UrlModel</param> /// <returns>UrlModel in Response Object</returns> private Response ComposeShortUrlModel(Response response) { var updatedUrl = (UrlModel)response.Model; updatedUrl.ShortUrl = HostUrl + _conversionService.LongToBase62String(updatedUrl.Id); response.Model = updatedUrl; return response; }