Example #1
0
        public List <SCAuditDeployBsm> Process_SCAuditDeployList(List <SCAuditDeploy> sCAudits)
        {
            var returnList = new List <SCAuditDeployBsm>();

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


                scAuditBsm.Asset_Desc_Code = scAuditBsm.Audit_Part_Code;
                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();
                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) : "";

                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(t1 => scAuditBsm.Asset_Desc_Code_Split.Any(t2 => t1.Name?.ToUpper() == t2.ToUpper() ||
                                                                                                                   t1.Code?.ToUpper() == t2.ToUpper() || t1.CodeEsteem?.ToUpper() == t2.ToUpper() ||
                                                                                                                   t1.CodeEsteemAlt?.ToUpper() == t2.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();

                // Clean SerialNumberReturned
                scAuditBsm.SerialNumberReturned = (bool)scAuditBsm.Audit_Ser_Num_Returned?.Contains('/') ?
                                                  scAuditBsm.Audit_Ser_Num_Returned.Substring(scAuditBsm.Audit_Ser_Num_Returned.IndexOf('/') + 1) : scAuditBsm.Audit_Ser_Num_Returned;
                scAuditBsm.SerialNumberReturned = scAuditBsm.SerialNumberReturned.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;

                scAuditBsm.CostCode = string.IsNullOrEmpty(scAuditBsm.Audit_Cost_Code) ? scAuditBsm.Audit_Cost_Code :
                                      scAuditBsm.Audit_Cost_Code.Contains('/') ? scAuditBsm.Audit_Cost_Code.Split('/')?[1] :
                                      scAuditBsm.Audit_Cost_Code.Contains('\\') ? scAuditBsm.Audit_Cost_Code.Split('\\')?[1] : scAuditBsm.Audit_Cost_Code;

                returnList.Add(scAuditBsm);
            });

            return(returnList);
        }
Example #2
0
 public static BAMDataModel Map_Results(SCAuditDeployBsm record)
 {
     return(Mapper.Map <SCAuditDeployBsm, BAMDataModel>(record));
 }