Example #1
0
        public ActionResult AddPerson(string data)
        {
            if (!Auth())
            {
                return(Message.createErrorReturn("Authentication failed, please try again", Message.API_ERROR_INVALID_CREDENTIALS));
            }

            Message message = Message.createFromString(data);
            Person  person  = JsonConvert.DeserializeObject <Person>(message.data);

            person.clean();

            // Create or Edit Family
            CmsData.Family f = person.familyID > 0 ? CurrentDatabase.Families.First(fam => fam.FamilyId == person.familyID) : new CmsData.Family();
            person.fillFamily(f);

            if (person.familyID == 0)
            {
                CurrentDatabase.Families.InsertOnSubmit(f);
            }

            // Create Person
            CmsData.Person p = new CmsData.Person();
            p.CreatedDate    = Util.Now;
            p.CreatedBy      = Util.UserId;
            p.MemberStatusId = CmsData.Codes.MemberStatusCode.JustAdded;
            p.AddressTypeId  = 10;
            p.OriginId       = CmsData.Codes.OriginCode.Visit;
            p.EntryPoint     = getCheckInEntryPointID();
            p.CampusId       = person.campus > 0 ? person.campus : (int?)null;
            p.Name           = "";

            person.fillPerson(p);

            // Calculate position before submitting changes so they aren't part of the calculation
            using (var db = new SqlConnection(Util.ConnectionString)) {
                p.PositionInFamilyId = person.computePositionInFamily(db);
            }

            // p.PositionInFamilyId = CurrentDatabase.ComputePositionInFamily( person.getAge(),
            //                                                                                      person.maritalStatusID == CmsData.Codes.MaritalStatusCode.Married, f.FamilyId ) ?? CmsData.Codes.PositionInFamily.PrimaryAdult;

            f.People.Add(p);

            CurrentDatabase.SubmitChanges();

            AddEditPersonResults results = new AddEditPersonResults();

            results.familyID   = f.FamilyId;
            results.peopleID   = p.PeopleId;
            results.positionID = p.PositionInFamilyId;

            Message response = new Message();

            response.setNoError();
            response.count = 1;
            response.data  = SerializeJSON(results);

            return(response);
        }
Example #2
0
        public void fillPerson(CmsData.Person person)
        {
            person.FirstName = firstName;
            person.LastName  = lastName;
            person.NickName  = goesBy;
            person.AltName   = altName;

            if (birthday != null)
            {
                person.BirthDay   = birthday.Value.Day;
                person.BirthMonth = birthday.Value.Month;
                person.BirthYear  = birthday.Value.Year;
            }

            person.GenderId        = genderID;
            person.MaritalStatusId = maritalStatusID;

            person.FixTitle();

            person.EmailAddress = primaryEmail;
            person.HomePhone    = homePhone;
            person.WorkPhone    = workPhone;
            person.CellPhone    = mobilePhone;

            person.SetRecReg().MedicalDescription = allergies;

            person.SetRecReg().Emcontact = emergencyName;
            person.SetRecReg().Emphone   = emergencyPhone.Truncate(50);

            person.SetRecReg().ActiveInAnotherChurch = !string.IsNullOrEmpty(church);
            person.OtherPreviousChurch = church;
        }
Example #3
0
 public Update(CmsData.Person p)
 {
     person = p;
     family = p.Family;
     sb     = new List <ChangeDetail>();
     fsb    = new List <ChangeDetail>();
 }
Example #4
0
        public ActionResult GetPerson(string data)
        {
            // Authenticate first
            if (!Auth())
            {
                return(Message.createErrorReturn("Authentication failed, please try again", Message.API_ERROR_INVALID_CREDENTIALS));
            }

            Message message = Message.createFromString(data);

            CmsData.Person p = CurrentDatabase.LoadPersonById(message.id);

            if (p == null)
            {
                return(Message.createErrorReturn("Person not found", Message.API_ERROR_PERSON_NOT_FOUND));
            }

            Person person = new Person();

            person.populate(p);

            Message response = new Message();

            response.setNoError();
            response.count = 1;
            response.data  = SerializeJSON(person);

            return(response);
        }
Example #5
0
 public Update(CmsData.Person p)
 {
     person = p;
     family = p.Family;
     sb     = new StringBuilder();
     fsb    = new StringBuilder();
 }
