Пример #1
0
        /// <summary>
        /// Initializes a new instance of the DataViewModel class.
        /// </summary>
        public DataViewModel(MainViewModel parent, Family family)
        {
            _parent = parent;
            _family = family;

            FamilySubmitCommand = new RelayCommand(FamilySubmit, CanSubmitFamily);
            BackUpCommand = new RelayCommand(BackUpSelected);
            AddFamilyMemberCommand = new RelayCommand(AddFamilyMember);
            DeleteSelectedCommand = new RelayCommand(DeleteSelectedMember, CanDeleteSelected);

            if (_family.FamilyMembers.Count == 0)
            {
                // No default Family member, create them.
                _family.AddFamilyMember(new Person("", "", PersonType.Child, 0.0));
            }

            _selectedFamilyMember = _family.FamilyMembers[0];
        }
Пример #2
0
        /// <summary>
        /// Returns a list of all Families in the database.  Does not include associated
        /// family members
        /// </summary>
        /// <returns></returns>
        public List<Family> GetFamilies()
        {
            List<Family> families = new List<Family>();

            try
            {
                using (SqlCeConnection dbConnection = new SqlCeConnection(
                      "Data Source=\"SKDDatabase.sdf\""))
                {
                    dbConnection.Open();

                    SqlCeCommand getFamilyCommand = new SqlCeCommand(
                    @"SELECT * FROM family", dbConnection);

                    SqlCeDataReader dbFamilyReader = getFamilyCommand.ExecuteReader();

                    while (dbFamilyReader.Read())
                    {
                        Family family = new Family
                        {
                            FamilyNumber = dbFamilyReader.IsDBNull(0) ? (int?) null : dbFamilyReader.GetInt32(0),
                            AssignedTime = dbFamilyReader.IsDBNull(1) ? (DateTime?) null : dbFamilyReader.GetDateTime(1),
                            NoShow = (dbFamilyReader.IsDBNull(2) ? (bool?) null : dbFamilyReader.GetByte(2) != 0),
                            CheckinTime = dbFamilyReader.IsDBNull(3) ? (DateTime?) null : dbFamilyReader.GetDateTime(3),
                            EmployeeAssignedBy = dbFamilyReader.IsDBNull(4) ? null : dbFamilyReader.GetString(4),
                            Guid = dbFamilyReader.IsDBNull(5) ? (Guid?) null : dbFamilyReader.GetGuid(5),
                            Notes = dbFamilyReader.IsDBNull(6) ? null : dbFamilyReader.GetString(6)
                        };

                        SqlCeCommand getPeopleCommand = new SqlCeCommand(
                            @"SELECT * FROM people INNER JOIN family ON family.fam_id = people.fam_id WHERE family.fam_id = " + family.FamilyNumber, dbConnection);
                        SqlCeDataReader dbPeopleReader = getPeopleCommand.ExecuteReader();

                        while (dbPeopleReader.Read())
                        {
                            Person person = new Person
                            {
                                FamilyId = dbPeopleReader.IsDBNull(0) ? (int?) null : dbPeopleReader.GetInt32(0),
                                FirstName = dbPeopleReader.IsDBNull(1) ? null : dbPeopleReader.GetString(1),
                                LastName = dbPeopleReader.IsDBNull(3) ? null : dbPeopleReader.GetString(3),
                                PersonType = dbPeopleReader.IsDBNull(4) ? (PersonType?) null : (PersonType) dbPeopleReader.GetInt16(4),
                                Weight = dbPeopleReader.IsDBNull(5) ? (double?) null : dbPeopleReader.GetDouble(5),
                                Guid = dbPeopleReader.IsDBNull(6) ? (Guid?) null : dbPeopleReader.GetGuid(6),
                                Notes = dbPeopleReader.IsDBNull(7) ? null : dbPeopleReader.GetString(7)
                            };

                            family.AddFamilyMember(person);
                        }

                        families.Add(family);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Unexpected error:  " + e.Message);
            }

            return families;
        }
Пример #3
0
 public Family GetFamily(Person per)
 {
     if (!IsConnected) throw new NotConnectedException();
     try
     {
         ICheckinHandler db = CreateChannel(_factory);
         return db.GetFamily(per);
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
         throw;
     }
 }
Пример #4
0
 private void AddFamilyMember()
 {
     Person newMember = new Person("Member", "New", PersonType.Guest, _family.FamilyNumber);
     _family.AddFamilyMember(newMember);
     List<Person> newList = new List<Person>(_family.FamilyMembers);
     FamilyMembers = newList;
     SelectedFamilyMember = newMember;
      //   RaisePropertyChanged("FamilyMembers");
 }
Пример #5
0
 public void AddFamilyMember(Person newMember)
 {
     FamilyMembers.Add(newMember);
 }
 /// <summary>
 /// Initializes a new instance of the EditPersonDataViewModel class.
 /// </summary>
 public EditPersonDataViewModel(Person selectedFamilyMember)
 {
     _selectedFamilyMember = selectedFamilyMember;
 }
Пример #7
0
        private ReturnCode CheckInPerson(Person person, SqlCeConnection dbConnection)
        {
            ReturnCode status = ReturnCode.Success;

            try
            {
                SqlCeCommand checkinCommand = new SqlCeCommand();

                SqlCeParameter fname = new SqlCeParameter("@fnameVar", SqlDbType.NVarChar) {Value = person.FirstName};
                SqlCeParameter lname = new SqlCeParameter("@lnameVar", SqlDbType.NVarChar) {Value = person.LastName};
                SqlCeParameter type = new SqlCeParameter("@typeVar", SqlDbType.SmallInt)
                {
                    Value = person.PersonType
                };
                SqlCeParameter weight = new SqlCeParameter("@weightVar", SqlDbType.Float) {Value = person.Weight};
                SqlCeParameter notes = new SqlCeParameter("@notesVar", SqlDbType.NVarChar);

                if (person.Notes == null)
                {
                    notes.Value = DBNull.Value;
                }
                else
                {
                    notes.Value = person.Notes;
                }

                // notes.Value = (person.notes != null ? person.notes : "NULL");
                checkinCommand.Parameters.Add(fname);
                checkinCommand.Parameters.Add(lname);
                checkinCommand.Parameters.Add(type);
                checkinCommand.Parameters.Add(weight);
                checkinCommand.Parameters.Add(notes);

                // Determine if new person
                SqlCeCommand checkCommand = new SqlCeCommand
                {
                    CommandText = @"SELECT COUNT(guid) AS num FROM  people WHERE (guid = @varGuid)"
                };

                SqlCeParameter guid = new SqlCeParameter("@varGuid", SqlDbType.UniqueIdentifier) {Value = person.Guid};
                checkCommand.Parameters.Add(guid);
                checkCommand.Connection = dbConnection;
                checkCommand.ExecuteResultSet(ResultSetOptions.Scrollable);

                SqlCeDataReader dbRead = checkCommand.ExecuteReader();

                dbRead.Read();

                //  new person, need to insert into the table
                if (dbRead.GetInt32(0) == 0)
                {
                    checkinCommand.CommandText = @"INSERT INTO people (guid, fam_id, first_name, last_name, person_type, weight, notes) VALUES ( @varGuid, @famIdVar, @fnameVar, @lnameVar, @typeVar, @weightVar, @notesVar)";
                    SqlCeParameter famIdParam = new SqlCeParameter("@famIdVar", SqlDbType.Int) {Value = person.FamilyId};
                    checkinCommand.Parameters.Add(famIdParam);

                    SqlCeParameter varGuid = new SqlCeParameter("@varGuid", SqlDbType.UniqueIdentifier)
                    {
                        Value = person.Guid
                    };
                    checkinCommand.Parameters.Add(varGuid);
                }

                else //person exists in table, just update the row
                {
                    checkinCommand.CommandText = @"UPDATE       people SET first_name = @fnameVar, last_name = @lnameVar, person_type = @typeVar, weight = @weightVar, notes = @notesVar WHERE guid = @guidVar";
                    SqlCeParameter guidParam = new SqlCeParameter("@guidVar", SqlDbType.UniqueIdentifier)
                    {
                        Value = person.Guid
                    };
                    checkinCommand.Parameters.Add(guidParam);
                }

                checkinCommand.Connection = dbConnection;

                int rowsAffected = checkinCommand.ExecuteNonQuery();

                if (rowsAffected != 1)
                {
                    Console.WriteLine("More than 1 row affected by CheckInPerson");
                    status = ReturnCode.UnexpectedResults;
                }

                if (rowsAffected == 0)
                {
                    Console.WriteLine("No rows affected by CheckInPerson");
                    status = ReturnCode.UnexpectedResults;
                }
            }

            catch (Exception e)
            {
                Console.WriteLine("Unexpected error in CheckInPerson:  " + e.Message);
                status = ReturnCode.Fail;
            }

            return status;
        }
Пример #8
0
        public Family GetFamily(Person child)
        {
            List<Person> familyMembers = new List<Person>();
            Family retValue = new Family();
            try
            {
                using (SqlCeConnection dbConnection = new SqlCeConnection(
                       "Data Source=\"SKDDatabase.sdf\""))
                {
                    dbConnection.Open();

                    // Determine the family id from the childs GUID
                    SqlCeCommand checkCommand = new SqlCeCommand
                    {
                        CommandText = @"SELECT fam_id AS fam_id FROM  people WHERE (guid = @varGuid)"
                    };

                    SqlCeParameter guid = new SqlCeParameter("@varGuid", SqlDbType.UniqueIdentifier)
                    {
                        Value = child.Guid
                    };
                    checkCommand.Parameters.Add(guid);
                    checkCommand.Connection = dbConnection;
                    checkCommand.ExecuteResultSet(ResultSetOptions.Scrollable);

                    SqlCeDataReader dbRead = checkCommand.ExecuteReader();

                    dbRead.Read();

                    //  new person, need to insert into the table
                    int famNum = dbRead.GetInt32(0);

                    SqlCeCommand familyCommand = new SqlCeCommand(
                        @"SELECT        family.assigned_time, family.fam_id, people.first_name, people.last_name, people.person_type, people.weight,
                                                people.notes, people.guid
                          FROM          family INNER JOIN
                                                people ON family.fam_id = people.fam_id
                          WHERE			family.fam_id = " + famNum,
                          dbConnection);

                    SqlCeDataReader familyMemberReader = familyCommand.ExecuteReader();

                    while (familyMemberReader.Read())
                    {
                        if (retValue.AssignedTime == null)
                        {
                            if (!familyMemberReader.IsDBNull(0))
                            {
                                retValue.AssignedTime = familyMemberReader.GetDateTime(0);
                            }
                            retValue.FamilyNumber = familyMemberReader.GetInt32(1);
                            retValue.Guid = familyMemberReader.GetGuid(7);
                        }
                        Person familyMember = new Person(familyMemberReader.GetString(2), familyMemberReader.GetString(3),
                                                         (PersonType)familyMemberReader.GetInt16(4),
                                                         familyMemberReader.GetDouble(5))
                        {
                            FamilyId = familyMemberReader.GetInt32(1)
                        };

                        if (!familyMemberReader.IsDBNull(6))
                        {
                            familyMember.Notes = familyMemberReader.GetString(6);
                        }
                        familyMember.Guid = familyMemberReader.GetGuid(7);

                        familyMembers.Add(familyMember);
                    }

                    retValue.FamilyMembers = familyMembers;
                }
            }

            catch (Exception e)
            {
                Console.WriteLine("Unexpected error in GetFamily:  " + e.Message);
                return null;
            }

            return retValue;
        }
Пример #9
0
        public List<Person> GetChildrenNotCheckedIn()
        {
            List<Person> listOfChildren = new List<Person>();
            try
            {
                using (SqlCeConnection dbConnection = new SqlCeConnection(
                       "Data Source=\"SKDDatabase.sdf\""))
                {
                    dbConnection.Open();

                    SqlCeCommand childCommand = new SqlCeCommand(
                                @"SELECT        people.first_name, people.last_name, people.person_type, people.guid, family.fam_id
                                  FROM            family INNER JOIN
                                                         people ON family.fam_id = people.fam_id
                                  WHERE        (family.check_in_time IS NULL) AND (people.person_type = 0)",
                                dbConnection);
                    SqlCeDataReader childReader = childCommand.ExecuteReader();

                    while (childReader.Read())
                    {
                        Person child = new Person(childReader.GetString(0), childReader.GetString(1), (PersonType)childReader.GetInt16(2), (int?)childReader.GetInt32(4))
                        {
                            Guid = childReader.GetGuid(3)
                        };

                        listOfChildren.Add(child);
                    }
                }
            }

            catch (Exception e)
            {
                Console.WriteLine("Unexpected error in GetChildrenNotCheckedIn:  " + e.Message);
            }

            return listOfChildren;
        }
Пример #10
0
 public void NewChild()
 {
     Family newFam = new Family();
     Person firstPerson = new Person("Test", "Member", PersonType.Child, 0.0) {Guid = Guid.NewGuid()};
     newFam.AddFamilyMember(firstPerson);
     CurrentView = new DataViewModel(this, newFam);
 }
Пример #11
0
 public void EditChild(Person child)
 {
     CurrentView = new DataViewModel(this, FamilyDatabase.GetFamily(child));
 }