public HttpResponseMessage Patch(DateTime diaryid, int id, [FromBody] DiaryEntryModel model) { try { var entity = TheRepo.GetDiaryEntry(_identityService.CurrentUser, diaryid, id); if (entity == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } var parsedValue = TheModelFactory.Parse(model); if (parsedValue == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } if (entity.Quantity != parsedValue.Quantity) { entity.Quantity = parsedValue.Quantity; if (TheRepo.SaveAll()) { return(Request.CreateResponse(HttpStatusCode.OK)); } } return(Request.CreateResponse(HttpStatusCode.BadRequest)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }
public IEnumerable <MeasureModel> Get(int foodid) { var results = TheRepo.GetMeasuresForFood(foodid) .ToList() .Select(m => TheModelFactory.Create(m)); return(results); }
public IEnumerable <DiaryEntryModel> Get(DateTime diaryid) { var results = TheRepo.GetDiaryEntries(_identityService.CurrentUser, diaryid.Date) .ToList() .Select(e => TheModelFactory.Create(e)); return(results); }
public MeasureModel Get(int foodid, int id) { var results = TheRepo.GetMeasure(id); if (results.Food.Id == foodid) { return(TheModelFactory.Create(results)); } return(null); }
public HttpResponseMessage Get(DateTime diaryid, int id) { var result = TheRepo.GetDiaryEntry(_identityService.CurrentUser, diaryid.Date, id); if (result == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } return(Request.CreateResponse(HttpStatusCode.OK, TheModelFactory.Create(result))); }
public IHttpActionResult Get() { var results = new { NumFoods = TheRepo.GetAllFoods().Count(), NumUsers = TheRepo.GetApiUsers().Count() }; return(Ok(results)); }
public IEnumerable <DiaryModel> Get() { var username = _identityService.CurrentUser; var results = TheRepo.GetDiaries(username) .OrderByDescending(d => d.CurrentDate) .Take(10) .ToList() .Select(d => TheModelFactory.Create(d)); return(results); }
public IHttpActionResult Get(string name) { if (name == "foods") { return(Ok(new { NumFoods = TheRepo.GetAllFoods().Count() })); } if (name == "users") { return(Ok(new { NumUsers = TheRepo.GetApiUsers().Count() })); } return(NotFound()); }
public IHttpActionResult Get(int id) { if (id == 1) { return(Ok(new { NumFoods = TheRepo.GetAllFoods().Count() })); } if (id == 2) { return(Ok(new { NumUsers = TheRepo.GetApiUsers().Count() })); } return(NotFound()); }
public object Get(DateTime diaryid) { try { var diary = TheRepo.GetDiary(_identityService.CurrentUser, diaryid); if (diaryid == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } return(TheModelFactory.CreateSummary(diary)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }
public HttpResponseMessage Post([FromBody] TokenRequestModel model) { try { var user = TheRepo.GetApiUsers().Where(u => u.AppId == model.ApiKey).FirstOrDefault(); if (user != null) { var secret = user.Secret; var key = Convert.FromBase64String(secret); var provider = new System.Security.Cryptography.HMACSHA256(key); var hash = provider.ComputeHash(Encoding.UTF8.GetBytes(user.AppId)); var signature = Convert.ToBase64String(hash); if (signature == model.Signature) { var rawTokenInfo = string.Concat(user.AppId + DateTime.UtcNow.ToString("d")); var rawTokenByte = Encoding.UTF8.GetBytes(rawTokenInfo); var token = provider.ComputeHash(rawTokenByte); var authToken = new AuthToken() { Token = Convert.ToBase64String(token), Expiration = DateTime.UtcNow.AddDays(7), ApiUser = user }; if (TheRepo.Insert(authToken) && TheRepo.SaveAll()) { return(Request.CreateResponse(HttpStatusCode.Created, TheModelFactory.Create(authToken))); } } } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } return(Request.CreateResponse(HttpStatusCode.BadRequest)); }
public HttpResponseMessage Delete(DateTime diaryid, int id) { try { if (TheRepo.GetDiaryEntries(_identityService.CurrentUser, diaryid).Any(e => e.Id == id) == false) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } if (TheRepo.DeleteDiaryEntry(id) && TheRepo.SaveAll()) { return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Could not save in the database")); } }
public object Get(bool includeMeasures = true, int page = 0) { IQueryable <Food> query; if (includeMeasures) { query = TheRepo.GetAllFoodsWithMeasures(); } else { query = TheRepo.GetAllFoods(); } var baseQuery = query. OrderBy(f => f.Description); var totalCount = baseQuery.Count(); var totalPages = Math.Ceiling((double)totalCount / PAGE_SIZE); var url = new UrlHelper(Request); var prevUrl = page > 0?url.Link("Food", new { page = page - 1 }):""; var nextUrl = page < totalPages - 1?url.Link("Food", new { page = page + 1 }):""; var results = baseQuery .Skip(PAGE_SIZE * page) .Take(PAGE_SIZE) .ToList() .Select(f => TheModelFactory.Create(f)); return(new { TotalCount = totalCount, TotalPages = totalPages, PrevPageUrl = prevUrl, NextPageUrl = nextUrl, Results = results }); }
public HttpResponseMessage Post(DateTime diaryid, [FromBody] DiaryEntryModel model) { try { var entity = TheModelFactory.Parse(model); if (entity == null) { Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Could not read diary entry in body"); } var diary = TheRepo.GetDiary(_identityService.CurrentUser, diaryid); if (diary == null) { Request.CreateResponse(HttpStatusCode.NotFound); } //Make sure it's not duplicate if (diary.Entries.Any(e => e.Measure.Id == entity.Measure.Id)) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Duplicate Measure not allowed")); } //Save the new Entry diary.Entries.Add(entity); if (TheRepo.SaveAll()) { return(Request.CreateResponse(HttpStatusCode.Created, TheModelFactory.Create(entity))); } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Could not save in the database")); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }
public IHttpActionResult Get(int foodid) { return(Versioned(TheModelFactory.Create(TheRepo.GetFood(foodid)), "V1")); // return new VersionedActionResult<FoodModel>(this.Request, "V2", TheModelFactory.Create(TheRepo.GetFood(foodid))); }