public ActionResult Create(Person person)
        {
            if (ModelState.IsValid)
            {
                db.People.Add(person);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.Family_Person = new SelectList(db.Families, "Id", "FamilyName", person.Family_Person);
            ViewBag.FamilyMemberType_Person = new SelectList(db.FamilyMemberTypes, "Id", "Name", person.FamilyMemberType_Person);
            return View(person);
        }
        public ActionResult Edit(int Id, Person person)
        {
            person.Id = Id;
            if (ModelState.IsValid)
            {
                db.People.Attach(person);
                var entry = db.Entry(person);
                entry.Property(e => e.Birthday).IsModified = true;
                entry.Property(e => e.Email).IsModified = true;
                entry.Property(e => e.EmergencyContact).IsModified = true;
                entry.Property(e => e.EmergencyContactPhone).IsModified = true;
                //entry.Reference(e => e.Family).= true;
                entry.Property(e => e.Family_Person).IsModified = true;
                //entry.Property(e => e.FamilyMemberType).IsModified = true;
                entry.Property(e => e.FamilyMemberType_Person).IsModified = true;
                entry.Property(e => e.FirstName).IsModified = true;
                entry.Property(e => e.Gender).IsModified = true;
                entry.Property(e => e.HomePhone).IsModified = true;
                entry.Property(e => e.InsuranceCompany).IsModified = true;
                entry.Property(e => e.InsurancePolicyNumber).IsModified = true;
                entry.Property(e => e.Is_Guest).IsModified = true;
                entry.Property(e => e.LastName).IsModified = true;
                entry.Property(e => e.MiddleName).IsModified = true;
                entry.Property(e => e.MobilePhone).IsModified = true;
                entry.Property(e => e.Needs_Adult).IsModified = true;
                entry.Property(e => e.Picture).IsModified = false;
                entry.Property(e => e.WorkPhone).IsModified = true;

                db.SaveChanges();
                TempData["Success"] = "Successfully saved person!";
                return RedirectToAction("Index");
            }
            ViewBag.Family_Person = new SelectList(db.Families, "Id", "FamilyName", person.Family_Person);
            ViewBag.FamilyMemberType_Person = new SelectList(db.FamilyMemberTypes, "Id", "Name", person.FamilyMemberType_Person);
            return View(person);
        }
 public ActionResult Edit(Person person)
 {
     if (ModelState.IsValid)
     {
         db.Entry(person).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     ViewBag.Family_Person = new SelectList(db.Families, "Id", "FamilyName", person.Family_Person);
     ViewBag.FamilyMemberType_Person = new SelectList(db.FamilyMemberTypes, "Id", "Name", person.FamilyMemberType_Person);
     return View(person);
 }
 public ActionResult AddCheckinGuest(int Id, int[] CheckinPeople, Person Person, HttpPostedFileBase picture, String canvasPicture)
 {
     PoolDataEntitiesConnection ctx = new PoolDataEntitiesConnection();
     var refPersonId = CheckinPeople[0];
     var refPerson = ctx.People.Single(p => p.Id == refPersonId);
     if(!Person.Is_Guest.HasValue){
         Person.Is_Guest = true;
     }
     Person.Family = refPerson.Family;
     var peopleList = CheckinPeople.ToList();
     if (picture != null && picture.ContentLength > 0)
     {
         try{
             var img = Image.FromStream(picture.InputStream);
             if (img.Height > 200 || img.Width > 200)
             {
                 Size size = new Size();
                 if(img.Size.Height > img.Size.Width){
                     size.Height = 200;
                     size.Width = (int)(img.Size.Width * (200.0 / img.Size.Height));
                 }else{
                     size.Width = 200;
                     size.Height = (int)(img.Size.Height * (200.0 / img.Size.Width));
                 }
                 img = new Bitmap(img, size);
             }
             var ms = new System.IO.MemoryStream();
             img.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
             Person.Picture = ms.ToArray();
         }catch(Exception e){
             ModelState.AddModelError("Person.Picture","Unknown error with image " + e.Message);
         }
     }
     else if (canvasPicture != null && canvasPicture.Length != 0)
     {
         try
         {
             var picBytes = Convert.FromBase64String(canvasPicture.Substring(canvasPicture.IndexOf("base64,") + 7));
             var memoryStream = new System.IO.MemoryStream(picBytes);
             //create image in order to convert to jpeg
             var img = Image.FromStream(memoryStream);
             var ms = new System.IO.MemoryStream();
             img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
             Person.Picture = ms.ToArray();
         }
         catch (Exception e)
         {
             ModelState.AddModelError("Picture", "Unknown error with image: " + e.Message);
         }
     }
     var viewModel = new GuestCheckinViewModel();
     if (ModelState.IsValid)
     {
         ctx.People.Add(Person);
         ctx.SaveChanges();
         peopleList.Add(Person.Id);
         viewModel.PersonIdList = peopleList.ToArray();
         viewModel.Person = new Person();
         TempData["success"] = "Added new guest";
         ModelState.Clear();
     }
     else
     {
         viewModel.PersonIdList = CheckinPeople;
         viewModel.Person = Person;
     }
     viewModel.Id = Id;
     if (ModelState.IsValid && Request.Form.AllKeys.Contains("checkin"))
     {
         return Checkin(Id, viewModel.PersonIdList);
     }else{
         return View("AddGuest", viewModel);
     }
 }