Ejemplo n.º 1
0
        private static void AddAccessDoorRefDataToDb(DataRow row)
        {
            String acdCode = row.Field <String>("access_door");

            if (String.IsNullOrEmpty(acdCode))
            {
                return;
            }
            AccessDoor acd = new AccessDoor()
            {
                Code       = acdCode,
                DescShort  = acdCode,
                DescLong   = acdCode,
                ActiveFlag = true,
                CreatedDt  = DateTime.Now,
                CreatedBy  = 0,
                UpdatedDt  = DateTime.Now,
                UpdatedBy  = 0
            };

            try
            {
                using (SdmDbContext dbc = new SdmDbContext())
                {
                    // if this record already exists in db, dont save it (this is a reference table)
                    if (dbc.AccessDoors.Any(o => o.Code == acd.Code))
                    {
                        //match! todo: fix this if else
                    }
                    else
                    {
                        dbc.AccessDoors.Add(acd);
                        dbc.SaveChanges();
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Value: \"{1}\", Error: \"{2}\"",
                                          ve.PropertyName,
                                          eve.Entry.CurrentValues.GetValue <object>(ve.PropertyName),
                                          ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
Ejemplo n.º 2
0
        private Entity SaveEntityDataToDb(DataColumnCollection columns, DataRow row)
        {
            try
            {
                using (SdmDbContext dbc = new SdmDbContext())
                {
                    String rowEmpClassCode  = row.Field <String>("empl_classification");
                    var    empClassObject   = dbc.EmployeeClassifications.Where(x => x.Code == rowEmpClassCode);
                    var    filteredEmpClass = empClassObject.ToArray().First();

                    String rowGridLocValue = row.Field <String>("grid_location");
                    var    gridLocObject   = dbc.GridLocations.Where(x => x.GridLocationValue == rowGridLocValue);
                    var    filteredGridLoc = gridLocObject.ToArray().First();

                    String rowAccessDoorCode  = row.Field <String>("access_door");
                    var    filteredAccessDoor = new AccessDoor();
                    if (!String.IsNullOrEmpty(rowAccessDoorCode))
                    {
                        var accessDoorObject = dbc.AccessDoors.Where(x => x.Code == rowAccessDoorCode);
                        filteredAccessDoor = accessDoorObject.ToArray().First();
                    }

                    String rowJobTitleCode  = row.Field <String>("job_title");
                    var    jobTitleObject   = dbc.JobTitles.Where(x => x.Code == rowJobTitleCode);
                    var    filteredJobTitle = jobTitleObject.ToArray().First();

                    String rowUnitValue = row.Field <String>("unit");
                    var    unitObject   = dbc.Units.Where(x => x.UnitValue == rowUnitValue);
                    var    filteredUnit = unitObject.ToArray().First();

                    String deskPhoneCode         = "DESKPHN";
                    var    deskPhoneTypeObject   = dbc.PhoneTypes.Where(x => x.Code == deskPhoneCode);
                    var    filteredDeskPhoneType = deskPhoneTypeObject.ToArray().First();

                    String mobilePhoneCode         = "MOBILEPHN";
                    var    mobilePhoneTypeObject   = dbc.PhoneTypes.Where(x => x.Code == mobilePhoneCode);
                    var    filteredMobilePhoneType = mobilePhoneTypeObject.ToArray().First();

                    String completeDeskPhoneNumber   = row.Field <String>("desk_phone");
                    String completeMobilePhoneNumber = row.Field <String>("mobile_phone");

                    String deskPhoneAreaCode   = string.Empty;
                    String deskPhoneNumber     = string.Empty;
                    String mobilePhoneNumber   = string.Empty;
                    String mobilePhoneAreaCode = string.Empty;
                    if (completeDeskPhoneNumber.Length == 11)
                    {
                        deskPhoneAreaCode = completeDeskPhoneNumber.Substring(1, 3);
                        deskPhoneNumber   = completeDeskPhoneNumber.Substring(4, 7);
                    }
                    if (completeMobilePhoneNumber.Length == 11)
                    {
                        mobilePhoneAreaCode = completeMobilePhoneNumber.Substring(1, 3);
                        mobilePhoneNumber   = completeMobilePhoneNumber.Substring(4, 7);
                    }
                    String entityTypeCode     = "INDIVIDUAL";
                    var    entityTypeObject   = dbc.EntityTypes.Where(x => x.Code == entityTypeCode);
                    var    filteredEntityType = entityTypeObject.ToArray().First();

                    String emailTypeColumnName = "email";
                    var    emailTypeObject     = dbc.EmailTypes.Where(x => x.Code == emailTypeColumnName);
                    var    filteredEmailType   = emailTypeObject.ToArray().First();

                    String hrmsidCode = "HRMSID";
                    var    hrmsidIdentifierTypeObject   = dbc.IdentifierTypes.Where(x => x.Code == hrmsidCode);
                    var    filteredHrmsidIdentifierType = hrmsidIdentifierTypeObject.ToArray().First();

                    String manageridCode = "MANAGERID";
                    var    manageridIdentifierTypeObject   = dbc.IdentifierTypes.Where(x => x.Code == manageridCode);
                    var    filteredManageridIdentifierType = manageridIdentifierTypeObject.ToArray().First();

                    // Get code for employee subtype
                    String employeeEntitySubtypeCode     = "EMPLOYEE";
                    var    employeeEntitySubtypeObject   = dbc.EntitySubtypes.Where(x => x.Code == employeeEntitySubtypeCode);
                    var    filteredEmployeeEntitySubtype = employeeEntitySubtypeObject.ToArray().First();

                    Entity entity = new Entity()
                    {
                        EntityTypeKey             = filteredEntityType.EntityTypeKey,
                        EntitySubtypeKey          = filteredEmployeeEntitySubtype.EntitySubtypeKey,
                        EmployeeClassificationKey = filteredEmpClass.EmployeeClassificationKey,
                        GridLocationKey           = filteredGridLoc.GridLocationKey,
                        JobTitleKey      = filteredJobTitle.JobTitleKey,
                        UnitKey          = filteredUnit.UnitKey,
                        EffectiveBeginDt = DateTime.Now,
                        EffectiveEndDt   = null,
                        CreatedBy        = 0,
                        CreatedDt        = DateTime.Now,
                        UpdatedBy        = 0,
                        UpdatedDt        = DateTime.Now,
                        Names            = new List <Name>()
                        {
                            new Name()
                            {
                                FirstName = row.Field <String>("first_name"),
                                LastName  = row.Field <String>("last_name"),
                                CreatedBy = 0,
                                CreatedDt = DateTime.Now,
                                UpdatedBy = 0,
                                UpdatedDt = DateTime.Now
                            }
                        },
                        Phones = new List <Phone>()
                        {
                            new Phone()
                            {
                                PhoneTypeKey = filteredDeskPhoneType.PhoneTypeKey,
                                AreaCode     = deskPhoneAreaCode,
                                PhoneNumber  = deskPhoneNumber,
                                ForeignFlag  = false,
                                CreatedBy    = 0,
                                CreatedDt    = DateTime.Now,
                                UpdatedBy    = 0,
                                UpdatedDt    = DateTime.Now
                            },
                            new Phone()
                            {
                                PhoneTypeKey = filteredMobilePhoneType.PhoneTypeKey,
                                AreaCode     = mobilePhoneAreaCode,
                                PhoneNumber  = mobilePhoneNumber,
                                ForeignFlag  = false,
                                CreatedBy    = 0,
                                CreatedDt    = DateTime.Now,
                                UpdatedBy    = 0,
                                UpdatedDt    = DateTime.Now
                            }
                        },
                        Emails = new List <Email>()
                        {
                            new Email()
                            {
                                EmailTypeKey = filteredEmailType.EmailTypeKey,
                                EmailAddress = row.Field <String>("email"),
                                CreatedBy    = 0,
                                CreatedDt    = DateTime.Now,
                                UpdatedBy    = 0,
                                UpdatedDt    = DateTime.Now
                            }
                        },
                        EntityIdentifiers = new List <EntityIdentifier>()
                        {
                            new EntityIdentifier()
                            {
                                IdentifierTypeKey = filteredHrmsidIdentifierType.IdentifierTypeKey,
                                IdentifierValue   = row.Field <String>("HRMS_ID"),
                                CreatedBy         = 0,
                                CreatedDt         = DateTime.Now,
                                UpdatedBy         = 0,
                                UpdatedDt         = DateTime.Now
                            },
                            new EntityIdentifier()
                            {
                                IdentifierTypeKey = filteredManageridIdentifierType.IdentifierTypeKey,
                                IdentifierValue   = row.Field <String>("manager_ID"),
                                CreatedBy         = 0,
                                CreatedDt         = DateTime.Now,
                                UpdatedBy         = 0,
                                UpdatedDt         = DateTime.Now
                            }
                        }
                    };
                    if (!String.IsNullOrEmpty(rowAccessDoorCode))
                    {
                        entity.AccessDoor.AccessDoorKey = filteredAccessDoor.AccessDoorKey;
                    }
                    return(entity);
                };
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Value: \"{1}\", Error: \"{2}\"",
                                          ve.PropertyName,
                                          eve.Entry.CurrentValues.GetValue <object>(ve.PropertyName),
                                          ve.ErrorMessage);
                    }
                }
                throw;
            }
        }