示例#1
0
        public HardwareTemplate_Full CreateNewTemplate()
        {
            Guid.TryParse("c0c58e7f-7865-55cc-4600-753305b9be64", out var classTypeId);
            Guid.TryParse("e728d3d3-3104-47e3-b760-9b9863ebbd9a", out var baseId);
            Guid.TryParse("b4a14ffd-52c8-064f-c936-67616c245b35", out var hardwareAssetTypeId);
            Guid.TryParse("acdcedb7-100c-8c91-d664-4629a218bd94", out var objectStatusId);
            var hardwareAssetId = Guid.NewGuid();

            var returnValue = new HardwareTemplate_Full()
            {
                ClassName       = null,
                FullClassName   = null,
                BaseId          = null,
                LastModified    = new DateTime(0001, 01, 01, 00, 00, 00),
                TimeAdded       = new DateTime(0001, 01, 01, 00, 00, 00),
                ClassTypeId     = classTypeId.ToString(),
                HardwareAssetID = hardwareAssetId.ToString(),
                ObjectStatus    = new ObjectStatus()
                {
                    Id = objectStatusId.ToString()
                },
            };

            return(returnValue);
        }
示例#2
0
        private List <HardwareTemplate_Full> BAM_ApiPost(HardwareTemplate_Full newTemplate, HardwareTemplate_Full originalTemplate, List <HardwareTemplate_Full> returnValue, Models.HardwareTemplate_Json template)
        {
            var jsonSettings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            var json    = JsonConvert.SerializeObject(template);//, jsonSettings
            var content = new StringContent(JsonConvert.SerializeObject(template), Encoding.UTF8, "application/json");

            var queryResult_Set = _bamclient._client.PostAsync("api/V3/Projection/Commit", content).Result;

            if (!queryResult_Set.IsSuccessStatusCode)
            {
                string            responseContent   = queryResult_Set.Content.ReadAsStringAsync().Result;
                ExceptionResponse exceptionResponse = JsonConvert.DeserializeObject <ExceptionResponse>(responseContent);
                //throw new Exception(exceptionResponse.Exception);
            }

            var resultSring = queryResult_Set.Content.ReadAsStringAsync().Result;

            //var result = JsonConvert.DeserializeObject<List<BAM_HardwareTemplate>>(resultSring);
            /////-------------This could be moved out and converted into an async Task ---- we can handle response outside///
            var result = JsonConvert.DeserializeObject <BAM_Api_SuccessResponse>(resultSring);

            //if (result.BaseId != newTemplate.BaseId)
            //    throw new Exception("Updated BaseId's didn't match");

            returnValue.Add(newTemplate);
            returnValue.Add(originalTemplate);
            return(returnValue);
        }
示例#3
0
        internal async Task <EST_DataExportModel> Process_NewItemList(EST_DataExportModel model, ServiceProgressReportBsm serviceProgressReport)
        {
            if (model == null)
            {
                return(model);
            }
            var returnList = new List <SCAuditBsm>();

            model.NewItemList.ToList().ForEach(asset =>
            {
                // Check the Item doesn't already exist in the system
                var existingBamTemplate = _hardwareAssetService.GetHardwareAsset_Full(asset.SerialNumber).FirstOrDefault();

                // If so.. add it to the Updates - Change Location List
                if (existingBamTemplate != null && existingBamTemplate.Target_HardwareAssetHasLocation?.DisplayName != "Esteem")
                {
                    model.LocationChangeList.Add(asset);
                    return;
                }
                else if (existingBamTemplate != null)
                {
                    return;
                }

                // Create New Item Template - set default values
                HardwareTemplate_Full bamTemplate = CreateNewItem(asset);

                var hasModelRecord = false;
                bamTemplate        = _BAM_ModelLookupService.SetModelData(bamTemplate, asset.Asset_Desc, out hasModelRecord);

                if (hasModelRecord)
                {
                    var returnItems = _hardwareAssetService.InsertTemplate(bamTemplate).FirstOrDefault();
                }

                var updatedbamTemplate = _hardwareAssetService.GetHardwareAsset_Full(asset.SerialNumber).FirstOrDefault();
                if (updatedbamTemplate == null)
                {
                    if (updatedbamTemplate?.Target_HardwareAssetHasLocation?.DisplayName != "Esteem")
                    {
                        _reportings.Add(new BAM_ReportingBsm()
                        {
                            ServiceProgressReportId        = serviceProgressReport.Id,
                            SerialNumber                   = asset.SerialNumber,
                            AssetStatus                    = EST_HWAssetStatus.NewItem,
                            SCAudit_Item                   = asset,
                            BAM_HardwareTemplate_Exception = updatedbamTemplate,
                            ExceptionMessage               = "Failed to Update"
                        });
                        returnList.Add(asset);
                    }
                }
            });
            return(model);
        }
