public static Person Add(CMSDataContext Db, bool SendNotices, Family fam, int position, Tag tag, string firstname, string nickname, string lastname, string dob, int MarriedCode, int gender, int originId, int? EntryPointId, bool testing = false) { var p = new Person(); p.CreatedDate = Util.Now; p.CreatedBy = Util.UserId; Db.People.InsertOnSubmit(p); p.PositionInFamilyId = position; p.AddressTypeId = 10; if (Util.HasValue(firstname)) p.FirstName = firstname.Trim().ToProper().Truncate(25); else p.FirstName = ""; if (Util.HasValue(nickname)) p.NickName = nickname.Trim().ToProper().Truncate(15); if (Util.HasValue(lastname)) p.LastName = lastname.Trim().ToProper().Truncate(30); else p.LastName = "?"; p.GenderId = gender; if (p.GenderId == 99) p.GenderId = 0; p.MaritalStatusId = MarriedCode; DateTime dt; if (Util.BirthDateValid(dob, out dt)) { if (dt.Year == Util.SignalNoYear) { p.BirthDay = dt.Day; p.BirthMonth = dt.Month; p.BirthYear = null; } else { while (dt.Year < 1900) dt = dt.AddYears(100); if (dt > Util.Now) dt = dt.AddYears(-100); p.BirthDay = dt.Day; p.BirthMonth = dt.Month; p.BirthYear = dt.Year; } if (p.GetAge() < 18 && MarriedCode == 0) p.MaritalStatusId = MaritalStatusCode.Single; } // I think this else statement is no longer necessary else if (DateTime.TryParse(dob, out dt)) { p.BirthDay = dt.Day; p.BirthMonth = dt.Month; if (Regex.IsMatch(dob, @"\d+[-/]\d+[-/]\d+")) { p.BirthYear = dt.Year; while (p.BirthYear < 1900) p.BirthYear += 100; if (p.GetAge() < 18 && MarriedCode == 0) p.MaritalStatusId = MaritalStatusCode.Single; } } p.MemberStatusId = MemberStatusCode.JustAdded; if (fam == null) { fam = new Family(); Db.Families.InsertOnSubmit(fam); p.Family = fam; } else fam.People.Add(p); if (tag != null) tag.PersonTags.Add(new TagPerson { Person = p }); p.OriginId = originId; p.EntryPointId = EntryPointId; p.FixTitle(); if(Db.Setting("ElectronicStatementDefault", "false").Equal("true")) p.ElectronicStatement = true; if (!testing) Db.SubmitChanges(); if (SendNotices) { if (Util.UserPeopleId.HasValue && Util.UserPeopleId.Value != Db.NewPeopleManagerId && HttpContext.Current.User.IsInRole("Access") && !HttpContext.Current.User.IsInRole("OrgMembersOnly") && !HttpContext.Current.User.IsInRole("OrgLeadersOnly")) Task.AddNewPerson(Db, p.PeopleId); else { var np = Db.GetNewPeopleManagers(); if (np != null) Db.Email(Util.SysFromEmail, np, $"Just Added Person on {Db.Host}", $"<a href='{Db.ServerLink("/Person2/" + p.PeopleId)}'>{p.Name}</a>"); } } return p; }
public ActionResult AddPerson(string data) { // Authenticate first var result = AuthenticateUser(); if (!result.IsValid) return AuthorizationError(result); // Check Role if (!CMSRoleProvider.provider.IsUserInRole(AccountModel.UserName2, "Attendance")) return BaseMessage.createErrorReturn("Attendance role is required to take attendance for organizations."); BaseMessage dataIn = BaseMessage.createFromString(data); MobilePostAddPerson mpap = JsonConvert.DeserializeObject<MobilePostAddPerson>(dataIn.data); mpap.clean(); var p = new Person(); p.CreatedDate = Util.Now; p.CreatedBy = Util.UserId; p.MemberStatusId = MemberStatusCode.JustAdded; p.AddressTypeId = 10; p.FirstName = mpap.firstName; p.LastName = mpap.lastName; p.Name = ""; if (mpap.goesBy.Length > 0) p.NickName = mpap.goesBy; if (mpap.birthday != null) { p.BirthDay = mpap.birthday.Value.Day; p.BirthMonth = mpap.birthday.Value.Month; p.BirthYear = mpap.birthday.Value.Year; } p.GenderId = mpap.genderID; p.MaritalStatusId = mpap.maritalStatusID; Family f; if (mpap.familyID > 0) { f = DbUtil.Db.Families.First(fam => fam.FamilyId == mpap.familyID); } else { f = new Family(); if (mpap.homePhone.Length > 0) f.HomePhone = mpap.homePhone; if (mpap.address.Length > 0) f.AddressLineOne = mpap.address; if (mpap.address2.Length > 0) f.AddressLineTwo = mpap.address2; if (mpap.city.Length > 0) f.CityName = mpap.city; if (mpap.state.Length > 0) f.StateCode = mpap.state; if (mpap.zipcode.Length > 0) f.ZipCode = mpap.zipcode; if (mpap.country.Length > 0) f.CountryName = mpap.country; DbUtil.Db.Families.InsertOnSubmit(f); } f.People.Add(p); p.PositionInFamilyId = PositionInFamily.Child; if (mpap.birthday != null && p.GetAge() >= 18) { if (f.People.Count(per => per.PositionInFamilyId == PositionInFamily.PrimaryAdult) < 2) p.PositionInFamilyId = PositionInFamily.PrimaryAdult; else p.PositionInFamilyId = PositionInFamily.SecondaryAdult; } p.OriginId = OriginCode.Visit; p.FixTitle(); if (mpap.eMail.Length > 0) p.EmailAddress = mpap.eMail; if (mpap.cellPhone.Length > 0) p.CellPhone = mpap.cellPhone; if (mpap.homePhone.Length > 0) p.HomePhone = mpap.homePhone; p.MaritalStatusId = mpap.maritalStatusID; p.GenderId = mpap.genderID; DbUtil.Db.SubmitChanges(); if (mpap.visitMeeting > 0) { var meeting = DbUtil.Db.Meetings.Single(mm => mm.MeetingId == mpap.visitMeeting); Attend.RecordAttendance(p.PeopleId, mpap.visitMeeting, true); DbUtil.Db.UpdateMeetingCounters(mpap.visitMeeting); p.CampusId = meeting.Organization.CampusId; DbUtil.Db.SubmitChanges(); } BaseMessage br = new BaseMessage(); br.setNoError(); br.id = p.PeopleId; br.count = 1; return br; }
public static Person Add(CMSDataContext Db, bool SendNotices, Family fam, int position, Tag tag, string firstname, string nickname, string lastname, string dob, int MarriedCode, int gender, int originId, int? EntryPointId, bool testing = false) { var p = new Person(); p.CreatedDate = Util.Now; p.CreatedBy = Util.UserId; Db.People.InsertOnSubmit(p); p.PositionInFamilyId = position; p.AddressTypeId = 10; if (firstname.HasValue()) p.FirstName = firstname.Trim().ToProper().Truncate(25); else p.FirstName = ""; if (nickname.HasValue()) p.NickName = nickname.Trim().ToProper().Truncate(15); if (lastname.HasValue()) p.LastName = lastname.Trim().ToProper().Truncate(30); else p.LastName = "?"; p.GenderId = gender; if (p.GenderId == 99) p.GenderId = 0; p.MaritalStatusId = MarriedCode; DateTime dt; if (Util.DateValid(dob, out dt)) { while (dt.Year < 1900) dt = dt.AddYears(100); if (dt > Util.Now) dt = dt.AddYears(-100); p.BirthDay = dt.Day; p.BirthMonth = dt.Month; p.BirthYear = dt.Year; if (p.GetAge() < 18 && MarriedCode == 0) p.MaritalStatusId = MaritalStatusCode.Single; } else if (DateTime.TryParse(dob, out dt)) { p.BirthDay = dt.Day; p.BirthMonth = dt.Month; if (Regex.IsMatch(dob, @"\d+[-/]\d+[-/]\d+")) { p.BirthYear = dt.Year; while (p.BirthYear < 1900) p.BirthYear += 100; if (p.GetAge() < 18 && MarriedCode == 0) p.MaritalStatusId = MaritalStatusCode.Single; } } p.MemberStatusId = MemberStatusCode.JustAdded; if (fam == null) { fam = new Family(); Db.Families.InsertOnSubmit(fam); p.Family = fam; } else fam.People.Add(p); var PrimaryCount = fam.People.Where(c => c.PositionInFamilyId == PositionInFamily.PrimaryAdult).Count(); if (PrimaryCount > 2 && p.PositionInFamilyId == PositionInFamily.PrimaryAdult) p.PositionInFamilyId = PositionInFamily.SecondaryAdult; if (tag != null) tag.PersonTags.Add(new TagPerson { Person = p }); p.OriginId = originId; p.EntryPointId = EntryPointId; p.FixTitle(); if (!testing) Db.SubmitChanges(); if (SendNotices) { if (Util.UserPeopleId.HasValue && Util.UserPeopleId.Value != Db.NewPeopleManagerId && HttpContext.Current.User.IsInRole("Access") && !HttpContext.Current.User.IsInRole("OrgMembersOnly") && !HttpContext.Current.User.IsInRole("OrgLeadersOnly")) Task.AddNewPerson(p.PeopleId); else Db.Email(Util.SysFromEmail, Db.GetNewPeopleManagers(), "Just Added Person on " + Db.Host, "{0} ({1})".Fmt(p.Name, p.PeopleId)); } return p; }