public ApiResponse <FindByIdCategoryRequest, Categories> Get(FindByIdCategoryRequest request) { var validate = _findByIdCategoryValidations.Validate(request); if (!validate.IsValid) { Log.Error(validate.ToString("")); return(new ApiResponse <FindByIdCategoryRequest, Categories>() { status = false, error_code = "validations_error", error_message = validate.ToString("~"), request = request }); } var response = _repository.FindById(request); Log.Information("Category returned..."); return(new ApiResponse <FindByIdCategoryRequest, Categories>() { status = true, request = request, response = response }); }
public Categories FindById(FindByIdCategoryRequest request) { int key = request.category_id; Categories category; string json; try { var categoryFromCache = _distibutedCache.Get(key.ToString()); if (categoryFromCache != null) { json = Encoding.UTF8.GetString(categoryFromCache); Log.Information(request.category_id + " getting from cache..."); return(JsonConvert.DeserializeObject <Categories>(json)); } else { category = _context.Categories.Where(w => w.category_id == request.category_id).FirstOrDefault(); json = JsonConvert.SerializeObject(category); categoryFromCache = Encoding.UTF8.GetBytes(json); var options = new DistributedCacheEntryOptions() .SetSlidingExpiration(TimeSpan.FromHours(1)) .SetAbsoluteExpiration(DateTime.Now.AddHours(2)); _distibutedCache.Set(key.ToString(), categoryFromCache, options); Log.Information(request.category_id + " added to cache..."); } } catch (Exception ex) { category = _context.Categories.Where(w => w.category_id == request.category_id).FirstOrDefault(); Log.Error(ex.Message); } return(category); }