Example #6
0
        public ActionResult GroupSearch(string data)
        {
            if (!Auth())
            {
                return(Message.createErrorReturn("Authentication failed, please try again", Message.API_ERROR_INVALID_CREDENTIALS));
            }

            Message     message = Message.createFromString(data);
            GroupSearch search  = JsonConvert.DeserializeObject <GroupSearch>(message.data);

            CmsData.Person person = (from p in CurrentDatabase.People
                                     where p.PeopleId == search.peopleID
                                     select p).SingleOrDefault();

            if (person == null)
            {
                return(Message.createErrorReturn("Person not found", Message.API_ERROR_PERSON_NOT_FOUND));
            }

            CmsData.DbUtil.LogActivity($"Check-In Group Search: {person.PeopleId}: {person.Name}");

            List <Group> groups;

            using (var db = new SqlConnection(Util.ConnectionString)) {
                groups = Group.forGroupFinder(db, person.BirthDate, search.campusID, search.dayID, search.showAll ? 1 : 0);
            }

            // List<Group> groups = (from org in CurrentDatabase.Organizations
            //                          from schedule in CurrentDatabase.OrgSchedules.Where( sc => sc.OrganizationId == org.OrganizationId ).DefaultIfEmpty()
            //                          let birthdayStart = org.BirthDayStart ?? DateTime.MaxValue
            //                          where (org.SuspendCheckin ?? false) == false || search.showAll
            //                          where person.BirthDate == null || person.BirthDate <= org.BirthDayEnd || org.BirthDayEnd == null || search.showAll
            //                          where person.BirthDate == null || person.BirthDate >= org.BirthDayStart || org.BirthDayStart == null || search.showAll
            //                          where org.CanSelfCheckin != null && org.CanSelfCheckin == true
            //                          where (org.ClassFilled ?? false) == false
            //                          where (org.CampusId == null && org.AllowNonCampusCheckIn == true) || org.CampusId == search.campusID || search.campusID == 0
            //                          where org.OrganizationStatusId == CmsData.Codes.OrgStatusCode.Active
            //                          orderby schedule.SchedTime.Value.TimeOfDay, birthdayStart, org.OrganizationName
            //                          select new Group
            //                          {
            //                              id = org.OrganizationId,
            //                              leaderName = org.LeaderName ?? "",
            //                              name = org.OrganizationName ?? "",
            //                              date = schedule.SchedTime,
            //                              scheduleID = schedule.Id,
            //                              birthdayStart = org.BirthDayStart,
            //                              birthdayEnd = org.BirthDayEnd,
            //                              location = org.Location ?? "",
            //                              allowOverlap = org.AllowAttendOverlap
            //                          }).ToList();

            Message response = new Message();

            response.setNoError();
            response.data = SerializeJSON(groups);

            return(response);
        }
Example #7
0
        public void load()
        {
            person = CmsData.DbUtil.Db.People.FirstOrDefault(p => p.PeopleId == peopleID);
            if (person == null)
            {
                return;
            }

            head   = person.Family.HeadOfHousehold;
            spouse = person.Family.HeadOfHouseholdSpouse;

            foreach (AttendanceGroup group in groups)
            {
                group.load(peopleID);
            }
        }
Example #8
0
        private void loadPicture()
        {
            CmsData.Person person = CmsData.DbUtil.Db.People.SingleOrDefault(p => p.PeopleId == id);

            if (person == null || person.Picture == null)
            {
                return;
            }

            ImageData.Image image = ImageData.DbUtil.Db.Images.SingleOrDefault(i => i.Id == person.Picture.SmallId);

            if (image != null)
            {
                picture = Convert.ToBase64String(image.Bits);
            }
        }
