Example #1
0
        internal void SetRecRegs(Person p, dynamic a)
        {
            var nq = (from name in Names.Keys
                      where Standardrecregnames.Contains(name, StringComparer.OrdinalIgnoreCase)
                      select name).ToList();

            foreach (var name in nq)
            {
                var    rr    = p.SetRecReg();
                string value = GetStringTrimmed(a.GetValue(name));
                switch (name)
                {
                case "Mother":
                    rr.Mname = value;
                    break;

                case "Father":
                    rr.Fname = value;
                    break;

                case "EmContact":
                    rr.Emcontact = value;
                    break;

                case "EmPhone":
                    rr.Emphone = value;
                    break;

                case "Grade":
                    p.Grade = value.ToInt2();
                    break;

                case "School":
                    p.SchoolOther = value;
                    break;

                case "Doctor":
                    rr.Doctor = value;
                    break;

                case "DocPhone":
                    rr.Docphone = value;
                    break;

                case "Insurance":
                    rr.Insurance = value;
                    break;

                case "Policy":
                    rr.Policy = value;
                    break;

                case "Allergies":
                    rr.MedicalDescription = value;
                    break;
                }
            }
        }
Example #2
0
        internal void UploadPeople(UploadPeopleRun rt, ExcelWorksheet ws)
        {
            var db = DbUtil.Create(Host);

            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);
                    if (pid == -1) // no data: no first or last name
                    {
                        continue;
                    }
                    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();
                }
            }
        }