public bool ValidateHousehold()
        {
            // TODO: More "cheatable" char checks or find std regex
            var validateableName = HouseholdName.Replace(" ", "");

            if (validateableName.Equals(string.Empty))
            {
                ApplicationInstanceData.App.MainPage.DisplayAlert(
                    ApplicationInstanceData.SelectedLocalization.Translations[@"Error"],
                    ApplicationInstanceData.SelectedLocalization.Translations[@"ErrorHouseholdNameCanNotBeBlank"],
                    ApplicationInstanceData.SelectedLocalization.Translations[@"OK"]);
                return(false);
            }
            return(true);
        }
        public string GenerateUpdateJsonFromObject(Household updateFrom)
        {
            // form the json (determine the fields that need to be updated)
            var sb     = new StringBuilder();
            var sw     = new StringWriter(sb);
            var writer = new JsonTextWriter(sw)
            {
                Formatting = Formatting.None
            };

            writer.WriteStartObject();
            writer.WritePropertyName(@"household");
            writer.WriteStartObject();

            if (!HouseholdName.Equals(updateFrom.HouseholdName))
            {
                writer.WritePropertyName("name");
                writer.WriteValue(updateFrom.HouseholdName);
            }

            if (!IntakeDate.Equals(updateFrom.IntakeDate))
            {
                writer.WritePropertyName("intake_date");
                writer.WriteValue(updateFrom.IntakeDate.ToString("yyyy-MM-dd"));
            }

            if (!AddressLine1.Equals(updateFrom.AddressLine1))
            {
                writer.WritePropertyName("address_line_1");
                writer.WriteValue(updateFrom.AddressLine1);
            }

            if (!AddressLine2.Equals(updateFrom.AddressLine2))
            {
                writer.WritePropertyName("address_line_2");
                writer.WriteValue(updateFrom.AddressLine2);
            }

            if (!PostalCode.Equals(updateFrom.PostalCode))
            {
                writer.WritePropertyName("postal_code");
                writer.WriteValue(updateFrom.PostalCode);
            }

            if (!DependentLocality.Equals(updateFrom.DependentLocality))
            {
                writer.WritePropertyName("dependent_locality");
                writer.WriteValue(updateFrom.DependentLocality);
            }

            if (!Locality.Equals(updateFrom.Locality))
            {
                writer.WritePropertyName("locality");
                writer.WriteValue(updateFrom.Locality);
            }

            if (!AdminvArea.Equals(updateFrom.AdminvArea))
            {
                writer.WritePropertyName("adminv_area");
                writer.WriteValue(updateFrom.AdminvArea);
            }

            if (!DependentAdminvArea.Equals(updateFrom.DependentAdminvArea))
            {
                writer.WritePropertyName("dependent_adminv_area");
                writer.WriteValue(updateFrom.DependentAdminvArea);
            }

            if (!Country.Equals(updateFrom.Country))
            {
                writer.WritePropertyName("country");
                writer.WriteValue(updateFrom.Country);
            }

            if (!AddressInfo.Equals(updateFrom.AddressInfo))
            {
                writer.WritePropertyName("address_info");
                writer.WriteValue(updateFrom.AddressInfo);
            }

            if (!GpsLatitude.Equals(updateFrom.GpsLatitude))
            {
                writer.WritePropertyName("latitude");
                writer.WriteValue(updateFrom.GpsLatitude ?? null);
            }

            if (!GpsLongitude.Equals(updateFrom.GpsLongitude))
            {
                writer.WritePropertyName("longitude");
                writer.WriteValue(updateFrom.GpsLongitude ?? null);
            }

            if (!GpsPositionAccuracy.Equals(updateFrom.GpsPositionAccuracy))
            {
                writer.WritePropertyName("position_accuracy");
                writer.WriteValue(updateFrom.GpsPositionAccuracy ?? null);
            }

            if (!GpsAltitude.Equals(updateFrom.GpsAltitude))
            {
                writer.WritePropertyName("altitude");
                writer.WriteValue(updateFrom.GpsAltitude ?? null);
            }

            if (!GpsAltitudeAccuracy.Equals(updateFrom.GpsAltitudeAccuracy))
            {
                writer.WritePropertyName("altitude_accuracy");
                writer.WriteValue(updateFrom.GpsAltitudeAccuracy ?? null);
            }

            if (!GpsHeading.Equals(updateFrom.GpsHeading))
            {
                writer.WritePropertyName("heading");
                writer.WriteValue(updateFrom.GpsHeading ?? null);
            }

            if (!GpsSpeed.Equals(updateFrom.GpsSpeed))
            {
                writer.WritePropertyName("speed");
                writer.WriteValue(updateFrom.GpsSpeed ?? null);
            }

            if (!GpsPositionTime.Equals(updateFrom.GpsPositionTime))
            {
                writer.WritePropertyName("gps_recorded_at");
                writer.WriteValue(updateFrom.GpsPositionTime ?? null);
            }

            writer.WriteEndObject();
            writer.WriteEndObject();
            return(sw.ToString());
        }
 public bool GetObjectNeedsUpate(Household checkUpdateFrom)
 {
     if (!HouseholdName.Equals(checkUpdateFrom.HouseholdName))
     {
         return(true);
     }
     if (!IntakeDate.Equals(checkUpdateFrom.IntakeDate))
     {
         return(true);
     }
     if (!AddressLine1.Equals(checkUpdateFrom.AddressLine1))
     {
         return(true);
     }
     if (!AddressLine2.Equals(checkUpdateFrom.AddressLine2))
     {
         return(true);
     }
     if (!PostalCode.Equals(checkUpdateFrom.PostalCode))
     {
         return(true);
     }
     if (!DependentLocality.Equals(checkUpdateFrom.DependentLocality))
     {
         return(true);
     }
     if (!Locality.Equals(checkUpdateFrom.Locality))
     {
         return(true);
     }
     if (!AdminvArea.Equals(checkUpdateFrom.AdminvArea))
     {
         return(true);
     }
     if (!DependentAdminvArea.Equals(checkUpdateFrom.DependentAdminvArea))
     {
         return(true);
     }
     if (!Country.Equals(checkUpdateFrom.Country))
     {
         return(true);
     }
     if (!AddressInfo.Equals(checkUpdateFrom.AddressInfo))
     {
         return(true);
     }
     if (!GpsLatitude.Equals(checkUpdateFrom.GpsLatitude))
     {
         return(true);
     }
     if (!GpsLongitude.Equals(checkUpdateFrom.GpsLongitude))
     {
         return(true);
     }
     if (!GpsPositionAccuracy.Equals(checkUpdateFrom.GpsPositionAccuracy))
     {
         return(true);
     }
     if (!GpsAltitude.Equals(checkUpdateFrom.GpsAltitude))
     {
         return(true);
     }
     if (!GpsAltitudeAccuracy.Equals(checkUpdateFrom.GpsAltitudeAccuracy))
     {
         return(true);
     }
     if (!GpsHeading.Equals(checkUpdateFrom.GpsHeading))
     {
         return(true);
     }
     if (!GpsSpeed.Equals(checkUpdateFrom.GpsSpeed))
     {
         return(true);
     }
     if (!GpsPositionTime.Equals(checkUpdateFrom.GpsPositionTime))
     {
         return(true);
     }
     return(false);
 }