コード例 #1
0
        //check if image exists
        public IActionResult CheckImage(CreateDeviceModel deviceData)
        {
            DBManagerShared dbsharedManager = new DBManagerShared(configuration);
            List <string>   categories      = dbsharedManager.GetCategories();
            List <string>   modelNames      = dbsharedManager.GetModelNames();

            deviceData.Categories = categories;
            deviceData.ModelNames = modelNames;

            //check if image exists, if modelName is supplied
            if (deviceData.Device.Model.ModelName != null)
            {
                int modelID = dbsharedManager.GetModelID(deviceData.Device.Model.ModelName);


                //check if image path exists
                string filename  = $"Capture_{modelID}.png";
                string imagepath = (string)AppDomain.CurrentDomain.GetData("webRootPath") + "\\DeviceContent\\" + filename;
                if (System.IO.File.Exists(imagepath))
                {
                    deviceData.Image = filename;
                }
            }

            return(View("CreateDevice", deviceData));
        }
コード例 #2
0
        public Device CreateDevice(CreateDeviceModel model, string accountId)
        {
            var entity = model.ToDest();

            entity.Id = accountId;
            PrepareCreate(entity);
            return(context.Device.Add(entity).Entity);
        }
コード例 #3
0
        public ActionResult Create()
        {
            var viewModel = new CreateDeviceModel
            {
                DeviceSecret = Guid.NewGuid().ToString().ToUpper()
            };

            return(View(viewModel));
        }
コード例 #4
0
        public AppUser MakeDeviceAccount(CreateDeviceModel model)
        {
            var entity = new AppUser
            {
                UserName       = model.username,
                PasswordHash   = model.password,
                ActivationCode = model.ActivationCode
            };

            return(entity);
        }
コード例 #5
0
        public ValidationResult ValidateCreateDevice(ClaimsPrincipal principal,
                                                     CreateDeviceModel model, string validActCode)
        {
            var builder = new AppResultBuilder();

            if (model.ActivationCode != validActCode)
            {
                builder = builder.InvalidActivationCode();
            }
            if (builder.Results.Any())
            {
                return(ValidationResult.Fail(builder));
            }
            return(ValidationResult.Pass());
        }
コード例 #6
0
        public ActionResult Create(CreateDeviceModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var synchronizersRole = this.AmiClient.GetRoles(r => r.Name == "SYNCHRONIZERS").CollectionItem.FirstOrDefault();
                    var deviceRole        = this.AmiClient.GetRoles(r => r.Name == "DEVICE").CollectionItem.FirstOrDefault();

                    var device = this.AmiClient.CreateDevice(model.ToSecurityDeviceInfo());

                    var securityUserInfo = new SecurityUserInfo
                    {
                        Password = model.DeviceSecret,
                        Roles    = new List <SecurityRoleInfo>
                        {
                            deviceRole,
                            synchronizersRole
                        },
                        UserName = model.Name,
                        User     = new SecurityUser
                        {
                            Key          = Guid.NewGuid(),
                            UserClass    = UserClassKeys.ApplicationUser,
                            UserName     = model.Name,
                            SecurityHash = Guid.NewGuid().ToString()
                        },
                    };

                    this.AmiClient.CreateUser(securityUserInfo);

                    TempData["success"] = Locale.DeviceCreatedSuccessfully;

                    return(RedirectToAction("ViewDevice", new { id = device.Id }));
                }
            }
            catch (Exception e)
            {
                Trace.TraceError($"Unable to create device: {e}");
            }

            TempData["error"] = Locale.UnableToCreateDevice;

            return(View(model));
        }
コード例 #7
0
        //get model name and category names before returning to view
        public IActionResult CreateDevice()
        {
            //get data from database
            DBManagerShared sharedDBManager = new DBManagerShared(configuration);
            List <string>   categories      = sharedDBManager.GetCategories();
            List <string>   modelNames      = sharedDBManager.GetModelNames();


            //create view model
            CreateDeviceModel deviceData = new CreateDeviceModel();

            deviceData.Categories = categories;
            deviceData.ModelNames = modelNames;
            deviceData.Device     = new DeviceModel();

            //check if image exists in folder, based on model ID

            return(View(deviceData));
        }
コード例 #8
0
        public ActionResult AddNewDevice(CreateDeviceModel model)
        {
            if (Session["logUserID"] == null)
            {
                return(RedirectToAction("Logout", "Users"));
            }
            Device newDevice = new Device();

            List <Device> listDevice = db.Devices.ToList();
            int           newID      = int.Parse(listDevice.Last().device_id.Substring(1)) + 1;

            newDevice.device_id     = "P" + newID;
            newDevice.device_name   = model.device_name;
            newDevice.description   = model.description;
            newDevice.device_status = 2;

            db.Devices.Add(newDevice);
            db.SaveChanges();
            return(RedirectToAction("Index", "Admin"));
        }
