public ActionResult FetchImage(string data) { // Authenticate first if (!Auth()) { return(CheckInMessage.createErrorReturn("Authentication failed, please try again", CheckInMessage.API_ERROR_INVALID_CREDENTIALS)); } CheckInMessage dataIn = CheckInMessage.createFromString(data); CheckInFetchImage cifi = JsonConvert.DeserializeObject <CheckInFetchImage>(dataIn.data); CheckInMessage br = new CheckInMessage(); if (cifi.id == 0) { return(br.setData("The ID for the person cannot be set to zero")); } br.data = "The picture was not found."; Person person = CurrentDatabase.People.SingleOrDefault(pp => pp.PeopleId == cifi.id); if (person == null || person.PictureId == null) { return(br); } Image image = null; switch (cifi.size) { case 0: // 50 x 50 image = CurrentImageDatabase.Images.SingleOrDefault(i => i.Id == person.Picture.ThumbId); break; case 1: // 120 x 120 image = CurrentImageDatabase.Images.SingleOrDefault(i => i.Id == person.Picture.SmallId); break; case 2: // 320 x 400 image = CurrentImageDatabase.Images.SingleOrDefault(i => i.Id == person.Picture.MediumId); break; case 3: // 570 x 800 image = CurrentImageDatabase.Images.SingleOrDefault(i => i.Id == person.Picture.LargeId); break; } if (image == null) { return(br); } br.data = Convert.ToBase64String(image.Bits); br.setNoError(); br.count = 1; return(br); }