public ActionResult Edit([Bind(Include = "Campus_ID,Campus_Name,Address,Contact_Point")] Campu campu) { if (ModelState.IsValid) { unitOfWork.Campus.Update(campu); unitOfWork.Save(); return(RedirectToAction("Index")); } return(View(campu)); }
public ActionResult Create([Bind(Include = "Campus_ID,Campus_Name,Address,Contact_Point")] Campu campu) { var regexItem = new Regex("^[a-zA-Z0-9 ]*$"); if (!regexItem.IsMatch(campu.Campus_ID)) { ViewBag.Error = "Campus ID invalid!"; return(View()); } if (unitOfWork.Campus.IsExitsCampus(campu.Campus_ID, campu.Campus_Name)) { ViewBag.Error = "This campus exits!"; return(View()); } if (ModelState.IsValid) { unitOfWork.Campus.Insert(campu); unitOfWork.Save(); return(RedirectToAction("Index")); } return(View(campu)); }
public ActionResult UpdatePeople0(string text) { if (Request.HttpMethod.ToUpper() == "GET") { ViewData["text"] = ""; return(View()); } var list = text.Split('\n').Select(li => li.Split('\t')); var list0 = list.First().ToList(); var names = list0.ToDictionary(i => i.TrimEnd(), i => list0.FindIndex(s => s == i)); if (names.ContainsKey("Campus")) { var campuslist = (from li in list.Skip(1) where li.Length == names.Count group li by li[names["Campus"]] into campus select campus.Key).ToList(); var dbc = from c in campuslist join cp in DbUtil.Db.Campus on c equals cp.Description into j from cp in j.DefaultIfEmpty() select new { cp, c }; var clist = dbc.ToList(); var maxcampusid = DbUtil.Db.Campus.Max(c => c.Id); foreach (var i in clist) { if (i.cp == null) { var cp = new Campu { Description = i.c, Id = ++maxcampusid }; DbUtil.Db.Campus.InsertOnSubmit(cp); } } } DbUtil.Db.SubmitChanges(); var campuses = DbUtil.Db.Campus.ToDictionary(cp => cp.Description, cp => cp.Id); var q = from li in list.Skip(1) where li.Length == names.Count select li; foreach (var li in q) { DateTime?dob = null; if (names.ContainsKey("Birthday")) { dob = li[names["Birthday"]].ToDate(); } string email = "", cell = "", homephone = ""; if (names.ContainsKey("CellPhone")) { cell = li[names["CellPhone"]].GetDigits(); } if (names.ContainsKey("Email")) { email = li[names["Email"]].Trim(); } if (names.ContainsKey("HomePhone")) { homephone = li[names["HomePhone"]].GetDigits(); } var first = li[names["First"]].Trim(); var last = li[names["Last"]].Trim(); var pid = DbUtil.Db.FindPerson3(first, last, dob, email, cell, homephone, null).FirstOrDefault(); if (pid == null) { continue; } var p = DbUtil.Db.LoadPersonById(pid.PeopleId.Value); foreach (var name in names) { switch (name.Key) { case "Title": p.TitleCode = li[name.Value]; break; case "Campus": p.CampusId = campuses[li[name.Value]]; break; case "Gender": switch (li[name.Value]) { case "Male": p.GenderId = 1; break; case "Female": p.GenderId = 2; break; } break; case "Married": switch (li[name.Value]) { case "Married": p.MaritalStatusId = 20; break; case "Single": p.MaritalStatusId = 10; break; default: p.MaritalStatusId = 0; break; } break; case "Address": p.AddressLineOne = li[name.Value]; break; case "Address2": p.AddressLineTwo = li[name.Value]; break; case "City": p.CityName = li[name.Value]; break; case "State": p.StateCode = li[name.Value]; break; case "Zip": p.ZipCode = li[name.Value]; break; case "Position": switch (li[name.Value]) { case "Primary": p.PositionInFamilyId = 10; break; case "Secondary": p.PositionInFamilyId = 20; break; case "Child": p.PositionInFamilyId = 30; break; } break; case "Birthday": p.DOB = dob.FormatDate(); break; case "CellPhone": p.CellPhone = cell; break; case "HomePhone": p.HomePhone = homephone; break; case "Email": p.EmailAddress = email; break; } } DbUtil.Db.SubmitChanges(); } return(Redirect("/")); }
public bool DoUpload(string text) { var rt = Db2.UploadPeopleRuns.OrderByDescending(mm => mm.Id).First(); var sep = text.First(vv => new char[] { '\t', ',' }.Contains(vv)); var csv = new CsvReader(new StringReader(text), false, sep); csv.SupportsMultiline = true; var list = csv.ToList(); var list0 = list.First().Select(kk => kk).ToList(); names = list0.ToDictionary(i => i.TrimEnd(), i => list0.FindIndex(s => s == i), StringComparer.OrdinalIgnoreCase); extravaluenames = (from name in names.Keys where !standardnames.Contains(name, StringComparer.OrdinalIgnoreCase) where !standardrecregnames.Contains(name) select name).ToList(); recregnames = (from name in names.Keys where standardrecregnames.Contains(name) select name).ToList(); var db = DbUtil.Create(host); if (names.ContainsKey("campus")) { var campuslist = (from li in list.Skip(1) where li.Length == names.Count group li by li[names["campus"]] into campus where campus.Key.HasValue() select campus.Key).ToList(); var dbc = from c in campuslist join cp in db.Campus on c equals cp.Description into j from cp in j.DefaultIfEmpty() select new { cp, c }; var clist = dbc.ToList(); if (clist.Count > 0) { var maxcampusid = 0; if (db.Campus.Any()) { maxcampusid = db.Campus.Max(c => c.Id); } foreach (var i in clist) { if (i.cp == null) { var cp = new Campu { Description = i.c, Id = ++maxcampusid }; if (!testing) { db.Campus.InsertOnSubmit(cp); } } } } } var now = DateTime.Now; if (!testing) { db.SubmitChanges(); } Campuses = db.Campus.ToDictionary(cp => cp.Description, cp => cp.Id); var q = (from li in list.Skip(1) where li.Length == names.Count group li by li[names["familyid"]] into fam select fam).ToList(); rt.Count = q.Sum(ff => ff.Count()); Db2.SubmitChanges(); foreach (var fam in q) { Family f = null; var prevpid = 0; FindPerson3 pid; Person p = null; foreach (var a in fam) { if (!testing) { db.SubmitChanges(); db.Dispose(); db = DbUtil.Create(host); } var potentialdup = false; var first = a[names["first"]]; var last = a[names["last"]]; DateTime dt; DateTime?dob = null; if (names.ContainsKey("birthday")) { if (DateTime.TryParse(a[names["birthday"]], out dt)) { dob = dt; if (dob.Value < SqlDateTime.MinValue) { dob = null; } } } string email = null; string cell = null; string homephone = null; if (names.ContainsKey("email")) { email = a[names["email"]].Trim(); } if (names.ContainsKey("cellphone")) { cell = a[names["cellphone"]].GetDigits(); } if (names.ContainsKey("homephone")) { homephone = a[names["homephone"]].GetDigits(); } pid = db.FindPerson3(first, last, dob, email, cell, homephone, null).FirstOrDefault(); if (noupdate && pid != null) { if (!testing) { var pd = db.LoadPersonById(pid.PeopleId.Value); pd.AddEditExtraBool("FoundDup", true); } potentialdup = true; pid = null; } if (pid != null) // found { p = db.LoadPersonById(pid.PeopleId.Value); prevpid = p.PeopleId; psb = new List <ChangeDetail>(); fsb = new List <ChangeDetail>(); UpdateField(p, a, "TitleCode", "title"); UpdateField(p, a, "FirstName", "first"); UpdateField(p, a, "NickName", "goesby"); UpdateField(p, a, "LastName", "last"); UpdateField(p, a, "EmailAddress", "email"); UpdateField(p, a, "EmailAddress2", "email2"); UpdateField(p, a, "DOB", "birthday"); UpdateField(p, a, "AltName", "altname"); UpdateField(p, a, "SuffixCode", "suffix"); UpdateField(p, a, "MiddleName", "middle"); UpdateField(p, a, "CellPhone", "cellphone", GetDigits(a, "cellphone")); UpdateField(p, a, "WorkPhone", "workphone", GetDigits(a, "workphone")); UpdateField(p, a, "GenderId", "gender", Gender(a)); UpdateField(p, a, "MaritalStatusId", "marital", Marital(a)); UpdateField(p, a, "PositionInFamilyId", "position", Position(a)); if (!testing) { UpdateField(p, a, "CampusId", "campus", Campus(a)); } UpdateField(p.Family, a, "AddressLineOne", "address"); UpdateField(p.Family, a, "AddressLineTwo", "address2"); UpdateField(p.Family, a, "CityName", "city"); UpdateField(p.Family, a, "StateCode", "state"); UpdateField(p.Family, a, "ZipCode", "zip"); if (names.ContainsKey("memberstatus")) { UpdateMemberStatus(db, p, a); } if (!testing) { p.LogChanges(db, psb, PeopleId); p.Family.LogChanges(db, fsb, p.PeopleId, PeopleId); db.SubmitChanges(); p.AddEditExtraBool("InsertPeopleUpdated", true); } } else // new person { if (!testing) { if (prevpid > 0) { f = db.LoadFamilyByPersonId(prevpid); } } if (f == null || !a[names["familyid"]].HasValue()) { f = new Family(); SetField(f, a, "AddressLineOne", "address"); SetField(f, a, "AddressLineTwo", "address2"); SetField(f, a, "CityName", "city"); SetField(f, a, "StateCode", "state"); SetField(f, a, "ZipCode", "zip"); SetField(f, a, "HomePhone", "homephone", GetDigits(a, "homephone")); db.Families.InsertOnSubmit(f); if (!testing) { db.SubmitChanges(); } } string goesby = null; if (names.ContainsKey("goesby")) { goesby = a[names["goesby"]]; } p = Person.Add(db, false, f, 10, null, a[names["first"]], goesby, a[names["last"]], dob.FormatDate(), 0, 0, 0, null, testing); prevpid = p.PeopleId; p.FixTitle(); SetField(p, a, "AltName", "altname"); SetField(p, a, "SuffixCode", "suffix"); SetField(p, a, "MiddleName", "middle"); SetField(p, a, "MaidenName", "maidenname"); SetField(p, a, "EmployerOther", "employer"); SetField(p, a, "OccupationOther", "occupation"); SetField(p, a, "CellPhone", "cellphone", GetDigits(a, "cellphone")); SetField(p, a, "WorkPhone", "workphone", GetDigits(a, "workphone")); SetField(p, a, "EmailAddress", "email"); SetField(p, a, "EmailAddress2", "email2"); SetField(p, a, "GenderId", "gender", Gender(a)); SetField(p, a, "MaritalStatusId", "marital", Marital(a)); SetField(p, a, "WeddingDate", "weddingdate", GetDate(p, a, "weddingdate")); SetField(p, a, "JoinDate", "joindate", GetDate(p, a, "joindate")); SetField(p, a, "DropDate", "dropdate", GetDate(p, a, "dropdate")); SetField(p, a, "BaptismDate", "baptismdate", GetDate(p, a, "baptismdate")); SetField(p, a, "PositionInFamilyId", "position", Position(a)); SetField(p, a, "TitleCode", "title", Title(a)); SetField(p, a, "DeceasedDate", "deceased", GetDate(p, a, "deceased")); if (names.ContainsKey("memberstatus")) { SetMemberStatus(db, p, a); } if (!testing) { SetField(p, a, "CampusId", "campus", Campus(a)); p.AddEditExtraBool("InsertPeopleAdded", true); if (potentialdup) { p.AddEditExtraBool("FoundDup", true); } db.SubmitChanges(); } } if (names.ContainsKey("createddate")) { SetCreatedDate(p, a); } if (names.ContainsKey("backgroundcheck")) { SetBackgroundCheckDate(db, p, a); } if (recregnames.Any()) { SetRecRegs(p, a); } if (extravaluenames.Any()) { ProcessExtraValues(db, p, a); } rt.Processed++; Db2.SubmitChanges(); } if (!testing) { db.SubmitChanges(); } } rt.Completed = DateTime.Now; Db2.SubmitChanges(); return(true); }
internal void UploadPeople(UploadPeopleRun rt, ExcelWorksheet ws) { Extravaluenames = (from name in Names where !Standardnames.Contains(name.Key, StringComparer.OrdinalIgnoreCase) where !Standardrecregnames.Contains(name.Key) select name.Key).ToList(); Recregnames = (from name in Names where Standardrecregnames.Contains(name.Key) select name.Key).ToList(); if (Names.ContainsKey("Campus")) { var campuslist = (from li in Datalist group li by(string) li.Campus into campus where campus.Key.HasValue() select campus.Key).ToList(); var dbc = from c in campuslist join cp in JobDbContext.Campus on c equals cp.Description into j from cp in j.DefaultIfEmpty() select new { cp, c }; var clist = dbc.ToList(); if (clist.Count > 0) { var maxcampusid = 0; if (JobDbContext.Campus.Any()) { maxcampusid = JobDbContext.Campus.Max(c => c.Id); } foreach (var i in clist) { if (i.cp != null) { continue; } var cp = new Campu { Description = i.c, Id = ++maxcampusid }; if (!Testing) { JobDbContext.Campus.InsertOnSubmit(cp); } } } } if (!Testing) { JobDbContext.SubmitChanges(); } Campuses = JobDbContext.Campus.ToDictionary(cp => cp.Description, cp => cp.Id); var q = (from li in Datalist group li by li.FamilyId into fam select fam).ToList(); rt.Count = q.Sum(ff => ff.Count()); rt.Description = $"Uploading People {(Testing ? "in testing mode" : "for real")}"; ProgressDbContext.SubmitChanges(); foreach (var fam in q) { var prevpid = 0; foreach (var a in fam) { if (!Testing) { JobDbContext.SubmitChanges(); } Family f = null; var potentialdup = false; int? pid = FindRecord(JobDbContext, a, ref potentialdup); if (pid == -1) // no data: no first or last name { continue; } var p = pid.HasValue ? UpdateRecord(JobDbContext, pid.Value, a) : NewRecord(JobDbContext, ref f, a, prevpid, potentialdup); prevpid = p.PeopleId; if (Recregnames.Any()) { SetRecRegs(p, a); } if (Extravaluenames.Any()) { ProcessExtraValues(JobDbContext, p, a); } rt.Processed++; ProgressDbContext.SubmitChanges(); } if (!Testing) { JobDbContext.SubmitChanges(); } } }
public bool DoUpload(string text, bool testing = false) { var rt = Db2.UploadPeopleRuns.OrderByDescending(mm => mm.Id).First(); var csv = new CsvReader(new StringReader(text), false, '\t'); var list = csv.ToList(); var list0 = list.First().Select(kk => kk.ToLower()).ToList(); names = list0.ToDictionary(i => i.TrimEnd(), i => list0.FindIndex(s => s == i)); if (names.ContainsKey("campus")) { var campuslist = (from li in list.Skip(1) where li.Length == names.Count group li by li[names["campus"]] into campus where campus.Key.HasValue() select campus.Key).ToList(); var dbc = from c in campuslist join cp in Db.Campus on c equals cp.Description into j from cp in j.DefaultIfEmpty() select new { cp, c }; var clist = dbc.ToList(); if (clist.Count > 0) { var maxcampusid = Db.Campus.Max(c => c.Id); foreach (var i in clist) { if (i.cp == null) { var cp = new Campu { Description = i.c, Id = ++maxcampusid }; if (!testing) { Db.Campus.InsertOnSubmit(cp); } } } } } var now = DateTime.Now; if (!testing) { Db.SubmitChanges(); } Campuses = Db.Campus.ToDictionary(cp => cp.Description, cp => cp.Id); var q = (from li in list.Skip(1) where li.Length == names.Count group li by li[names["familyid"]] into fam select fam).ToList(); rt.Count = q.Sum(ff => ff.Count()); Db2.SubmitChanges(); var standardnames = new List <string> { "familyid", "title", "first", "last", "goesby", "altname", "gender", "marital", "maidenName", "address", "address2", "city", "state", "zip", "position", "birthday", "cellphone", "homephone", "workphone", "email", "email2", "suffix", "middle", "joindate", "dropdate", "baptismdate", "weddingdate", "memberstatus", "employer", "occupation", }; foreach (var fam in q) { Family f = null; foreach (var a in fam) { var first = a[names["first"]]; var last = a[names["last"]]; DateTime dt; DateTime?dob = null; if (names.ContainsKey("birthday")) { if (DateTime.TryParse(a[names["birthday"]], out dt)) { dob = dt; if (dob.Value < SqlDateTime.MinValue) { dob = null; } } } string email = null; string cell = null; string homephone = null; if (names.ContainsKey("email")) { email = a[names["email"]].Trim(); } if (names.ContainsKey("cellphone")) { cell = a[names["cellphone"]].GetDigits(); } if (names.ContainsKey("homephone")) { homephone = a[names["homephone"]].GetDigits(); } Person p = null; var pid = Db.FindPerson3(first, last, dob, email, cell, homephone, null).FirstOrDefault(); if (pid != null) // found { p = Db.LoadPersonById(pid.PeopleId.Value); psb = new StringBuilder(); fsb = new StringBuilder(); UpdateField(p, a, "TitleCode", "title"); UpdateField(p, a, "FirstName", "first"); UpdateField(p, a, "NickName", "goesby"); UpdateField(p, a, "LastName", "last"); UpdateField(p, a, "EmailAddress", "email"); UpdateField(p, a, "EmailAddress2", "email2"); UpdateField(p, a, "DOB", "birthday"); UpdateField(p, a, "AltName", "altname"); UpdateField(p, a, "SuffixCode", "suffix"); UpdateField(p, a, "MiddleName", "middle"); UpdateField(p, a, "CellPhone", "cellphone", GetDigits(a, "cellphone")); UpdateField(p, a, "WorkPhone", "workphone", GetDigits(a, "workphone")); UpdateField(p, a, "GenderId", "gender", Gender(a)); UpdateField(p, a, "MaritalStatusId", "marital", Marital(a)); UpdateField(p, a, "PositionInFamilyId", "position", Position(a)); UpdateField(p, a, "CampusId", "campus", Campus(a)); UpdateField(p.Family, a, "AddressLineOne", "address"); UpdateField(p.Family, a, "AddressLineTwo", "address2"); UpdateField(p.Family, a, "CityName", "city"); UpdateField(p.Family, a, "StateCode", "state"); UpdateField(p.Family, a, "ZipCode", "zip"); if (!testing) { p.LogChanges(Db, psb, PeopleId); p.Family.LogChanges(Db, fsb, p.PeopleId, PeopleId); Db.SubmitChanges(); Person.Tag(Db, p.PeopleId, "InsertPeopleUpdated", Util.UserPeopleId, DbUtil.TagTypeId_Personal); } } else // new person { try { if (f == null || !a[names["familyid"]].HasValue()) { f = new Family(); SetField(f, a, "AddressLineOne", "address"); SetField(f, a, "AddressLineTwo", "address2"); SetField(f, a, "CityName", "city"); SetField(f, a, "StateCode", "state"); SetField(f, a, "ZipCode", "zip"); SetField(f, a, "HomePhone", "homephone"); Db.Families.InsertOnSubmit(f); if (!testing) { Db.SubmitChanges(); } } string goesby = null; if (names.ContainsKey("goesby")) { goesby = a[names["goesby"]]; } p = Person.Add(Db, false, f, 10, null, a[names["first"]], goesby, a[names["last"]], dob.FormatDate(), 0, 0, 0, null, testing); p.FixTitle(); SetField(p, a, "AltName", "altname"); SetField(p, a, "SuffixCode", "suffix"); SetField(p, a, "MiddleName", "middle"); SetField(p, a, "MaidenName", "maidenname"); SetField(p, a, "EmployerOther", "employer"); SetField(p, a, "OccupationOther", "occupation"); SetField(p, a, "CellPhone", "cellphone", GetDigits(a, "cellphone")); SetField(p, a, "WorkPhone", "workphone", GetDigits(a, "workphone")); SetField(p, a, "EmailAddress", "email"); SetField(p, a, "EmailAddress2", "email2"); SetField(p, a, "GenderId", "gender", Gender(a)); SetField(p, a, "MaritalStatusId", "marital", Marital(a)); SetField(p, a, "WeddingDate", "weddingdate", GetDate(p, a, "weddingdate")); SetField(p, a, "JoinDate", "joindate", GetDate(p, a, "joindate")); SetField(p, a, "DropDate", "dropdate", GetDate(p, a, "dropdate")); SetField(p, a, "BaptismDate", "baptismdate", GetDate(p, a, "baptismdate")); SetField(p, a, "PositionInFamilyId", "position", Position(a)); SetField(p, a, "TitleCode", "title", Title(a)); SetField(p, a, "CampusId", "campus", Campus(a)); if (names.ContainsKey("memberstatus")) { var ms = a[names["memberstatus"]]; var qms = from mm in Db.MemberStatuses where mm.Description == ms select mm; var m = qms.SingleOrDefault(); if (m == null) { var nx = Db.MemberStatuses.Max(mm => mm.Id) + 1; m = new MemberStatus { Id = nx, Description = ms, Code = nx.ToString() }; Db.MemberStatuses.InsertOnSubmit(m); } p.MemberStatusId = m.Id; } } catch (Exception ex) { throw; } } try { var nq = from name in names.Keys where !standardnames.Contains(name) select name; foreach (var name in nq) { var b = name.Split('.'); if (name.EndsWith(".txt")) { p.AddEditExtraData(b[0], a[names[name]].Trim()); } else if (name.EndsWith(".dt")) { var d = a[names[name]].Trim().ToDate(); if (d.HasValue) { p.AddEditExtraDate(b[0], d.Value); } } else if (name.EndsWith(".int")) { p.AddEditExtraInt(b[0], a[names[name]].Trim().ToInt()); } else if (name.EndsWith(".bit")) { var v = a[names[name]]; if (v.HasValue()) { p.AddEditExtraBool(b[0], v.ToInt() == 1); } } else { p.AddEditExtraValue(name, a[names[name]].Trim()); } } rt.Processed++; Db2.SubmitChanges(); if (!testing) { Db.SubmitChanges(); Person.Tag(Db, p.PeopleId, "InsertPeopleAdded", Util.UserPeopleId, DbUtil.TagTypeId_Personal); } } catch (Exception ex) { throw; } } if (!testing) { Db.SubmitChanges(); } } rt.Completed = DateTime.Now; Db2.SubmitChanges(); return(true); }
private void UploadPeople(UploadPeopleRun rt, ExcelPackage pkg) { var db = DbUtil.Create(host); peopleids = db.PeopleExtras.Where(vv => vv.Field == "IndividualId" && vv.IntValue != null) .ToDictionary(vv => vv.IntValue ?? 0, vv => vv.PeopleId); FetchData(pkg.Workbook.Worksheets["Personal Data"]); extravaluenames = (from name in names where !standardnames.Contains(name.Key, StringComparer.OrdinalIgnoreCase) where !standardrecregnames.Contains(name.Key) select name.Key).ToList(); recregnames = (from name in names where standardrecregnames.Contains(name.Key) select name.Key).ToList(); if (names.ContainsKey("Campus")) { var campuslist = (from li in datalist group li by((string)li.Campus) into campus where campus.Key.HasValue() select campus.Key).ToList(); var dbc = from c in campuslist join cp in db.Campus on c equals cp.Description into j from cp in j.DefaultIfEmpty() select new { cp, c }; var clist = dbc.ToList(); if (clist.Count > 0) { var maxcampusid = 0; if (db.Campus.Any()) { maxcampusid = db.Campus.Max(c => c.Id); } foreach (var i in clist) { if (i.cp == null) { var cp = new Campu { Description = i.c, Id = ++maxcampusid }; if (!Testing) { db.Campus.InsertOnSubmit(cp); } } } } } if (!Testing) { db.SubmitChanges(); } campuses = db.Campus.ToDictionary(cp => cp.Description, cp => cp.Id); var q = (from li in datalist group li by li.FamilyId into fam select fam).ToList(); rt.Count = q.Sum(ff => ff.Count()); rt.Description = $"Uploading People {(Testing ? "in testing mode" : "for real")}"; db2.SubmitChanges(); foreach (var fam in q) { var prevpid = 0; foreach (var a in fam) { if (!Testing) { db.SubmitChanges(); db.Dispose(); db = DbUtil.Create(host); } Family f = null; var potentialdup = false; int? pid = FindRecord(db, a, ref potentialdup); var p = pid.HasValue ? UpdateRecord(db, pid.Value, a) : NewRecord(db, ref f, a, prevpid, potentialdup); prevpid = p.PeopleId; if (recregnames.Any()) { SetRecRegs(p, a); } if (extravaluenames.Any()) { ProcessExtraValues(db, p, a); } rt.Processed++; db2.SubmitChanges(); } if (!Testing) { db.SubmitChanges(); } } }