public Entity.BaseResponse <List <Entity.KitDevice> > ProvisionKit(Entity.ProvisionKitRequest request) { Entity.BaseResponse <List <Entity.KitDevice> > result = new Entity.BaseResponse <List <Entity.KitDevice> >(); try { _logger.InfoLog(LogHandler.Constants.ACTION_ENTRY, null, "", "", this.GetType().Name, MethodBase.GetCurrentMethod().Name); using (var sqlDataAccess = new SqlDataAccess(ConnectionString)) { var kitDevices = string.Join(",", request.KitDevices); List <System.Data.Common.DbParameter> parameters = sqlDataAccess.CreateParams(component.helper.SolutionConfiguration.CompanyId, component.helper.SolutionConfiguration.Version); parameters.Add(sqlDataAccess.CreateParameter("kitCode", request.KitCode, DbType.String, ParameterDirection.Input)); parameters.Add(sqlDataAccess.CreateParameter("uniqueId", kitDevices, DbType.String, ParameterDirection.Input)); parameters.Add(sqlDataAccess.CreateParameter("greenhouseguid", request.GreenHouseGuid, DbType.Guid, ParameterDirection.Input)); parameters.Add(sqlDataAccess.CreateParameter("culture", component.helper.SolutionConfiguration.Culture, DbType.String, ParameterDirection.Input)); parameters.Add(sqlDataAccess.CreateParameter("enableDebugInfo", component.helper.SolutionConfiguration.EnableDebugInfo, DbType.String, ParameterDirection.Input)); System.Data.Common.DbDataReader dbDataReader = sqlDataAccess.ExecuteReader(sqlDataAccess.CreateCommand("[Provision_HardwareKit]", CommandType.StoredProcedure, null), parameters.ToArray()); result.Data = DataUtils.DataReaderToList <Entity.KitDevice>(dbDataReader, null); if (parameters.Where(p => p.ParameterName.Equals("output")).FirstOrDefault().Value.ToString() == "1") { result.Message = parameters.Where(p => p.ParameterName.Equals("fieldname")).FirstOrDefault().Value.ToString(); } } _logger.InfoLog(LogHandler.Constants.ACTION_EXIT, null, "", "", this.GetType().Name, MethodBase.GetCurrentMethod().Name); } catch (Exception ex) { _logger.ErrorLog(ex, this.GetType().Name, MethodBase.GetCurrentMethod().Name); } return(result); }
public Entity.BaseResponse <bool> ProvisionKit(Entity.ProvisionKitRequest request) { Entity.BaseResponse <bool> response = new Entity.BaseResponse <bool>(true); try { response = _service.ProvisionKit(request); } catch (Exception ex) { return(new Entity.BaseResponse <bool>(false, ex.Message)); } return(response); }
public Entity.BaseResponse <List <Entity.HardwareKit> > ProvisionKit(Entity.ProvisionKitRequest request) { Entity.BaseResponse <List <Entity.HardwareKit> > result = new Entity.BaseResponse <List <Entity.HardwareKit> >(); try { logger.Information(Constants.ACTION_ENTRY, "DeviceRepository.ProvisionKit"); using (var sqlDataAccess = new SqlDataAccess(ConnectionString)) { List <System.Data.Common.DbParameter> parameters = sqlDataAccess.CreateParams(component.helper.SolutionConfiguration.CompanyId, component.helper.SolutionConfiguration.Version); parameters.Add(sqlDataAccess.CreateParameter("kitCode", request.KitCode, DbType.String, ParameterDirection.Input)); parameters.Add(sqlDataAccess.CreateParameter("uniqueId", request.UniqueId, DbType.String, ParameterDirection.Input)); parameters.Add(sqlDataAccess.CreateParameter("culture", component.helper.SolutionConfiguration.Culture, DbType.String, ParameterDirection.Input)); parameters.Add(sqlDataAccess.CreateParameter("enableDebugInfo", component.helper.SolutionConfiguration.EnableDebugInfo, DbType.String, ParameterDirection.Input)); System.Data.Common.DbDataReader dbDataReader = sqlDataAccess.ExecuteReader(sqlDataAccess.CreateCommand("[HardwareKit_GetStatus]", CommandType.StoredProcedure, null), parameters.ToArray()); result.Data = DataUtils.DataReaderToList <Entity.HardwareKit>(dbDataReader, null); } logger.Information(Constants.ACTION_EXIT, "DeviceRepository.ProvisionKit"); } catch (Exception ex) { logger.Error(Constants.ACTION_EXCEPTION, ex); } return(result); }
public Entity.BaseResponse <bool> ProvisionKit(Entity.ProvisionKitRequest request) { Entity.BaseResponse <bool> result = new Entity.BaseResponse <bool>(true); try { var repoResult = _deviceRepository.ProvisionKit(request); if (repoResult != null && repoResult.Data != null && repoResult.Data.Any()) { Entity.HardwareKit hardwareKit = repoResult.Data.FirstOrDefault(); string templateGuid = _lookupService.GetIotTemplateGuidByName(hardwareKit.KitTypeName); IOT.AddDeviceModel iotDeviceDetail = new IOT.AddDeviceModel() { DisplayName = hardwareKit.Name, entityGuid = request.WingGuid.ToString(), uniqueId = hardwareKit.UniqueId, deviceTemplateGuid = templateGuid, note = hardwareKit.Note, properties = new List <IOT.AddProperties>() }; var addDeviceResult = _iotConnectClient.Device.Add(iotDeviceDetail).Result; if (addDeviceResult != null && addDeviceResult.status && addDeviceResult.data != null) { IOT.DataResponse <IOT.AcquireDeviceResult> acquireResult = _iotConnectClient.Device.AcquireDevice(hardwareKit.UniqueId, new IOT.AcquireDeviceModel()).Result; Model.Elevator dbDevice = new Model.Elevator() { Guid = Guid.Parse(addDeviceResult.data.newid.ToUpper()), CompanyGuid = SolutionConfiguration.CompanyId, EntityGuid = request.WingGuid, TemplateGuid = Guid.Parse(templateGuid), UniqueId = hardwareKit.UniqueId, Name = hardwareKit.Name, Note = hardwareKit.Note, Description = request.Description, Specification = request.Specification, IsProvisioned = acquireResult.status, IsActive = true, IsDeleted = false, CreatedDate = DateTime.UtcNow, CreatedBy = SolutionConfiguration.CurrentUserId }; if (request.ImageFile != null) { dbDevice.Image = SaveElevatorImage(dbDevice.Guid, request.ImageFile); } Entity.ActionStatus actionStatus = _deviceRepository.Manage(dbDevice); if (!actionStatus.Success) { _logger.ErrorLog(new Exception($"Device is not added in solution database, Error: {actionStatus.Message}"), this.GetType().Name, MethodBase.GetCurrentMethod().Name); var deleteEntityResult = _iotConnectClient.Device.Delete(dbDevice.Guid.ToString()).Result; if (deleteEntityResult != null && deleteEntityResult.status) { _logger.ErrorLog(new Exception($"Device is not deleted from iotconnect, Error: {actionStatus.Message}"), this.GetType().Name, MethodBase.GetCurrentMethod().Name); actionStatus.Success = false; actionStatus.Message = "Something Went Wrong!"; } } var dbhardwareKit = _hardwareKitRepository.GetByUniqueId(t => t.KitCode == request.KitCode); if (dbhardwareKit != null) { dbhardwareKit.CompanyGuid = SolutionConfiguration.CompanyId; _hardwareKitRepository.Update(dbhardwareKit); } } else { _logger.ErrorLog(new Exception($"Device is not deleted from iotconnect, Error: {addDeviceResult.message}"), this.GetType().Name, MethodBase.GetCurrentMethod().Name); result.IsSuccess = false; result.Message = "Something Went Wrong!"; } } else { return(new Entity.BaseResponse <bool>(false, repoResult.Message)); } } catch (Exception ex) { _logger.ErrorLog(ex, $"Device.GetDeviceStatus, Error: {ex.Message}"); return(null); } return(result); }
public Entity.BaseResponse <bool> ProvisionKit(Entity.ProvisionKitRequest request) { Entity.BaseResponse <bool> result = new Entity.BaseResponse <bool>(true); try { Entity.BaseResponse <List <Entity.KitDevice> > kitDeviceList = _deviceRepository.ProvisionKit(request); if (kitDeviceList != null && kitDeviceList.Data != null && kitDeviceList.Data.Any()) { List <Entity.KitDevice> deviceList = kitDeviceList.Data.OrderBy(d => d.ParentDeviceGuid.HasValue).ToList(); string templateGuid = _lookupService.GetIotTemplateGuidByName(deviceList.FirstOrDefault().TemplateName); if (!string.IsNullOrEmpty(templateGuid)) { List <Model.Device> lstAddedDevice = new List <Model.Device>(); bool IsDeviceAdded = true; foreach (var device in deviceList) { string tagName = string.Empty; if (device.ParentDeviceGuid.HasValue) { var kitType = _kitTypeAttributeRepository.FindBy(t => t.Guid == device.TagGuid).FirstOrDefault(); if (kitType != null) { tagName = kitType.Tag.ToString(); } else { throw new Exception("Device tag is not exists in solution."); } } IOT.AddDeviceModel iotDeviceDetail = new IOT.AddDeviceModel() { DisplayName = device.Name, entityGuid = request.GreenHouseGuid.ToString(), uniqueId = device.UniqueId, deviceTemplateGuid = templateGuid,// device.TemplateGuid.ToString(), parentDeviceGuid = device.ParentDeviceGuid.ToString(), note = device.Note, tag = tagName,//device.Tag, properties = new List <IOT.AddProperties>() }; var addDeviceResult = _iotConnectClient.Device.Add(iotDeviceDetail).Result; if (addDeviceResult != null && addDeviceResult.status && addDeviceResult.data != null) { Guid newDeviceId = Guid.Parse(addDeviceResult.data.newid.ToUpper()); IOT.DataResponse <IOT.AcquireDeviceResult> acquireResult = _iotConnectClient.Device.AcquireDevice(device.UniqueId, new IOT.AcquireDeviceModel()).Result; var intUpdated = deviceList.Where(d => d.ParentDeviceGuid == device.Guid).Select(d => d.ParentDeviceGuid = newDeviceId).Count(); lstAddedDevice.Add(new Model.Device() { Guid = newDeviceId, CompanyGuid = SolutionConfiguration.CompanyId, GreenHouseGuid = request.GreenHouseGuid, TemplateGuid = device.TemplateGuid, ParentDeviceGuid = device.ParentDeviceGuid, Type = null, UniqueId = device.UniqueId, Name = device.Name, Note = device.Note, Tag = tagName,//device.Tag, IsProvisioned = acquireResult.status, IsActive = true, IsDeleted = false, CreatedDate = DateTime.UtcNow, CreatedBy = SolutionConfiguration.CurrentUserId }); } else { IsDeviceAdded = false; _logger.ErrorLog(new Exception($"Kit is not added in iotconnect, Error: {addDeviceResult.message}"), this.GetType().Name, MethodBase.GetCurrentMethod().Name); result.IsSuccess = false; result.Message = new UtilityHelper().IOTResultMessage(addDeviceResult.errorMessages); break; } } if (IsDeviceAdded && lstAddedDevice != null && lstAddedDevice.Any()) { foreach (var device in lstAddedDevice) { Entity.ActionStatus actionStatus = _deviceRepository.Manage(device); if (!actionStatus.Success) { _logger.ErrorLog(new Exception($"Device is not added in solution database, Error: {actionStatus.Message}"), this.GetType().Name, MethodBase.GetCurrentMethod().Name); var deleteEntityResult = _iotConnectClient.Device.Delete(device.Guid.ToString()).Result; if (deleteEntityResult != null && deleteEntityResult.status) { _logger.ErrorLog(new Exception($"Device is not deleted from iotconnect"), this.GetType().Name, MethodBase.GetCurrentMethod().Name); actionStatus.Success = false; actionStatus.Message = "Something Went Wrong!"; } } } } if (result.IsSuccess) { result.Message = "Kit Added Successfully!"; //Update companyid in hardware kit var hardwareKit = _hardwareKitRepository.GetByUniqueId(t => t.KitCode == request.KitCode); if (hardwareKit != null) { hardwareKit.CompanyGuid = SolutionConfiguration.CompanyId; _hardwareKitRepository.Update(hardwareKit); } } } else { result.IsSuccess = false; result.Data = false; result.Message = "Unable To Locate Kit Type."; } } else { result.IsSuccess = false; result.Data = false; result.Message = "Invalid Kit Details.Please Correct It!"; } } catch (Exception ex) { _logger.ErrorLog(ex, this.GetType().Name, MethodBase.GetCurrentMethod().Name); return(null); } return(result); }