Exemplo n.º 1
0
        public List <SCAuditBsm> Process_SCAuditList(List <SCAudit> sCAudits)
        {
            var returnList = new List <SCAuditBsm>();

            sCAudits.ForEach(item =>
            {
                var scAuditBsm = new SCAuditBsm();
                scAuditBsm     = Map.Map_Results(item);


                scAuditBsm.Asset_Desc_Code = scAuditBsm.Audit_Prod_Desc_Alt;
                scAuditBsm.Asset_Desc      = scAuditBsm.Audit_Prod_Desc?.Replace("HPX", "HP").Replace("TAC", "").Replace("BNL", "").Replace("MOBILE", "")
                                             .Replace("WSTATION", "").Replace("WSTA", "").Replace("  ", " ").Replace("CLOUD MANAGED", "")//.Replace("ELITE", "ELITEBOOK")
                                             .Trim();

                scAuditBsm.Asset_Desc_Code_Pre = string.IsNullOrEmpty(scAuditBsm.Asset_Desc_Code) ? "" : scAuditBsm.Asset_Desc_Code.Substring(0, 3);
                scAuditBsm.Asset_Desc_Code_Suf = !string.IsNullOrEmpty(scAuditBsm.Asset_Desc_Code) && scAuditBsm.Asset_Desc_Code?.Length > 3 ? scAuditBsm.Asset_Desc_Code.Substring(3) : "";

                scAuditBsm.Asset_Desc_Code_Split = scAuditBsm.Asset_Desc?.ToUpper()?.Split(' ').Distinct().ToList();
                //scAuditBsm.Asset_Desc_Code_Split = scAuditBsm.Asset_Desc?.ToUpper()?.Split(' ').Distinct().OrderBy(x => x, new SemiNumericComparer()).ToList();
                //scAuditBsm.Asset_Desc_Code_Split = scAuditBsm.Asset_Desc?.ToUpper()?.Split(' ').Distinct().OrderBy(x => x, manufacturerComparer).ThenByDescending(x => x, new SemiNumericComparer()).ToList();

                var model = PartModels.Where(mod =>
                                             scAuditBsm.Asset_Desc_Code_Pre == mod.EsteemCode || scAuditBsm.Asset_Desc_Code_Pre == mod.EsteemCodeAlt)?.FirstOrDefault();

                /*----------------------------- If no Model exists then we're skipping the item ---- We don't want it --------------*/
                // Important Business Logic
                if (model == null)
                {
                    return;
                }

                scAuditBsm.Model = model?.Name ?? model?.Description ?? "";
                scAuditBsm.Audit_Part_Num_New = scAuditBsm.Audit_Part_Num?.Replace("BNL-", "").Replace("-NEW", "");
                scAuditBsm.AssetName          = scAuditBsm.Audit_Prod_Desc?.Replace("BNL ", "")?.Replace("  ", " ")?.Trim();
                scAuditBsm.Manufacturer       = PartManufacturers.Where(manu => scAuditBsm.Asset_Desc_Code_Split.Any(code => manu.Name?.ToUpper() == code.ToUpper() ||
                                                                                                                     manu.Code?.ToUpper() == code.ToUpper() || manu.CodeEsteem?.ToUpper() == code.ToUpper() ||
                                                                                                                     manu.CodeEsteemAlt?.ToUpper() == code.ToUpper()))?.FirstOrDefault()?.Name;

                // Clean Asset Tag
                scAuditBsm.AssetTag = (bool)scAuditBsm.Audit_Ser_Num?.Contains('/') ?
                                      scAuditBsm.Audit_Ser_Num.Substring(0, scAuditBsm.Audit_Ser_Num.IndexOf('/')) : scAuditBsm.Audit_Ser_Num;
                scAuditBsm.AssetTag = scAuditBsm.AssetTag.Trim();

                // Clean SerialNumber
                scAuditBsm.SerialNumber = (bool)scAuditBsm.Audit_Ser_Num?.Contains('/') ?
                                          scAuditBsm.Audit_Ser_Num.Substring(scAuditBsm.Audit_Ser_Num.IndexOf('/') + 1) : scAuditBsm.Audit_Ser_Num;
                scAuditBsm.SerialNumber = scAuditBsm.SerialNumber.Trim();

                scAuditBsm.DisplayName = scAuditBsm.AssetName;
                var userName           = (bool)scAuditBsm.Audit_User?.Contains('/') ? scAuditBsm.Audit_User.Substring(0, scAuditBsm.Audit_User.IndexOf('/')).Trim() : (scAuditBsm.Audit_User ?? "");
                var userNameSplit      = userName.Split(' ');
                scAuditBsm.RequestUser = userNameSplit.Length > 1 ? userNameSplit[1] + ", " + userNameSplit[0] : userName;
                returnList.Add(scAuditBsm);
            });

            return(returnList);
        }
Exemplo n.º 2
0
 public static BAMDataModel Map_Results(SCAuditBsm record)
 {
     return(Mapper.Map <SCAuditBsm, BAMDataModel>(record));
 }