示例#4
0
        public HardwareTemplate_Full SetCostCode(HardwareTemplate_Full template, string costCode)
        {
            if (template == null)
            {
                throw new Exception("Template must not be null");
            }

            // Clone the object so we can check the changes
            var newHardwareAsset = CloneObject.Clone(template);

            newHardwareAsset.Target_HardwareAssetHasCostCenter = _costCenterService.CostCenterList.FirstOrDefault(x => x.DisplayName == costCode);
            return(newHardwareAsset);
        }
示例#5
0
        public HardwareTemplate_Full SetHardwareAssetStatus(HardwareTemplate_Full template, EST_HWAssetStatus hWAssetStatus)
        {
            if (template == null)
            {
                throw new Exception("Template must not be null");
            }

            // Clone the object so we can check the changes
            var newHardwareAsset = CloneObject.Clone(template);

            newHardwareAsset.HardwareAssetStatus = _assetStatusService.HardwareAssetStatusList.FirstOrDefault(x => x.Name == hWAssetStatus.ToDescriptionString());
            return(newHardwareAsset);
        }
示例#6
0
        public HardwareTemplate_Full SetUser(HardwareTemplate_Full template, BAM_User user)
        {
            if (template == null)
            {
                throw new Exception("Template must not be null");
            }

            // Clone the object so we can check the changes
            var newHardwareAsset = CloneObject.Clone(template);

            newHardwareAsset.OwnedBy = new OwnedBy
            {
                BaseId = user.Id
            };
            return(newHardwareAsset);
        }
示例#7
0
        public HardwareTemplate_Full SetHardwareAssetPrimaryUser(HardwareTemplate_Full template, string userName)
        {
            if (template == null)
            {
                throw new Exception("Template must not be null");
            }

            // Clone the object so we can check the changes
            var newHardwareAsset = CloneObject.Clone(template);

            newHardwareAsset.OwnedBy = new OwnedBy
            {
                BaseId = _userService.UserList.FirstOrDefault(x => x.Name == userName).Id
            };
            return(newHardwareAsset);
        }
示例#8
0
        public HardwareTemplate_Full SetLocation(HardwareTemplate_Full template, string siteLocation)
        {
            if (template == null)
            {
                throw new Exception("Template must not be null");
            }

            // Clone the object so we can check the changes
            var newHardwareAsset = CloneObject.Clone(template);

            //if (siteLocation == "Esteem" || siteLocation == "LTX")
            //{
            newHardwareAsset.Target_HardwareAssetHasLocation = new TargetHardwareAssetHasLocation
            {
                BaseId = "ae7423eb-0952-d69c-4d7d-77f1699bfe92",
            };
            //}
            return(newHardwareAsset);
        }
示例#9
0
        public List <HardwareTemplate_Full> InsertTemplate(HardwareTemplate_Full newTemplate)
        {
            var returnValue = new List <HardwareTemplate_Full>();

            if (newTemplate == null)
            {
                throw new Exception("Template must not be null");
            }

            // Set API NameRelationship default values
            newTemplate.NameRelationship = _bamApiRelationships;

            var template = new HardwareTemplate_Json()
            {
                formJson = new FormJson()
                {
                    Original = null,
                    Current  = newTemplate
                }
            };

            return(BAM_ApiPost(newTemplate, null, returnValue, template));
        }
