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);
        }