public EmployeeResponseVm[] GetEmployees()
        {
            var employees       = _context.Employees.ToArray();
            var employeeMapping = new EmployeeMapping();

            return(employeeMapping.DataModelToRetrievalViewModel(employees));
        }
Exemplo n.º 2
0
        public EmployeeMapping GetEmployee()
        {
            EmployeeMapping employees = null;

            employees = Manager.GetEmployee();

            return(employees);
        }
Exemplo n.º 3
0
        public void EmployeeDataModelIsNullThenArgumentExceptionIsThrown()
        {
            //Arrange
            Employee employeeDataModel = null;
            var      employeeMapping   = new EmployeeMapping();

            //Assert
            Assert.Throws <ArgumentException>(() => employeeMapping.DataModelToRetrievalViewModel(employeeDataModel));
        }
Exemplo n.º 4
0
        public void MapsEmptyEmployeeDataModelArrayToEmployeeRetrievalViewModelArray()
        {
            //Arrange
            Employee[] employeeDataModelArray = { };
            var        employeeMapping        = new EmployeeMapping();

            //Act
            var employeeResponseVmArray = employeeMapping.DataModelToRetrievalViewModel(employeeDataModelArray);

            //Assert
            Assert.IsInstanceOf(typeof(EmployeeResponseVm[]), employeeResponseVmArray);
        }
Exemplo n.º 5
0
        public void MapsEmployeeDataModelToEmployeeRetrievalViewModelWhichIsNotNull()
        {
            //Arrange
            var employeeDataModel = new Employee
            {
                EmployeeId = 1, Email = "*****@*****.**", EmployeeNumber = 1, FullName = "John Doe",
                DOB        = new DateTime(), StartDate = new DateTime(), Salary = 500000, ClubId = 1, LicenseId = 1
            };
            var employeeMapping = new EmployeeMapping();

            //Act
            var employeeResponseVm = employeeMapping.DataModelToRetrievalViewModel(employeeDataModel);

            //Assert
            Assert.IsNotNull(employeeResponseVm);
        }
Exemplo n.º 6
0
        public void MapsEmployeeDataModelToEmployeeRetrievalViewModelHasAllRequiredDataMatching()
        {
            //Arrange
            var employeeDataModel = new Employee
            {
                EmployeeId = 1, Email = "*****@*****.**", EmployeeNumber = 1, FullName = "John Doe",
                DOB        = new DateTime(), StartDate = new DateTime(), Salary = 500000, ClubId = 1, LicenseId = 1
            };
            var employeeMapping = new EmployeeMapping();

            //Act
            var employeeResponseVm = employeeMapping.DataModelToRetrievalViewModel(employeeDataModel);

            //Assert
            Assert.AreEqual(employeeDataModel.EmployeeId, employeeResponseVm.EmployeeId);
            Assert.AreEqual(employeeDataModel.Email, employeeResponseVm.Email);
            Assert.AreEqual(employeeDataModel.EmployeeNumber, employeeResponseVm.EmployeeNumber);
            Assert.AreEqual(employeeDataModel.FullName, employeeResponseVm.FullName);
            Assert.AreEqual(employeeDataModel.DOB, employeeResponseVm.DOB);
            Assert.AreEqual(employeeDataModel.StartDate, employeeResponseVm.StartDate);
            Assert.AreEqual(employeeDataModel.Salary, employeeResponseVm.Salary);
        }
Exemplo n.º 7
0
        public Employee() : base("/api/employee")
        {
            EmployeeRequest request;
            EmployeeMapping employeeMapping;

            Get["/employee"] = parameters =>
            {
                try
                {
                    employeeMapping          = new EmployeeMapping();
                    employeeMapping.Employee = new ManagementService.DTO.Data.Employee {
                    };

                    request         = new EmployeeRequest(new EmployeeEvents(), employeeMapping);
                    employeeMapping = request.GetEmployee();

                    return(Response.AsJson(employeeMapping, HttpStatusCode.OK));
                }
                catch (Exception ex)
                {
                    return(new ErrorEvents().Set(this.Context, Negotiate, ex));
                }
            };
        }