示例#10
0
        public async Task B01_InsertNewAsset_Basic()
        {
            Guid.TryParse("c0c58e7f-7865-55cc-4600-753305b9be64", out var classTypeId);
            Guid.TryParse("e728d3d3-3104-47e3-b760-9b9863ebbd9a", out var baseId);
            Guid.TryParse("b4a14ffd-52c8-064f-c936-67616c245b35", out var hardwareAssetTypeId);
            Guid.TryParse("acdcedb7-100c-8c91-d664-4629a218bd94", out var objectStatusId);
            var hardwareAssetId = Guid.NewGuid();
            // Get a dummy Asset
            var asset = GetBAMAsset();

            var name         = "Hugh test";
            var serialNumber = "HUGHTEST" + new Random().Next();

            var assetStatusEnum = EST_HWAssetStatus.NewItem;
            IBAM_AssetStatusService assetStatusService = new BAM_AssetStatusService(_bamClient);
            var assetStatus = assetStatusService.GetAssetStatusTemplate(assetStatusEnum);

            var userFilter = "Britton, David";
            IBAM_UserService bamUserService = new BAM_UserService();
            var user = bamUserService.GetUser(userFilter);

            // Get Projection Template
            var hardwareTemplate = new HardwareTemplate_Full()
            {
                ClassName     = null,
                FullClassName = null,
                BaseId        = null,
                LastModified  = new DateTime(0001, 01, 01, 00, 00, 00),
                TimeAdded     = new DateTime(0001, 01, 01, 00, 00, 00),
                //LastModifiedBy = null,
                ClassTypeId     = classTypeId.ToString(),
                HardwareAssetID = hardwareAssetId.ToString(),
                Name            = name,
                ObjectStatus    = new ObjectStatus()
                {
                    Id = objectStatusId.ToString()
                },
                SerialNumber        = serialNumber,
                Manufacturer        = asset.Manufacturer,
                Model               = asset.Model,
                AssetTag            = "LOCATION" + asset.AssetName,
                DisplayName         = asset.DisplayName,
                HardwareAssetStatus = assetStatus,
                Description         = "Hugh Testing",
                //HardwareAssetType = new HardwareAssetType()
                //{
                //    Id = hardwareAssetTypeId.ToString(),
                //},
                Target_HardwareAssetHasCostCenter = new TargetHardwareAssetHasCostCenter()
                {
                    BaseId = "128bdb2d-f5bd-f8b6-440e-e3f7d8ab4858",
                    //DisplayName = "BBN.014A"
                },
                Target_HardwareAssetHasLocation = new TargetHardwareAssetHasLocation()
                {
                    //Id = "b1ae24b1-f520-4960-55a2-62029b1ea3f0",
                    BaseId = "ae7423eb-0952-d69c-4d7d-77f1699bfe92",
                    //DisplayName = "Esteem"
                },
                Target_HardwareAssetHasPrimaryUser = new TargetHardwareAssetHasPrimaryUser()
                {
                    BaseId = user.Id
                }
            };
            var hardwareAssetService = new BAM_HardwareAssetServices(_bamClient);

            var returnItems = hardwareAssetService.InsertTemplate(hardwareTemplate).FirstOrDefault();
            //Assert.IsNotNull(returnItems, "Updated Asset is null");
            //Assert.IsTrue(returnItems.SerialNumber == hardwareTemplate.SerialNumber, "SerialNumbers don't match");

            var updatedHardwareAsset = hardwareAssetService.GetHardwareAsset_Full(serialNumber).FirstOrDefault();

            Assert.IsNotNull(updatedHardwareAsset, "Updated Asset is null");
            Assert.IsTrue(updatedHardwareAsset.SerialNumber == serialNumber, "SerialNumbers don't match");
            Assert.IsNotNull(updatedHardwareAsset.HardwareAssetStatus, "AssetStatus is null");
            Assert.IsTrue(updatedHardwareAsset.HardwareAssetStatus.Name == assetStatusEnum.ToDescriptionString(), "AssetStatus don't match");
            Assert.IsTrue(updatedHardwareAsset.Manufacturer == asset.Manufacturer, "Manufacturer don't match");
            Assert.IsTrue(updatedHardwareAsset.Model == asset.Model, "Model don't match");
            Assert.IsTrue(updatedHardwareAsset.DisplayName == asset.DisplayName, "Model don't match");
            Assert.IsNotNull(updatedHardwareAsset.Target_HardwareAssetHasLocation, "Target_HardwareAssetHasLocation is null");
            Assert.IsTrue(updatedHardwareAsset.Target_HardwareAssetHasLocation.Name == "Esteem", "Target_HardwareAssetHasLocation don't match");
            Assert.IsNotNull(updatedHardwareAsset.Target_HardwareAssetHasPrimaryUser, "Target_HardwareAssetHasPrimaryUser is null");
            Assert.IsTrue(updatedHardwareAsset.Target_HardwareAssetHasPrimaryUser.DisplayName == userFilter, "Target_HardwareAssetHasPrimaryUser don't match");

            //updatedModifiedDate = (DateTime)updatedHardwareAsset.LastModified;

            //Assert.IsTrue(updatedModifiedDate != originalModifiedDate, "Original and Updated LastModified Date are the same");
            //Assert.IsTrue(updatedModifiedDate > originalModifiedDate, "Updated LastModified Date is not greater that the Original");
        }
