private void JwsConverter_MapOrgLevelHandler(object sender, OrgLevelEventArgs e) { var level = 0; var name = string.Empty; var number = string.Empty; if (e.DivisonNumber.IsEmpty() && e.DepartmentNumber.IsEmpty()) return; var organizationSet = false; if (_oranizartions == null) { _oranizartions = new Organization(e.CompanyId); var tiers = _oranizartions.Tiers; var count = _oranizartions.Tiers.Count; } //tiers.Where(c => c.Id == ) if (!e.DivisonNumber.IsEmpty()) { var subOrgs = _oranizartions.Tiers.Where(c => c.Number == e.DivisonNumber).ToList(); var orgLevel4 = _oranizartions.Tiers.Where(c => c.TierLevel == 3 && c.Id.Contains(e.DivisonNumber)).ToList(); level = 3; number = e.DivisonNumber; } if (!e.DivisionName.IsEmpty()) { var subOrgs = _oranizartions.Tiers.Where(c => c.TierLevel == 3 && c.Name.ToUpper() == e.DivisionName.ToUpper()).ToList(); if (subOrgs.Any()) { var division = subOrgs.First(); e.Record.TierLevel = 3; e.Record.TierLevelId = division.Id; e.CostCenterName = division.Name; organizationSet = true; } level = 3; name = e.DivisionName; number = e.DivisonNumber; } if (!e.DepartmentNumber.IsEmpty() && !e.Name.IsEmpty()) { var subOrgs = _oranizartions.Tiers.Where(c => c.TierLevel == 4 && c.Name.ToUpper() == e.Name.ToUpper()).ToList(); if (subOrgs.Any()) { var department = subOrgs.First(); e.Record.TierLevel = 4; e.Record.TierLevelId = department.Id; e.CostCenterName = department.Name; organizationSet = true; } level = 4; name = e.Name; number = e.DepartmentNumber; } else if (!e.DepartmentNumber.IsEmpty()) { var subOrgs = _oranizartions.Tiers.Where(c => c.TierLevel == 4 && c.Id == e.DepartmentNumber.PadLeft(6, '0')).ToList(); if (subOrgs.Any()) { var department = subOrgs.First(); e.Record.TierLevel = 4; e.Record.TierLevelId = department.Id; e.CostCenterName = department.Name; organizationSet = true; } level = 4; number = e.DepartmentNumber; } if (!e.Level5Number.IsEmpty()) { var subOrgs = _oranizartions.Tiers.Where(c => c.Id.Contains(e.Level5Number)).ToList(); var orgLevel5 = _oranizartions.Tiers.Where(c => c.TierLevel == 5).ToList(); level = 5; } if (!organizationSet) { var subOrg = _oranizartions.Tiers.FirstOrDefault(c => c.TierLevel == 2); e.Record.TierLevel = 2; e.Record.TierLevelId = subOrg.Id; var invalidOrgLevel = new InvalidOrgLevel { Level = level, Name = name, Number = number }; LogMissingMappings(invalidOrgLevel); } }
protected void OnOrgLevelEvent(OrgLevelEventArgs args) { MapOrgLevelHandler?.Invoke(this, args); }