Exemplo n.º 8
0
        public void MapsTwoEmployeeDataModelsInArrayToEmployeeRetrievalViewModelArrayWhichHasTwoElements()
        {
            //Arrange
            Employee[] employeeDataModelArray =
            {
                new Employee
                {
                    EmployeeId = 1, Email = "*****@*****.**", EmployeeNumber = 1, FullName = "John Doe",
                    DOB        = new DateTime(), StartDate = new DateTime(), Salary = 500000, ClubId = 1, LicenseId = 1
                },
                new Employee
                {
                    EmployeeId = 1, Email = "*****@*****.**", EmployeeNumber = 1, FullName = "John Doe",
                    DOB        = new DateTime(), StartDate = new DateTime(), Salary = 500000, ClubId = 1, LicenseId = 1
                }
            };
            var employeeMapping = new EmployeeMapping();

            //Act
            var employeeResponseVm = employeeMapping.DataModelToRetrievalViewModel(employeeDataModelArray);

            //Assert
            Assert.AreEqual(2, employeeResponseVm.Length);
        }
Exemplo n.º 9
0
 public EmployeeRequest(IEmployeeEvents service, EmployeeMapping employeeMapping)
 {
     this._service         = service;
     this._employeeMapping = employeeMapping;
 }
Exemplo n.º 10
0
        public void ProcessMonsterFile(string MonsterFile)
        {
            log.Info("Processing Monster File");

            try
            {
                var           columnList = string.Empty;
                var           summary    = new ERISSummary();
                var           fileReader = new FileReader();
                var           validate   = new ValidateMonster(lookups);
                var           em         = new EmployeeMapping();
                var           save       = new SaveData();
                List <string> badRecords;
                var           persID      = 0;
                var           sponsorship = "";

                var monsterAction = "";

                log.Info("Loading Monster File");

                var MonsterData = fileReader.GetFileData <Employee, EmployeeMapping>(MonsterFile, out badRecords, em);

                ProcessResult updatedResults;

                //Start Processing the Monster Data
                foreach (Employee employeeData in MonsterData)
                {
                    log.Info("Processing Data: " + employeeData.Person.MonsterID);

                    //If there are critical errors write to the error summary and move to the next record
                    log.Info("Checking for Critical errors for user: "******"Loading GCIMS Data");
                    var allGCIMSUpdatedData = retrieve.AllGCIMSUpdatedData(employeeData);
                    var allGCIMSFlaggedData = retrieve.AllGCIMSFlaggeddData(employeeData);

                    employeeData.Person.Name = employeeData.Person.FirstName + " " + employeeData.Person.MiddleName + " " + employeeData.Person.LastName + " " + employeeData.Person.Suffix;

                    //Looking for matching record.
                    log.Info("Looking for matching record: " + employeeData.Person.MonsterID);
                    ReturnAction  action  = new ReturnAction();
                    ReturnRecords records = new ReturnRecords();
                    monsterAction = action.MonsterAction(employeeData);


                    switch (monsterAction)
                    {
                    case "Update Record":
                        if (!Helpers.AreEqualGcimsToMonster1(allGCIMSUpdatedData.FirstOrDefault(), employeeData, out columnList, ref log))
                        {
                            log.Info("Update record for user: "******"Update record for user: "******"Potential Match":
                        if (!Helpers.AreEqualGcimsToMonster2(allGCIMSFlaggedData.FirstOrDefault(), employeeData, out columnList, ref log))
                        {
                            log.Info("Flagged record for user: "******"New Record":
                        log.Info("Create record for user: "******"Total records " + String.Format("{0:#,###0}", MonsterData.Count));
                log.Info("Records created: " + String.Format("{0:#,###0}", summary.CreatedRecordsProcessed.Count));
                log.Info("Records updated: " + String.Format("{0:#,###0}", summary.UpdatedRecordsProcessed.Count));
                log.Info("Records flagged: " + String.Format("{0:#,###0}", summary.FlaggedRecordsProcessed.Count));
                log.Info("Records Invalid: " + String.Format("{0:#,###0}", summary.UnsuccessfulProcessed.Count));

                summary.GenerateSummaryFiles(emailData);
            }
            //Catch all errors

            catch (Exception ex)
            {
                log.Error("Process Monster File Error:" + ex.Message + " " + ex.InnerException + " " + ex.StackTrace);
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Get HR Data
        /// Loop HR Data
        /// Get GCIMS Record
        /// Update GCIMS Record
        /// </summary>
        /// <param name="hrFile"></param>
        public void ProcessHRFile(string HRFile)
        {
            log.Info("Processing HR Users");

            try
            {
                Employee        gcimsRecord;
                string          columnList = string.Empty;
                List <Employee> usersToProcess;
                List <Employee> allGCIMSData;

                HRSummary  summary    = new HRSummary();
                FileReader fileReader = new FileReader();

                ValidateHR validate = new ValidateHR(lookups);

                Helpers helper = new Helpers();

                SaveData save = new SaveData();

                log.Info("Loading HR Links File");
                EmployeeMapping em = new EmployeeMapping(lookups);

                List <string> badRecords;

                usersToProcess = fileReader.GetFileData <Employee, EmployeeMapping>(HRFile, out badRecords, em);

                AddBadREcordsToSummary(badRecords, ref summary);

                log.Info("Loading GCIMS Data");
                allGCIMSData = retrieve.AllGCIMSData();

                ProcessResult updatedResults;

                //Start Processing the HR Data
                foreach (Employee employeeData in usersToProcess)
                {
                    log.Info("Processing HR User: "******"Looking for matching record: " + employeeData.Person.EmployeeID);
                    gcimsRecord = RecordFound(employeeData, allGCIMSData);

                    if ((gcimsRecord != null && (gcimsRecord.Person.EmployeeID != employeeData.Person.EmployeeID) && (!Convert.ToBoolean(ConfigurationManager.AppSettings["DEBUG"].ToString()))))
                    {
                        log.Info("Adding HR Links ID to record: " + gcimsRecord.Person.GCIMSID);
                        save.InsertEmployeeID(gcimsRecord.Person.GCIMSID, employeeData.Person.EmployeeID);
                    }

                    //If no record found write to the record not found summary file
                    if (gcimsRecord == null)
                    {
                        //Danger Will Robinson, Danger
                        summary.RecordsNotFound.Add(new RecordNotFoundSummary
                        {
                            GCIMSID    = -1,
                            EmployeeID = employeeData.Person.EmployeeID,
                            FirstName  = employeeData.Person.FirstName,
                            MiddleName = employeeData.Person.MiddleName,
                            LastName   = employeeData.Person.LastName,
                            Suffix     = employeeData.Person.Suffix
                        });
                    }

                    if (TerritoriesNotCountriesArray.Contains(employeeData.Birth.CountryOfBirth.ToLower()) && string.IsNullOrWhiteSpace(employeeData.Birth.StateOfBirth))
                    {
                        switch (employeeData.Birth.CountryOfBirth.ToLower())
                        {
                        case "rq": { employeeData.Birth.StateOfBirth = "PR"; }
                        break;

                        case "gq": { employeeData.Birth.StateOfBirth = "GU"; }
                        break;

                        case "vq": { employeeData.Birth.StateOfBirth = "VI"; }
                        break;

                        case "aq": { employeeData.Birth.StateOfBirth = "AS"; }
                        break;

                        default:   { employeeData.Birth.StateOfBirth = ""; }
                        break;
                        }
                        employeeData.Birth.CountryOfBirth = "US";
                    }
                    //If there are critical errors write to the error summary and move to the next record
                    log.Info("Checking for Critical errors for user: "******"Comparing HR and GCIMS Data: " + employeeData.Person.EmployeeID);

                        if (!AreEqualGCIMSToHR(gcimsRecord, employeeData, out columnList))
                        {
                            //Checking if the SSN are different
                            if (employeeData.Person.SocialSecurityNumber != gcimsRecord.Person.SocialSecurityNumber)
                            {
                                summary.SocialSecurityNumberChanges.Add(new SocialSecurityNumberChangeSummary
                                {
                                    GCIMSID    = gcimsRecord.Person.GCIMSID,
                                    EmployeeID = employeeData.Person.EmployeeID,
                                    FirstName  = employeeData.Person.FirstName,
                                    MiddleName = employeeData.Person.MiddleName,
                                    LastName   = employeeData.Person.LastName,
                                    Suffix     = employeeData.Person.Suffix,
                                    Status     = gcimsRecord.Person.Status
                                });
                            }

                            log.Info("Copying objects: " + employeeData.Person.EmployeeID);
                            helper.CopyValues <Employee>(employeeData, gcimsRecord, new string[] { "InitialResult", "InitialResultDate", "FinalResult", "FinalResultDate" });

                            log.Info("Checking if inactive record: " + employeeData.Person.EmployeeID);

                            if (employeeData.Person.Status == "Inactive")
                            {
                                summary.InactiveRecords.Add(new InactiveSummary
                                {
                                    GCIMSID    = gcimsRecord.Person.GCIMSID,
                                    EmployeeID = employeeData.Person.EmployeeID,
                                    FirstName  = employeeData.Person.FirstName,
                                    MiddleName = employeeData.Person.MiddleName,
                                    LastName   = employeeData.Person.LastName,
                                    Suffix     = employeeData.Person.Suffix,
                                    Status     = employeeData.Person.Status
                                });

                                log.Warn("Inactive Record: " + employeeData.Person.EmployeeID);
                            }

                            log.Info("Updating Record: " + employeeData.Person.EmployeeID);

                            if (Convert.ToBoolean(ConfigurationManager.AppSettings["DEBUG"].ToString()))
                            {
                                updatedResults = new ProcessResult
                                {
                                    Result = -1,
                                    Action = "Testing",
                                    Error  = "SQL Error (Testing)"
                                };
                            }
                            else
                            {
                                updatedResults = save.UpdatePersonInformation(gcimsRecord.Person.GCIMSID, employeeData);
                            }

                            if (updatedResults.Result > 0)
                            {
                                summary.SuccessfulUsersProcessed.Add(new ProcessedSummary
                                {
                                    GCIMSID        = gcimsRecord.Person.GCIMSID,
                                    EmployeeID     = employeeData.Person.EmployeeID,
                                    FirstName      = employeeData.Person.FirstName,
                                    MiddleName     = employeeData.Person.MiddleName,
                                    LastName       = employeeData.Person.LastName,
                                    Suffix         = employeeData.Person.Suffix,
                                    Action         = updatedResults.Action,
                                    UpdatedColumns = columnList
                                });

                                log.Info("Successfully Updated Record: " + employeeData.Person.EmployeeID);
                            }
                            else
                            {
                                summary.UnsuccessfulUsersProcessed.Add(new ProcessedSummary
                                {
                                    GCIMSID    = gcimsRecord.Person.GCIMSID,
                                    EmployeeID = employeeData.Person.EmployeeID,
                                    FirstName  = employeeData.Person.FirstName,
                                    MiddleName = employeeData.Person.MiddleName,
                                    LastName   = employeeData.Person.LastName,
                                    Suffix     = employeeData.Person.Suffix,
                                    Status     = employeeData.Person.Status,
                                    Action     = updatedResults.Error
                                });

                                log.Error("Unable to update: " + employeeData.Person.EmployeeID);
                            }
                        }
                        else
                        {
                            log.Info("HR and GCIMS Data are the same: " + employeeData.Person.EmployeeID);

                            summary.IdenticalRecords.Add(new IdenticalRecordSummary
                            {
                                GCIMSID    = gcimsRecord.Person.GCIMSID,
                                EmployeeID = employeeData.Person.EmployeeID,
                                FirstName  = employeeData.Person.FirstName,
                                MiddleName = employeeData.Person.MiddleName,
                                LastName   = employeeData.Person.LastName,
                                Suffix     = employeeData.Person.Suffix,
                                Status     = gcimsRecord.Person.Status
                            });
                        }
                    }
                }

                emailData.HRFilename        = Path.GetFileName(HRFile);
                emailData.HRAttempted       = usersToProcess.Count;
                emailData.HRIdentical       = summary.IdenticalRecords.Count;
                emailData.HRSocial          = summary.SocialSecurityNumberChanges.Count;
                emailData.HRSucceeded       = summary.SuccessfulUsersProcessed.Count;
                emailData.HRInactive        = summary.InactiveRecords.Count;
                emailData.HRRecordsNotFound = summary.RecordsNotFound.Count;
                emailData.HRFailed          = summary.UnsuccessfulUsersProcessed.Count;
                emailData.HRHasErrors       = summary.UnsuccessfulUsersProcessed.Count > 0;

                //Add log entries
                log.Info("HR Records Updated: " + String.Format("{0:#,###0}", summary.SuccessfulUsersProcessed.Count));
                log.Info("HR Users Not Processed: " + String.Format("{0:#,###0}", summary.UnsuccessfulUsersProcessed.Count));
                log.Info("HR Total Records: " + String.Format("{0:#,###0}", usersToProcess.Count));

                summary.GenerateSummaryFiles(emailData);
            }
            //Catch all errors
            catch (Exception ex)
            {
                log.Error("Process HR Users Error:" + ex.Message + " " + ex.InnerException + " " + ex.StackTrace);
            }
        }