示例#11
0
        //[TestMethod]
        public async Task B00_InsertNewAsset_OLD()
        {
            //var hardwareAssetTemplateId = "c0c58e7f-7865-55cc-4600-753305b9be64";
            var hardwareAssetTemplateId = "20d06950-4c1a-1afa-41a6-f46f4f863550";
            var projectionId            = "6fd42dd3-81b4-ec8d-14d6-08af1e83f63a";

            var asset = new BAM_Asset()
            {
                Manufacturer  = "Hewlet-Packard",
                Model         = "HP ELITEBOOK 840G3",
                SerialNumber  = "5CG749386D",
                AssetName     = "BAM-L-005289",
                DisplayName   = "HP ELITEBOOK 840G3 - Test",
                RequestUser   = "******",
                HWAssetStatus = EST_HWAssetStatus.NewItem
            };

            // Get User
            IBAM_UserService userService = new BAM_UserService(_bamClient);
            var user = userService.GetUser(asset.RequestUser);

            Assert.IsNotNull(user, "User item is null");
            Assert.IsTrue(user.Name == asset.RequestUser, "user record is not the same");

            // Get AssetStatus
            IBAM_AssetStatusService assetStatusService = new BAM_AssetStatusService();
            var assetStatus = assetStatusService.GetAssetStatusTemplate(asset.HWAssetStatus);

            Assert.IsNotNull(assetStatus, "assetStatus item is null");
            Assert.IsTrue(assetStatus.Name == asset.HWAssetStatus.ToDescriptionString(), "assetStatus record is not the same");

            // Get Projection Template
            var hardwareTemplate = new HardwareTemplate_Full()
            {
                LastModified        = new DateTime(),
                ClassTypeId         = hardwareAssetTemplateId,
                BaseId              = "e728d3d3-3104-47e3-b760-9b9863ebbd9a",
                ClassName           = "Cireson.AssetManagement.HardwareAsset",
                FullClassName       = "Hardware Asset",
                Manufacturer        = asset.Manufacturer,
                Model               = asset.Model,
                SerialNumber        = asset.SerialNumber,
                AssetTag            = asset.AssetName,
                DisplayName         = asset.DisplayName,
                HardwareAssetStatus = assetStatusService.GetAssetStatusTemplate(asset.HWAssetStatus),
                HardwareAssetType   = new HardwareAssetType()
                {
                    Id   = "b4a14ffd-52c8-064f-c936-67616c245b35",
                    Name = "Computer"
                },
                Description = "Hugh Testing",
                Target_HardwareAssetHasCostCenter = new TargetHardwareAssetHasCostCenter()
                {
                    Id          = "128bdb2d-f5bd-f8b6-440e-e3f7d8ab4858",
                    DisplayName = "BBN.014A"
                },
                Target_HardwareAssetHasLocation = new TargetHardwareAssetHasLocation()
                {
                    Id          = "b1ae24b1-f520-4960-55a2-62029b1ea3f0",
                    DisplayName = "Esteem"
                },
            };

            var template = new Models.HardwareTemplate_Json()
            {
                formJson = new FormJson()
                {
                    // Original = hardwareTemplate,
                    Current = hardwareTemplate // new BAM_HardwareTemplate()
                }
            };
            //var queryFilter = string.Format("?id={0}&createdById={1}", projectionId, user.Id);

            //var queryResult_Get = _client.GetAsync("Projection/CreateProjectionByTemplate" + queryFilter).Result;
            //if (!queryResult_Get.IsSuccessStatusCode)
            //{
            //    string responseContent = await queryResult_Get.Content.ReadAsStringAsync();
            //    ExceptionResponse exceptionResponse = JsonConvert.DeserializeObject<ExceptionResponse>(responseContent);
            //    Assert.IsNull(exceptionResponse, exceptionResponse.Exception);
            //}

            //Assert.IsTrue(queryResult_Get.IsSuccessStatusCode, "Query Status Code isn't Success: " + queryResult_Get.StatusCode.ToString());
            //Assert.IsNotNull(queryResult_Get, "queryResult is empty");

            //var resultSring_Get = queryResult_Get.Content.ReadAsStringAsync().Result;
            //Assert.IsFalse(string.IsNullOrEmpty(resultSring_Get), "Query resultSring is null");

            //var result_Get = JsonConvert.DeserializeObject<BAM_HardwareTemplate_Full[]>(resultSring_Get);
            //Assert.IsNotNull(result_Get, "queryResult is null");
            //Assert.IsTrue(result_Get.Any(), "queryResult is empty");

            //////////////-------------POST---------------////////////
            //var content = new StringContent(JsonConvert.SerializeObject(hardwareTemplate), Encoding.UTF8, "application/json");
            var jsonSettings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
            var json    = JsonConvert.SerializeObject(template, jsonSettings);
            var content = new StringContent(JsonConvert.SerializeObject(template), Encoding.UTF8, "application/json");

            var queryResult_Set = _bamClient._client.PostAsync("api/V3/Projection/Commit", content).Result;

            if (!queryResult_Set.IsSuccessStatusCode)
            {
                string responseContent = await queryResult_Set.Content.ReadAsStringAsync();

                ExceptionResponse exceptionResponse = JsonConvert.DeserializeObject <ExceptionResponse>(responseContent);
                Assert.IsNull(exceptionResponse, exceptionResponse.Exception);
            }
            Assert.IsTrue(queryResult_Set.IsSuccessStatusCode, "Query Status Code isn't Success: " + queryResult_Set.StatusCode.ToString());
            Assert.IsNotNull(queryResult_Set, "queryResult is empty");

            var resultSring = queryResult_Set.Content.ReadAsStringAsync().Result;

            Assert.IsFalse(string.IsNullOrEmpty(resultSring), "Query resultSring is null");

            var result = JsonConvert.DeserializeObject <HardwareTemplate[]>(resultSring);

            Assert.IsNotNull(result, "Query result is null");
            ////Assert.IsNotNull(result.TemplateClasses, "Articles list is null");
            ////Assert.IsTrue(result.TemplateClasses.Any(), "Articles doesn't contain any items");
        }