コード例 #9
0
        public void Handle(PayloadMessage message)
        {
            try
            {
                if (message.Value == null || message.Value == "null")
                {
                    LogResult.Report(Log, "log_ForInfo", "Kafka Message is Null");
                    return;
                }

                string s = message.Value;

                if (CreateDeviceEvent != null && CreateDeviceEvent.ActionUTC != null)
                {
                    if (CreateDeviceEvent.ActionUTC.ToString() != null && message.Value.Contains(CreateDeviceEvent.ActionUTC.ToString("yyyy-MM-ddThh:mm:ss")) && message.Value.Contains(CreateDeviceEvent.ReceivedUTC.ToString()) &&
                        CreateDeviceEvent.DeviceUID.ToString() != null && message.Value.Contains(CreateDeviceEvent.DeviceUID.ToString()))
                    {
                        deviceServiceCreateResponse = JsonConvert.DeserializeObject <CreateDeviceModel>(message.Value);
                    }
                    LogResult.Report(Log, "log_ForInfo", string.Format("Response Received With Offset {0}: {1}", message.OffSet, message.Value));

                    if (UpdateDeviceEvent != null && UpdateDeviceEvent.ActionUTC != null && UpdateDeviceEvent.DeviceUID != Guid.Empty)
                    {
                        if (UpdateDeviceEvent.ActionUTC.ToString() != null && message.Value.Contains(UpdateDeviceEvent.ActionUTC.ToString("yyyy-MM-ddThh:mm:ss")) && message.Value.Contains(UpdateDeviceEvent.ReceivedUTC.ToString()) &&
                            UpdateDeviceEvent.DeviceUID.ToString() != null && message.Value.Contains(UpdateDeviceEvent.DeviceUID.ToString()))
                        {
                            deviceServiceUpdateResponse = JsonConvert.DeserializeObject <UpdateDeviceModel>(message.Value);
                        }
                        LogResult.Report(Log, "log_ForInfo", string.Format("Response Received With Offset {0}: {1}", message.OffSet, message.Value));
                    }
                }
            }
            catch (Exception e)
            {
                LogResult.Report(Log, "log_ForError", "Got Error While Handling Response", e);
                throw new Exception(e + "Got Error While Handling Response");
            }
        }
コード例 #10
0
        public async Task <IActionResult> Create(CreateDeviceModel model)
        {
            if (ModelState.IsValid)
            {
                var validCode        = _service.GetActivationCode(model.username);
                var validationResult = _service.ValidateCreateDevice(User, model, validCode);
                if (!validationResult.Valid)
                {
                    return(BadRequest(validationResult.Result));
                }
                //create user account
                var account = _service.MakeDeviceAccount(model);
                using (var trans = context.Database.BeginTransaction())
                {
                    var result = await _identityService.CreateUserWithRolesTransactionAsync(account, model.password,
                                                                                            new List <string>() { Data.RoleName.Device });

                    if (result.Succeeded)
                    {
                        //create device
                        var entity = _service.CreateDevice(model, account.Id);
                        context.SaveChanges();
                        trans.Commit();
                        return(Created($"/{ApiEndpoint.DEVICE_API}?id={entity.Id}",
                                       new AppResultBuilder().Success(entity.Id)));
                    }
                    foreach (var err in result.Errors)
                    {
                        ModelState.AddModelError(err.Code, err.Description);
                    }
                }
            }
            var builder = ResultHelper.MakeInvalidAccountRegistrationResults(ModelState);

            return(BadRequest(builder.Results));
        }
コード例 #11
0
        //Add Device to Database
        public IActionResult AddDeviceToDB(CreateDeviceModel deviceData)
        {
            //initializing DB managers
            DBManagerDevice dbManager       = new DBManagerDevice(configuration);
            DBManagerShared dbsharedManager = new DBManagerShared(configuration);
            int             modelID         = dbsharedManager.GetModelID(deviceData.Device.Model.ModelName);

            //check if image exists
            //  string filename = $"Capture_{modelID}.png";
            string imagepath = deviceData.Image;
            string _webroot  = (string)AppDomain.CurrentDomain.GetData("webRootPath");

            if (!imagepath.Contains(_webroot))
            {
                //convet image source to byte array
                string sourceimage = deviceData.Image;
                string base64      = sourceimage.Substring(sourceimage.IndexOf(',') + 1);
                byte[] datastream  = Convert.FromBase64String(base64);

                //convert byte array to image file
                using (MemoryStream m = new MemoryStream(datastream))
                {
                    using (Image image = Image.FromStream(m))
                    {
                        string root    = (string)AppDomain.CurrentDomain.GetData("webRootPath");
                        string webroot = root + "\\DeviceContent";

                        string filename = "\\Capture.png";
                        if (Directory.Exists(webroot))
                        {
                            // save image to directory
                            image.Save(webroot + filename, ImageFormat.Png);
                            m.Dispose();
                            image.Dispose();
                            datastream = null;

                            //get filename
                            deviceData.Image = filename;
                        }
                    }
                }
            }


            //Add device to database
            DeviceModel data = deviceData.Device;

            data.ChangedBy = HttpContext.Session.GetString("uniLogin");
            int deviceID = dbManager.CreateDevice(data);

            //return device info to Edit view
            data = dbManager.GetDeviceInfoWithLocation(deviceID);
            List <DeviceModel> logs       = dbManager.GetDeviceLogs(deviceID);
            List <string>      categories = dbsharedManager.GetCategories();
            List <string>      modelNames = dbsharedManager.GetModelNames();

            modelID = dbsharedManager.GetModelID(data.Model.ModelName);

            EditDeviceModel editdata = new EditDeviceModel();

            editdata.Device     = data;
            editdata.Logs       = logs;
            editdata.Categories = categories;
            editdata.ModelNames = modelNames;
            editdata.Room       = new string($"{data.Location.Location.Building}.{data.Location.Location.RoomNumber.ToString()}");
            editdata.Shelf      = new string($"{data.Location.ShelfName}.{data.Location.ShelfLevel}.{data.Location.ShelfSpot}");
            editdata.ImagePath  = $"Capture_{modelID}.png";

            return(View("EditView", editdata));
        }