Example #9
0
        public ActionResult EditPerson(string data)
        {
            // Authenticate first
            if (!Auth())
            {
                return(Message.createErrorReturn("Authentication failed, please try again", Message.API_ERROR_INVALID_CREDENTIALS));
            }

            Message message = Message.createFromString(data);
            Person  person  = JsonConvert.DeserializeObject <Person>(message.data);

            person.clean();

            CmsData.Person p = CurrentDatabase.LoadPersonById(person.id);

            if (p == null)
            {
                return(Message.createErrorReturn("Person not found", Message.API_ERROR_PERSON_NOT_FOUND));
            }

            CmsData.Family f = CurrentDatabase.Families.First(fam => fam.FamilyId == p.FamilyId);

            person.fillPerson(p);
            person.fillFamily(f);

            CurrentDatabase.SubmitChanges();

            AddEditPersonResults results = new AddEditPersonResults();

            results.familyID   = f.FamilyId;
            results.peopleID   = p.PeopleId;
            results.positionID = p.PositionInFamilyId;

            Message response = new Message();

            response.setNoError();
            response.count = 1;
            response.data  = SerializeJSON(results);

            return(response);
        }
Example #10
0
        public ActionResult Barcode(string data)
        {
            // Authenticate first
            if (!Auth())
            {
                return(Message.createErrorReturn("Authentication failed, please try again", Message.API_ERROR_INVALID_CREDENTIALS));
            }

            Message message = Message.createFromString(data);

            CmsData.Person p = CurrentDatabase.LoadPersonById(message.id);

            if (p == null)
            {
                return(Message.createErrorReturn("Person not found", Message.API_ERROR_PERSON_NOT_FOUND));
            }

            Message response = new Message();

            // argBool: True = set, False = get
            if (message.argBool)
            {
                CmsData.PeopleExtra extra = p.GetExtraValue("PIN");
                extra.Data = message.data;

                CurrentDatabase.SubmitChanges();

                response.setNoError();
                response.count = 1;
            }
            else
            {
                response.setNoError();
                response.count = 1;
                response.data  = p.GetExtra("PIN");
            }

            return(response);
        }
Example #11
0
        private void JoinToOrg(int peopleID, int orgID)
        {
            CmsData.OrganizationMember om = CurrentDatabase.OrganizationMembers.SingleOrDefault(m => m.PeopleId == peopleID && m.OrganizationId == orgID);

            if (om == null)
            {
                om = CmsData.OrganizationMember.InsertOrgMembers(CurrentDatabase, orgID, peopleID, CmsData.Codes.MemberTypeCode.Member, DateTime.Today);

                CmsData.DbUtil.LogActivity($"Joined {om.PeopleId} to {om.Organization.OrganizationId} via Check-In desktop client", peopleid: om.PeopleId, orgid: om.OrganizationId);

                CurrentDatabase.SubmitChanges();

                // Check Entry Point and replace if Check-In
                CmsData.Person person = CurrentDatabase.People.FirstOrDefault(p => p.PeopleId == peopleID);

                if (person?.EntryPoint != null && person.EntryPoint.Code == "CHECKIN")
                {
                    person.EntryPoint = om.Organization.EntryPoint;

                    CurrentDatabase.SubmitChanges();
                }
            }
        }
Example #12
0
        public void populate(CmsData.Person p)
        {
            id       = p.PeopleId;
            familyID = p.FamilyId;

            firstName = p.FirstName ?? "";
            lastName  = p.LastName ?? "";

            goesBy  = p.NickName ?? "";
            altName = p.AltName ?? "";

            genderID        = p.GenderId;
            maritalStatusID = p.MaritalStatus.Id;

            birthday = p.BirthDate;

            primaryEmail = p.EmailAddress ?? "";
            homePhone    = p.HomePhone.FmtFone();
            workPhone    = p.WorkPhone.FmtFone();
            mobilePhone  = p.CellPhone.FmtFone();

            address  = p.Family.AddressLineOne ?? "";
            address2 = p.Family.AddressLineTwo ?? "";
            city     = p.Family.CityName ?? "";
            state    = p.Family.StateCode ?? "";
            zipCode  = p.Family.ZipCode.FmtZip() ?? "";

            country = p.PrimaryCountry;

            church = p.OtherPreviousChurch;

            allergies = p.SetRecReg().MedicalDescription ?? "";

            emergencyName  = p.SetRecReg().Emcontact ?? "";
            emergencyPhone = p.SetRecReg().Emphone ?? "";
        }
Example #13
0
 public Update(CmsData.Person p)
 {
     person = p;
     family = p.Family;
     sb = new List<ChangeDetail>();
     fsb = new List<ChangeDetail>();
 }
Example #14
0
 public Update(CmsData.Person p)
 {
     person = p;
     family = p.Family;
     sb = new StringBuilder();
     fsb = new StringBuilder();
 }