示例#12
0
        //public void SetManufacturer(HardwareTemplate bamTemplate)
        //{
        //    //var dataExport = _estService.GetExportData(queryBuilder);
        //    var modelDescriptions = dataExport.NewItemList.Select(x => new { ModelName = x.Audit_Prod_Desc }).Distinct();

        //    throw new NotImplementedException();
        //}

        public HardwareTemplate_Full SetModelData(HardwareTemplate_Full bamTemplate, string modelName, out bool success)
        {
            EST_BAM_ModelLookupBsm modelItem = null;

            success = false;
            foreach (var item in _eST_BAM_Models)
            {
                if (modelItem != null)
                {
                    break;
                }
                if (item.BAM_Name == modelName)
                {
                    modelItem = item; break;
                }
                var itemSplit = item.BAM_Name.ToUpper().Split(' ');
                var count     = itemSplit.Length;
                var weight    = 0;
                for (var i = 0; i < itemSplit.Length; i++)
                {
                    if (modelName.Contains(itemSplit[i]))
                    {
                        weight++;
                    }
                }
                ;
                if (weight == 0)
                {
                    continue;
                }
                if (weight == count)
                {
                    modelItem = item; break;
                }
                if ((weight + 1) == count)
                {
                    modelItem = item; break;
                }
                if ((weight + 2) == count && weight >= 3)
                {
                    modelItem = item; break;
                }
            }
            if (modelItem != null)
            {
                success = true;
            }
            else // Try to use the EsteemAltCode
            {
                foreach (var item in _eST_BAM_Models)
                {
                    if (modelItem != null)
                    {
                        break;
                    }
                    if (item.BAM_Name == modelName)
                    {
                        modelItem = item; break;
                    }
                    var itemSplit = item.Esteem_Alt_ModelString.ToUpper().Split(' ');
                    var count     = itemSplit.Length;
                    var weight    = 0;
                    for (var i = 0; i < itemSplit.Length; i++)
                    {
                        if (modelName.Contains(itemSplit[i]))
                        {
                            weight++;
                        }
                    }
                    ;
                    if (weight == 0)
                    {
                        continue;
                    }
                    if (weight == count)
                    {
                        modelItem = item; break;
                    }
                    if ((weight + 1) == count)
                    {
                        modelItem = item; break;
                    }
                    if ((weight + 2) == count && weight >= 3)
                    {
                        modelItem = item; break;
                    }
                }
            }
            if (modelItem != null)
            {
                success = true;
            }

            bamTemplate.Manufacturer = modelItem?.BAM_ManufacturerString;
            bamTemplate.Model        = modelItem?.BAM_ModelString;
            bamTemplate.Target_HardwareAssetHasCatalogItem = new Target_HardwareAssetHasCatalogItem()
            {
                // Substring ;
                Id = modelItem?.BAM_BaseId
            };
            bamTemplate.HardwareAssetType = new HardwareAssetType()
            {
                Id = string.IsNullOrEmpty(modelItem?.BAM_ModelType) ? "" :
                     !modelItem.BAM_ModelType.Contains(';') ? modelItem?.BAM_ModelType :
                     modelItem?.BAM_ModelType.Substring(0, modelItem.BAM_ModelType.IndexOf(';'))
            };
            return(bamTemplate);
        }
示例#13
0
 public static HardwareTemplate Map_Results(HardwareTemplate_Full record)
 {
     return(Mapper.Map <HardwareTemplate_Full, HardwareTemplate>(record));
 }