Beispiel #1
0
        void BTN_New_Click(object sender, EventArgs e)
        {
            try
            {
                if (!string.IsNullOrEmpty(TB_DeviceName.Text))
                {
                    Model.Device device = new Model.Device();
                    device.Id           = Guid.NewGuid();
                    device.Name         = TB_DeviceName.Text;
                    device.Producer     = TB_Producer.Text;
                    device.Number       = II_Number.Value;
                    device.Length       = DI_Length.Value;
                    device.Series       = TB_Series.Text;
                    device.ProjectId    = Guid.Empty;
                    device.SamplingRate = II_SamplingRate.Value;
                    if (CB_Curve.SelectedItem != null)
                    {
                        device.CurveId = (Guid)((DevComponents.DotNetBar.ComboBoxItem)CB_Curve.SelectedItem).Tag;
                    }
                    Model.DataHelper.InsertObject <Model.Device>(device);

                    this.DialogResult = DialogResult.OK;
                }
                else
                {
                    MessageBox.Show("ÒÇÆ÷Ãû²»ÄÜΪ¿Õ£¡");
                }
            }
            catch (Exception ex)
            {
                Program.SetStatusMessage(ex.Message);
            }
        }
Beispiel #2
0
 public DeviceDetailViewModel(INavigation nav, Model.Device item = null)
 {
     NavStack    = nav.NavigationStack;
     Title       = BuildBreadCrumb(nav, item.Name);
     Item        = item;
     SaveCommand = new Command(async() => await ExecuteSaveCommand());
 }
        private async Task <string> UpdateGroupMemberships(Model.Device device, HttpClient graphClient)
        {
            try
            {
                foreach (Group g in device.Groups)
                {
                    string serializedDeviceId;
                    serializedDeviceId = "{ \"@odata.id\" : \"https://graph.microsoft.com/beta/directoryObjects/" + device.AzureADId + "\" }";
                    string stringAssignGroupUrl = string.Format("https://graph.microsoft.com/beta/groups/{0}/members/$ref", g.Id);
                    var    ret = await graphClient.PostAsync(
                        stringAssignGroupUrl,
                        new StringContent(serializedDeviceId, Encoding.UTF8, "application/json"));

                    string content = await ret.Content.ReadAsStringAsync();

                    var resultObj = JsonConvert.DeserializeObject <JToken>(content);
                    var message   = resultObj["error"]["message"];
                    if (ret.StatusCode == System.Net.HttpStatusCode.BadRequest && !(message.ToString().StartsWith("One or more added object references already exist for the following modified properties")))
                    {
                        return(await Task.FromResult("Failed to add device to group '" + g.DisplayName + "'"));
                    }
                }
            }
            catch
            {
                return(await Task.FromResult("Failed to add device to AAD groups."));
            }

            return(await Task.FromResult("OK"));
        }
        private async Task <string> UpdateDeviceProperties(Model.Device device, HttpClient graphClient)
        {
            Dictionary <string, string> data2 = new Dictionary <string, string>();

            data2.Add("groupTag", device.GroupTag);
            if (!String.IsNullOrWhiteSpace(device.UserPrincipalName))
            {
                if (String.IsNullOrWhiteSpace(device.AddressableUserName))
                {
                    device.AddressableUserName = device.UserPrincipalName;
                }

                data2.Add("userPrincipalName", device.UserPrincipalName);
                data2.Add("addressableUserName", device.AddressableUserName);
            }
            if (!String.IsNullOrWhiteSpace(device.DeviceName))
            {
                data2.Add("displayName", device.DeviceName);
            }
            string serializedItem2 = JsonConvert.SerializeObject(data2);

            string stringUpdateDeviceUrl = string.Format("https://graph.microsoft.com/beta/devicemanagement/windowsAutopilotDeviceIdentities/{0}/UpdateDeviceProperties", device.ZtdId);
            var    result = await graphClient.PostAsync(
                stringUpdateDeviceUrl,
                new StringContent(serializedItem2, Encoding.UTF8, "application/json"));

            if (result.StatusCode != System.Net.HttpStatusCode.OK)
            {
                return(await Task.FromResult("Failed to update device properties '" + serializedItem2 + "'"));
            }


            return(await Task.FromResult("OK"));
        }
        private async Task <bool> AssignCategory(Model.Device device, HttpClient graphClient)
        {
            // For whatever reason, only the beta namespace works for this, so don't change
            // it unless you know the v1.0 namespace now works.

            string stringDeviceUrl = string.Format("https://graph.microsoft.com/beta/deviceManagement/managedDevices('{0}')/deviceCategory/$ref", device.ManagedDeviceId);
            string categoryId      = String.Empty;

            foreach (var category in device.CategoryList)
            {
                if (category.Id == device.ManagedDeviceCategoryId)
                {
                    categoryId = category.Id;
                }
            }

            string payload = string.Format("{{ \"@odata.id\": \"https://graph.microsoft.com/beta/deviceManagement/deviceCategories/{0}\"}}", categoryId);
            var    result  = await graphClient.PutAsync(
                stringDeviceUrl,
                new StringContent(payload, Encoding.UTF8, "application/json"));

            if (result.StatusCode != System.Net.HttpStatusCode.NoContent)
            {
                return(await Task.FromResult(false));
            }

            return(await Task.FromResult(true));
        }
Beispiel #6
0
            public override string ToString()
            {
                //InitParams();
                StringBuilder sb = new StringBuilder();

                if (IdList != null)
                {
                    sb.Append(StartHeight + " ");
                    sb.Append(EndHeight + " ");
                    sb.Append(Speed + " ");
                    sb.Append(IdList.Count + " ");
                    for (int i = 0; i < IdList.Count; i++)
                    {
                        sb.Append(IdList[i].ToString());
                        sb.Append("&");
                        Model.Curve  curve  = curveList.Find((c) => { return(c.Id == IdList[i]); });
                        Model.Device device = deviceList.Find((d) => { return(d.CurveId == IdList[i]); });
                        sb.Append(curve.CurveName);
                        sb.Append("&");
                        sb.Append(device.SamplingRate);
                        sb.Append(" ");
                    }
                    return(sb.ToString().Trim());
                }
                return("0 ");
            }
Beispiel #7
0
        public void SetRows(List <Model.Curve> curveList, List <Model.Device> deviceList)
        {
            this.curveList  = curveList;
            this.deviceList = deviceList;
            tableOfCheckBoxes.Clear();
            dataGridViewX1.Rows.Clear();
            for (int i = 0; i < curveList.Count; i++)
            {
                DataGridViewRow        row    = new DataGridViewRow();
                Model.Device           device = deviceList.Find((de) => { return(de.CurveId == curveList[i].Id); });
                DataGridViewLabelXCell cell1  = new DataGridViewLabelXCell();
                cell1.Value = curveList[i].CurveName;
                DataGridViewLabelXCell cell2 = new DataGridViewLabelXCell();
                DataGridViewLabelXCell cell3 = new DataGridViewLabelXCell();
                if (device != null)
                {
                    cell2.Value = device.Name;
                    cell3.Value = device.SamplingRate;
                }
                else
                {
                    cell2.Value = "未设定";
                    cell3.Value = "未设定";
                }
                DataGridViewLabelXCell cell4 = new DataGridViewLabelXCell();
                cell4.Tag = curveList[i].Id;
                Data.DataFetcher fe = GlobalTable.GlobalTables.Instance.GetFetcher(curveList[i].Id);
                if (fe == null)
                {
                    cell4.Value = "未设定";
                }
                else
                {
                    cell4.Value = fe.ToString();
                }

                //DataGridViewLabelXCell cell5 = new DataGridViewLabelXCell();
                //cell5.Tag = curveList[i].Id;
                //if (fe is Data.NetDataFetcher)
                //    cell5.Value = (fe as Data.NetDataFetcher).GetFetcherState(curveList[i].Id);
                //else
                //    cell5.Value = "位置";

                DataGridViewCheckBoxCell cell6 = new DataGridViewCheckBoxCell();
                tableOfCheckBoxes.Add(curveList[i].Id, cell6);
                cell6.Tag = curveList[i].Id;
                //if (cell5.Value.ToString() == "传输中")
                //{
                //    cell6.Value = true;
                //}

                row.Cells.Add(cell1);
                row.Cells.Add(cell2);
                row.Cells.Add(cell3);
                row.Cells.Add(cell4);
                // row.Cells.Add(cell5);
                row.Cells.Add(cell6);
                dataGridViewX1.Rows.Add(row);
            }
        }
        public DevicePage(Model.Device device)
        {
            InitializeComponent();

            if (this.Width > this.Height)
            {
                outerStack.Orientation = StackOrientation.Horizontal;
            }
            else
            {
                outerStack.Orientation = StackOrientation.Vertical;
            }

            viewModel        = new DeviceViewModel();
            viewModel.Device = device;

            BindingContext = this.viewModel;

            int i = 0;

            foreach (var item in device.CategoryList)
            {
                if (item.Id == device.ManagedDeviceCategoryId)
                {
                    this.DeviceCategory.SelectedIndex = i;
                }
                i++;
            }
        }
Beispiel #9
0
        public Domain.Model.Device Handle(DeviceQuery query)
        {
            Device device =
                _entities.Query <Device>()
                .Where(p => p.ID == query.DeviceID).Single <Device>();


            Domain.Model.Device model = new Model.Device(device.ID,
                                                         device.SerialNo,
                                                         device.Room.Department.Site.SiteName,
                                                         device.Room.Department.HospitalDepartment.HospitalDepartmentName,
                                                         device.Room.RoomNo,
                                                         device.SubModality.Modality.ModalityName,
                                                         device.SubModality.Modality.ID,
                                                         device.SubModality.SubModalityName,
                                                         device.ProductLine.Supplier.SupplierName,
                                                         device.ProductLine.ProductLineName,
                                                         device.ProductLine.ProductLineName + " " + device.SerialNo

                                                         );



            return(model);
        }
Beispiel #10
0
        public IEnumerable <Domain.Model.Device> Handle(DevicesQuery query)
        {
            IEnumerable <Device> devices =
                _entities.Query <Device>()
                .Where(p => (!query.roomID.HasValue || p.roomID == query.roomID) &&
                       (!query.deviceTypeID.HasValue || p.deviceTypeID == query.deviceTypeID) &&
                       (query.modalityID == null || p.SubModality.ID == query.modalityID) &&
                       (query.subModalityID == null || p.submodalityID == query.subModalityID) &&
                       (!query.productLineID.HasValue || p.ProductLineID == query.productLineID)
                       ).AsEnumerable();

            List <Domain.Model.Device> models = new List <Domain.Model.Device>();

            foreach (Device device in devices)
            {
                Domain.Model.Device model = new Model.Device(device.ID,
                                                             device.SerialNo,
                                                             device.Room.Department.Site.SiteName,
                                                             device.Room.Department.HospitalDepartment.HospitalDepartmentName,
                                                             device.Room.RoomNo,
                                                             device.SubModality.Modality.ModalityName,
                                                             device.SubModality.Modality.ID,
                                                             device.SubModality.SubModalityName,
                                                             device.ProductLine.Supplier.SupplierName,
                                                             device.ProductLine.ProductLineName,
                                                             device.ProductLine.ProductLineName + " " + device.SerialNo

                                                             );
                models.Add(model);
            }

            return(models);
        }
Beispiel #11
0
        public DevicePage(Model.Device device)
        {
            InitializeComponent();

            viewModel        = new DeviceViewModel();
            viewModel.Device = device;
            BindingContext   = this.viewModel;
        }
Beispiel #12
0
        public DeviceResponseQueryByOne(Model.Device device)
        {
            bool    success = device != null;
            Message message = success ? Message.Message2 : Message.Message3;

            base.ActionResponse = new ActionResponse(message, success);
            this.Device         = device;
        }
        public async Task <bool> UpdateDeviceAsync(Model.Device device)
        {
            var token = ADALAuthentication.Instance.AuthResult.AccessToken;

            graphClient = new HttpClient();
            graphClient.DefaultRequestHeaders.Add("Authorization", token);

            // Unassign the user if the UPN is empty
            if (device.UserPrincipalName == String.Empty)
            {
                string stringUnassignUserUrl = string.Format("https://graph.microsoft.com/beta/devicemanagement/windowsAutopilotDeviceIdentities/{0}/unassignUserFromDevice", device.ZtdId);
                var    ret = await graphClient.PostAsync(
                    stringUnassignUserUrl,
                    new StringContent(String.Empty, Encoding.UTF8, "application/json"));

                if (ret.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    return(await Task.FromResult(false));
                }
            }

            // Update the other fields
            string serializedItem;

            if (device.UserPrincipalName == String.Empty)
            {
                var data = new
                {
                    groupTag    = device.GroupTag,
                    displayName = device.DeviceName
                };
                serializedItem = JsonConvert.SerializeObject(data);
            }
            else
            {
                var data = new
                {
                    userPrincipalName   = device.UserPrincipalName,
                    addressableUserName = device.AddressableUserName,
                    groupTag            = device.GroupTag,
                    displayName         = device.DeviceName
                };
                serializedItem = JsonConvert.SerializeObject(data);
            }

            string stringUpdateDeviceUrl = string.Format("https://graph.microsoft.com/beta/devicemanagement/windowsAutopilotDeviceIdentities/{0}/UpdateDeviceProperties", device.ZtdId);
            var    result = await graphClient.PostAsync(
                stringUpdateDeviceUrl,
                new StringContent(serializedItem, Encoding.UTF8, "application/json"));

            if (result.StatusCode != System.Net.HttpStatusCode.OK)
            {
                return(await Task.FromResult(false));
            }

            return(await Task.FromResult(true));
        }
        private async Task <Model.Device> ProcessDevice(JToken item)
        {
            Model.Device device = new Model.Device();
            device.SerialNumber                 = item["serialNumber"].Value <string>();
            device.Manufacturer                 = item["manufacturer"].Value <string>();
            device.Model                        = item["model"].Value <string>();
            device.GroupTag                     = item["groupTag"].Value <string>();
            device.PurchaseOrderNumber          = item["purchaseOrderIdentifier"].Value <string>();
            device.AddressableUserName          = item["addressableUserName"].Value <string>();
            device.UserPrincipalName            = item["userPrincipalName"].Value <string>();
            device.AzureActiveDirectoryDeviceId = item["azureActiveDirectoryDeviceId"].Value <string>();
            device.ManagedDeviceId              = item["managedDeviceId"].Value <string>();
            device.ZtdId                        = item["id"].Value <string>();

            // Get details from Autopilot device
            var autopilotDetails = await graphClient.GetStringAsync("https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeviceIdentities/" + device.ZtdId + "?$expand=deploymentProfile,intendedDeploymentProfile");

            JToken autopilotToken = JsonConvert.DeserializeObject <JToken>(autopilotDetails);

            device.DeviceName = autopilotToken["displayName"].Value <string>();
            if (autopilotToken["deploymentProfile"].HasValues)
            {
                device.DeploymentProfile = autopilotToken["deploymentProfile"]["displayName"].Value <string>();
            }

            // Get the AAD device details
            try
            {
                var aadDevice = await graphClient.GetStringAsync("https://graph.microsoft.com/v1.0/devices?$filter=deviceId eq '" + device.AzureActiveDirectoryDeviceId + "'");

                JToken aadDevices    = JsonConvert.DeserializeObject <JToken>(aadDevice);
                JArray aadDeviceList = aadDevices["value"] as JArray;
                device.AzureActiveDirectoryDeviceName = aadDeviceList[0]["displayName"].Value <string>();
            }
            catch
            {
                device.AzureActiveDirectoryDeviceName = "";
            }

            // Get the Intune device details
            try
            {
                var intuneDevice = await graphClient.GetStringAsync("https://graph.microsoft.com/v1.0/deviceManagement/managedDevices/" + device.ManagedDeviceId);

                JToken intuneDeviceToken = JsonConvert.DeserializeObject <JToken>(intuneDevice);
                device.ManagedDeviceName = intuneDeviceToken["deviceName"].Value <string>();
            }
            catch
            {
                // Intune device not found
                device.ManagedDeviceName = "";
            }

            return(device);
        }
Beispiel #15
0
 public View.Device Build(Model.Device device)
 {
     return(new View.Device
     {
         DeviceGuid = device.DeviceGuid,
         DeviceName = device.DeviceName,
         Inventory = device.Inventory == null ? null : inventoryViewBuilder.Build(device.Inventory),
         Organization = device.Organization == null ? null : organizationViewBuilder.Build(device.Organization),
         CreatedOn = device.CreatedOn.ToString(),
         UpdatedOn = device.UpdatedOn.ToString()
     });
 }
 private void AddDevice(Model.Device item)
 {
     Add(
         new Owner
     {
         Item = item,
         AuthenticationProfiles = new ObservableCollection <Model.AuthenticationProfile>
                                  (
             Model.Context.Current.AuthenticationProfiles.Where(x => x.ParentId == item.Id)
                                  )
     }
         );
 }
        private void RemoveDevice(Model.Device item)
        {
            var toRemove = this
                           .SingleOrDefault(x => typeof(Model.Device)
                                            .IsAssignableFrom(x.Item.GetType()) && (x.Item as Model.Device).Id == item.Id);

            // The device wasn't found. This is normal since the device removal can be recursive.
            if (toRemove == null)
            {
                return;
            }

            Remove(toRemove);
        }
 private void RefreshNames()
 {
     for (int i = 0; i < listViewEx1.Items.Count; i++)
     {
         Guid         id     = (Guid)listViewEx1.Items[i].Tag;
         Model.Curve  curve  = GlobalTable.GlobalTables.Instance.GetCurve(id);
         Model.Device device = GlobalTable.GlobalTables.Instance.GetDevice(id);
         if (curve != null)
         {
             listViewEx1.Items[i].SubItems[4].Text = curve.CurveName;;
         }
         if (device != null)
         {
             listViewEx1.Items[i].SubItems[3].Text = device.Name;
         }
     }
 }
        private ListViewItem CreateItem(Model.Curve curve)
        {
            ListViewItem item = new ListViewItem();

            item.Tag = curve.Id;
            System.Windows.Forms.ListViewItem.ListViewSubItem ByteNumber       = new System.Windows.Forms.ListViewItem.ListViewSubItem();
            System.Windows.Forms.ListViewItem.ListViewSubItem DataRate         = new System.Windows.Forms.ListViewItem.ListViewSubItem();
            System.Windows.Forms.ListViewItem.ListViewSubItem DeviceName       = new System.Windows.Forms.ListViewItem.ListViewSubItem();
            System.Windows.Forms.ListViewItem.ListViewSubItem CurveName        = new System.Windows.Forms.ListViewItem.ListViewSubItem();
            System.Windows.Forms.ListViewItem.ListViewSubItem CoordinateNumber = new System.Windows.Forms.ListViewItem.ListViewSubItem();
            System.Windows.Forms.ListViewItem.ListViewSubItem CurrentHeight    = new ListViewItem.ListViewSubItem();
            System.Windows.Forms.ListViewItem.ListViewSubItem ThreadState      = new ListViewItem.ListViewSubItem();

            item.SubItems.Add(ByteNumber);
            item.SubItems.Add(DataRate);
            item.SubItems.Add(DeviceName);
            item.SubItems.Add(CurveName);
            item.SubItems.Add(CoordinateNumber);
            item.SubItems.Add(CurrentHeight);
            item.SubItems.Add(ThreadState);

            Model.Device device = GetDeviceName(curve.Id);
            if (device != null)
            {
                DeviceName.Text = device.Name;
                DeviceName.Tag  = device;
            }
            else
            {
                DeviceName.Text = "未设定";
            }
            CurveName.Tag         = curve;
            CurveName.Text        = curve.CurveName;
            ByteNumber.Text       = "0";
            ByteNumber.Tag        = 0;
            DataRate.Text         = "0 points/s";
            DataRate.Tag          = 0;
            CoordinateNumber.Text = "0";
            CoordinateNumber.Tag  = 0;
            CurrentHeight.Text    = "0m";
            CurrentHeight.Tag     = 0;

            ThreadState.Text = "未启动";
            ThreadState.Tag  = Data.NetDataFetcher.Instance.GetFetcherState(curve.Id);
            return(item);
        }
        private async Task <bool> UnassignUser(Model.Device device, HttpClient graphClient)
        {
            if (device.UserPrincipalName == String.Empty)
            {
                string stringUnassignUserUrl = string.Format("https://graph.microsoft.com/beta/devicemanagement/windowsAutopilotDeviceIdentities/{0}/unassignUserFromDevice", device.ZtdId);
                var    ret = await graphClient.PostAsync(
                    stringUnassignUserUrl,
                    new StringContent(String.Empty, Encoding.UTF8, "application/json"));

                if (ret.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    return(await Task.FromResult(false));
                }
            }

            return(await Task.FromResult(true));
        }
        public DevicePage(Model.Device device)
        {
            InitializeComponent();

            viewModel        = new DeviceViewModel();
            viewModel.Device = device;
            BindingContext   = this.viewModel;
            int i = 0;

            foreach (var item in device.CategoryList)
            {
                if (item.Id == device.ManagedDeviceCategoryId)
                {
                    this.DeviceCategory.SelectedIndex = i;
                }
                i++;
            }
        }
        public async Task <IEnumerable <Model.Device> > SearchDevicesByZtdIdAsync(string ztdId)
        {
            List <Model.Device> devices = new List <Model.Device>();
            var token = ADALAuthentication.Instance.AuthResult.AccessToken;

            graphClient = new HttpClient();
            graphClient.DefaultRequestHeaders.Add("Authorization", token);

            var result = await graphClient.GetStringAsync("https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeviceIdentities/" + ztdId + "?$expand=deploymentProfile,intendedDeploymentProfile");

            JToken item = JsonConvert.DeserializeObject <JToken>(result);

            Model.Device device = await ProcessDevice(item);

            devices.Add(device);

            return(devices);
        }
 public void SetRows(List <Model.Curve> curveList, List <Model.Device> deviceList)
 {
     this.curveList  = curveList;
     this.deviceList = deviceList;
     tableOfComboBoxes.Clear();
     dataGridViewX1.Rows.Clear();
     for (int i = 0; i < curveList.Count; i++)
     {
         DataGridViewRow        row    = new DataGridViewRow();
         Model.Device           device = deviceList.Find((de) => { return(de.CurveId == curveList[i].Id); });
         DataGridViewLabelXCell cell1  = new DataGridViewLabelXCell();
         cell1.Value = curveList[i].CurveName;
         DataGridViewLabelXCell cell2 = new DataGridViewLabelXCell();
         DataGridViewLabelXCell cell3 = new DataGridViewLabelXCell();
         if (device != null)
         {
             cell2.Value = device.Name;
             cell3.Value = device.SamplingRate;
         }
         else
         {
             cell2.Value = "未设定";
             cell3.Value = "未设定";
         }
         DataGridViewComboBoxCell cell4 = new DataGridViewComboBoxCell();
         cell4.Tag = curveList[i].Id;
         tableOfComboBoxes.Add(curveList[i].Id, cell4);
         cell4.Items.AddRange(new string[1] {
             Data.NetDataFetcher.Instance.ToString()
         });
         cell4.Value = Data.NetDataFetcher.Instance.ToString();
         Data.DataFetcher fetcher = GlobalTable.GlobalTables.Instance.GetFetcher(curveList[i].Id);
         if (fetcher != null)
         {
             cell4.Value = fetcher.ToString();
         }
         row.Cells.Add(cell1);
         row.Cells.Add(cell2);
         row.Cells.Add(cell3);
         row.Cells.Add(cell4);
         dataGridViewX1.Rows.Add(row);
     }
 }
        public async Task <string> UpdateDeviceAsync(Model.Device device)
        {
            var token = ADALAuthentication.Instance.AuthResult.AccessToken;

            graphClient = new HttpClient();
            graphClient.DefaultRequestHeaders.Add("Authorization", token);

            // Unassign the user if the UPN is empty
            var resu = await UnassignUser(device, graphClient);

            if (resu == false)
            {
                return(await Task.FromResult("Failed to unassign User from device."));
            }

            // Update group memberships
            var resg = await UpdateGroupMemberships(device, graphClient);

            if (resg != "OK")
            {
                return(await Task.FromResult(resg));
            }

            // Update Category
            var res = await AssignCategory(device, graphClient);

            if (res == false)
            {
                return(await Task.FromResult("Failed to assign device category."));
            }

            // Update the other fields
            var resp = await UpdateDeviceProperties(device, graphClient);

            if (resp != "OK")
            {
                return(await Task.FromResult(resp));
            }


            return(await Task.FromResult("OK"));
        }
        public void SetRows(List <Model.Curve> curveList, List <Model.Device> deviceList)
        {
            this.curveList  = curveList;
            this.deviceList = deviceList;
            dataGridViewX1.Rows.Clear();
            for (int i = 0; i < curveList.Count; i++)
            {
                DataGridViewRow        row    = new DataGridViewRow();
                Model.Device           device = deviceList.Find((de) => { return(de.CurveId == curveList[i].Id); });
                DataGridViewLabelXCell cell1  = new DataGridViewLabelXCell();
                row.Cells.Add(cell1);
                cell1.Value = curveList[i].CurveName;
                DataGridViewLabelXCell cell2 = new DataGridViewLabelXCell();
                row.Cells.Add(cell2);
                DataGridViewLabelXCell cell3 = new DataGridViewLabelXCell();
                row.Cells.Add(cell3);
                if (device != null)
                {
                    cell2.Value = device.Name;
                    cell3.Value = device.SamplingRate;
                }
                else
                {
                    cell2.Value = "未设定";
                    cell3.Value = "未设定";
                }

                DataGridViewLabelXCell cell4 = new DataGridViewLabelXCell();
                row.Cells.Add(cell4);
                cell4.Tag = curveList[i].Id;
                DataGridViewCheckBoxXCell cell5 = new DataGridViewCheckBoxXCell();
                row.Cells.Add(cell5);
                cell5.Tag = curveList[i].Id;
                DataGridViewCheckBoxXCell cell6 = new DataGridViewCheckBoxXCell();
                row.Cells.Add(cell6);
                cell6.Tag = curveList[i].Id;


                cell5.ReadOnly = true;
                Data.NetDataFetcher fe = GlobalTable.GlobalTables.Instance.GetFetcher(curveList[i].Id) as Data.NetDataFetcher;
                if (fe == null)
                {
                    cell4.Value    = "未设定";
                    cell5.Value    = false;
                    cell6.Value    = false;
                    cell6.ReadOnly = true;
                }
                else
                {
                    cell4.Value = fe.ToString();
                    if (fe.GetFetcherState(curveList[i].Id) != Data.NetDataFetcher.UnknownStateDescription)
                    {
                        cell5.Value = true;
                        if (fe.GetFetcherState(curveList[i].Id) == Data.NetDataFetcher.PausedStateDescription)
                        {
                            cell6.Value    = false;
                            cell6.ReadOnly = false;
                        }
                        else
                        {
                            cell6.Value    = true;
                            cell6.ReadOnly = false;
                        }
                    }
                    else
                    {
                        cell5.Value    = false;
                        cell6.Value    = false;
                        cell6.ReadOnly = false;
                    }
                }



                dataGridViewX1.Rows.Add(row);
            }
        }
Beispiel #26
0
        /// <summary>
        /// 能耗集合
        /// </summary>
        /// <param name="model">查询的对象封装</param>
        /// <returns></returns>
        public static BaseResult GetBaseEneryDataList(BaseQueryModel model)
        {
            BaseResult Res = new BaseResult();
            Res.BaseLayerObjectResults = new Dictionary<string, BaseData>();
            //Res.DeviceResults = new Dictionary<Model.Device, BaseData>();
            bool IsDevice = model.IsDevice == 0 ? false : true;
            var datas = new DataTable();
            if (model != null && model.ObjectList.Count > 0)
            {
                foreach (var objects in model.ObjectList)
                {
                    decimal tempCount = 0;
                    BaseDataModel bmodel = new BaseDataModel();
                    bmodel.Starttime = model.Starttime;
                    if (model.Unit == ChartUnit.unit_hour)
                    {
                        bmodel.Endtime = (model.Starttime == model.Endtime)
                                             ? model.Starttime.AddDays(1).AddHours(-1)
                                             : model.Endtime;
                    }
                    else
                    {
                        bmodel.Endtime = model.Endtime;
                    }
                    bmodel.IsDevice = model.IsDevice;
                    bmodel.ItemCode = model.ItemCode;
                    bmodel.ObjectId = objects;
                    bmodel.Unit = model.Unit;
                    datas = GetBaseData(bmodel);
                    BaseData bsDatas = new BaseData();
                    bsDatas.itemCode = new Model.Itemcode();
                    var ItemCodeList = new DAL.Itemcode().GetItemcodeList(string.Format(" and ItemCodeNumber='{0}'", model.ItemCode), string.Format(" order by ItemcodeID"));
                    bsDatas.itemCode = ItemCodeList.Count > 0 ? ItemCodeList[0] : null;
                    Model.BaseLayerObject ObjectInfo = new Model.BaseLayerObject();

                    Model.Device DeviceObjectInfo = new Model.Device();
                    if (!IsDevice)
                    {
                        var infoList = new DAL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectID={0}", objects), string.Format(" order by LayerObjectID"));
                        ObjectInfo = infoList.Count > 0 ? infoList[0] : null;
                        bsDatas.Datas = new List<DataItems>();
                        foreach (DataRow item in datas.Rows)
                        {

                            tempCount += decimal.Parse(item["CountValue"].ToString());
                            bsDatas.Datas.Add(new DataItems()
                            {
                                DatePick = item["Starttime"].ToString(),
                                DataValue = decimal.Parse(item["CountValue"].ToString()),

                                CoalDataValue = decimal.Parse(item["CountValue"].ToString()) * (decimal)bsDatas.itemCode.ItemCoal,
                                Co2DataValue = decimal.Parse(item["CountValue"].ToString()) * (decimal)bsDatas.itemCode.ItemCO2,
                                MoneyDataValue = decimal.Parse(item["CountValue"].ToString()) * (decimal)bsDatas.itemCode.ItemMoney,
                                DataValueAndDept = item["CountValue"].ToString() + bsDatas.itemCode.Unit
                            });
                        }
                        bsDatas.baseLayerObject = ObjectInfo;
                    }
                    else
                    {
                        var infoList = new DAL.Device().GetDeviceList(string.Format(" and deviceid={0}", objects), string.Format(" order by DeviceID"));
                        DeviceObjectInfo = infoList.Count > 0 ? infoList[0] : null;
                        bsDatas.Datas = new List<DataItems>();
                        foreach (DataRow item in datas.Rows)
                        {
                            tempCount += decimal.Parse(item["CountValue"].ToString());
                            bsDatas.Datas.Add(new DataItems()
                            {
                                DatePick = item["Starttime"].ToString(),
                                DataValue = decimal.Parse(item["CountValue"].ToString()),
                                CoalDataValue = decimal.Parse(item["CountValue"].ToString()) *(decimal)bsDatas.itemCode.ItemCoal,
                                Co2DataValue = decimal.Parse(item["CountValue"].ToString()) * (decimal)bsDatas.itemCode.ItemCO2,
                                MoneyDataValue = decimal.Parse(item["CountValue"].ToString()) * (decimal)bsDatas.itemCode.ItemMoney,
                                DataValueAndDept = item["CountValue"].ToString() + bsDatas.itemCode.Unit
                            });
                        }
                        bsDatas.device = DeviceObjectInfo;
                    }
                    bsDatas.Total = tempCount;
                    bsDatas.ConvertDataValueList = new System.Collections.Hashtable();
                    bsDatas.ConvertDataValueList.Add("ITEMCOAL", decimal.Round(tempCount * (decimal)bsDatas.itemCode.ItemCoal, 4).ToString());
                    bsDatas.ConvertDataValueList.Add("ITEMCO2", decimal.Round(tempCount * (decimal)bsDatas.itemCode.ItemCO2, 4).ToString());
                    bsDatas.ConvertDataValueList.Add("ITEMMONEY", decimal.Round(tempCount * (decimal)bsDatas.itemCode.ItemMoney, 4).ToString());
                    Res.BaseLayerObjectResults.Add(
                        !IsDevice ? ObjectInfo.LayerObjectID.ToString() : DeviceObjectInfo.DeviceID.ToString(), bsDatas);
                }
                return Res;
            }
            return null;
        }
Beispiel #27
0
 public void UpdateDevices(Model.Device inputEt)
 {
     this._DeviceRepository.UpdateDevice(inputEt);
 }
Beispiel #28
0
 public void AddDevices(Model.Device inputEt)
 {
     this._DeviceRepository.AddDevice(inputEt);
 }
 private Model.Device GetDeviceName(Guid guid)
 {
     Model.Device device = Model.DataHelper.GetObject <Model.Device>("CurveId", guid.ToString());
     return(device);
 }
Beispiel #30
0
        public async Task <IActionResult> Sync([FromBody] View.Device request)
        {
            var client = await GetClient();

            var organization = client.Organization;

            if (client.Role != "AppAdmin" && client.Role != "OrgAdmin")
            {
                throw new BadRequestException("Client", "Client does not have permission to access this resource.");
            }

            if (client.Role == "AppAdmin")
            {
                if (request == null || string.IsNullOrEmpty(request.Organization.OrganizationGuid))
                {
                    throw new BadRequestException("Organization", "Please provice an organization to continue.");
                }

                var appAdminOrganization = await db.Organizations.FirstOrDefaultAsync(x => x.OrganizationGuid == request.Organization.OrganizationGuid);

                if (appAdminOrganization == null)
                {
                    throw new BadRequestException("Organization", "Organization does not exist.");
                }

                organization = appAdminOrganization;
            }

            if (string.IsNullOrEmpty(request.DeviceName))
            {
                throw new BadRequestException("deviceName", "Device name required to complete request");
            }

            var syncdDevicesCount = await db.Devices.Where(x => x.Organization == organization).CountAsync();

            var maxDevicesCount = organization.MaxDevices;

            if (syncdDevicesCount >= maxDevicesCount)
            {
                throw new BadRequestException("Organization", "Maximum devices synced according to license.");
            }

            var deviceNameExists = await db.Devices
                                   .AnyAsync(x => x.DeviceName == request.DeviceName && x.Organization == organization);

            if (deviceNameExists)
            {
                throw new BadRequestException("deviceName", "Device already exists with that name");
            }

            var deviceGuid = Guid.NewGuid();
            var password   = passwordService.GenerateSecurePassword();

            var identity = new Identity
            {
                UserName = deviceGuid.ToString(),
                Email    = string.Format("{0}@{0}.com", deviceGuid.ToString())
            };

            var result = await identityManager.CreateAsync(identity, password);

            if (!result.Succeeded)
            {
                throw new BadRequestException("Device", "Unable to sync device");
            }

            try
            {
                List <Model.InventoryItem> inventoryItems = await db.OrganizationItems
                                                            .Where(x => x.Organization == organization)
                                                            .Select(x => new Model.InventoryItem
                {
                    Item     = x.Item,
                    Quantity = 0
                }).ToListAsync();

                var inventory = new Model.Inventory
                {
                    Organization   = organization,
                    InventoryItems = inventoryItems
                };

                var device = new Model.Device
                {
                    DeviceGuid   = deviceGuid.ToString(),
                    Organization = organization,
                    Inventory    = inventory,
                    DeviceName   = request.DeviceName
                };

                db.Devices.Add(device);

                await db.SaveChangesAsync();

                var deviceView = deviceViewBuilder.Build(device);
                deviceView.Password = password;
                return(StatusCode(200, deviceView));
            } catch
            {
                await identityManager.DeleteAsync(identity);

                throw new BadRequestException("Device", "Unable to sync device");
            }
        }
Beispiel #31
0
        /// <summary>
        /// 能耗集合
        /// </summary>
        /// <param name="model">查询的对象封装</param>
        /// <returns></returns>
        public static BaseResult GetBaseEneryDataListNew(BaseQueryModel model)
        {
            BaseResult Res = new BaseResult();

            Res.BaseLayerObjectResults = new Dictionary <string, BaseData>();
            //Res.DeviceResults = new Dictionary<Model.Device, BaseData>();
            bool IsDevice = model.IsDevice == 0 ? false : true;
            var  datas    = new DataTable();

            if (model != null && model.ObjectList.Count > 0)
            {
                foreach (var objects in model.ObjectList)
                {
                    double        tempCount = 0;
                    BaseDataModel bmodel    = new BaseDataModel();
                    bmodel.Starttime = model.Starttime;
                    if (model.Unit == ChartUnit.unit_hour)
                    {
                        bmodel.Endtime = (model.Starttime == model.Endtime)
                                             ? model.Starttime.AddDays(1).AddHours(-1)
                                             : model.Endtime;
                    }
                    else
                    {
                        bmodel.Endtime = model.Endtime;
                    }
                    bmodel.IsDevice = model.IsDevice;
                    bmodel.ItemCode = model.ItemCode;
                    bmodel.ObjectId = objects;
                    bmodel.Unit     = model.Unit;
                    datas           = GetBaseData(bmodel);
                    BaseData bsDatas = new BaseData();
                    bsDatas.itemCode = new Model.Itemcode();
                    var ItemCodeList = new DAL.Itemcode().GetItemcodeList(string.Format(" and ItemCodeNumber='{0}'", model.ItemCode), string.Format(" order by ItemcodeID"));
                    bsDatas.itemCode = ItemCodeList.Count > 0 ? ItemCodeList[0] : null;
                    Model.BaseLayerObject ObjectInfo = new Model.BaseLayerObject();

                    Model.Device DeviceObjectInfo = new Model.Device();
                    if (!IsDevice)
                    {
                        List <Model.BaseLayerObject> infoList = new List <Model.BaseLayerObject>();
                        if (model.areaType == WEB.DataContact.AreaType.Area)
                        {
                            infoList = new DAL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectID={0}", objects), string.Format(" order by LayerObjectID"));
                        }
                        else
                        {
                            infoList = new DAL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and LayerObjectID={0}", objects), string.Format(" order by LayerObjectID"));
                        }

                        ObjectInfo    = infoList.Count > 0 ? infoList[0] : null;
                        bsDatas.Datas = new List <DataItems>();
                        foreach (DataRow item in datas.Rows)
                        {
                            tempCount += double.Parse(item["CountValue"].ToString());
                            bsDatas.Datas.Add(new DataItems()
                            {
                                DatePick         = item["Starttime"].ToString(),
                                DataValue        = decimal.Parse(item["CountValue"].ToString()),
                                CoalDataValue    = Convert.ToDecimal(double.Parse(item["CountValue"].ToString()) * bsDatas.itemCode.ItemCoal),
                                Co2DataValue     = Convert.ToDecimal(double.Parse(item["CountValue"].ToString()) * bsDatas.itemCode.ItemCO2),
                                MoneyDataValue   = Convert.ToDecimal(double.Parse(item["CountValue"].ToString()) * bsDatas.itemCode.ItemMoney),
                                DataValueAndDept = item["CountValue"].ToString() + bsDatas.itemCode.Unit
                            });
                        }
                        bsDatas.baseLayerObject = ObjectInfo;
                    }
                    else
                    {
                        var infoList = new DAL.Device().GetDeviceList(string.Format(" and deviceid={0}", objects), string.Format(" order by DeviceID"));
                        DeviceObjectInfo = infoList.Count > 0 ? infoList[0] : null;
                        bsDatas.Datas    = new List <DataItems>();
                        foreach (DataRow item in datas.Rows)
                        {
                            tempCount += double.Parse(item["CountValue"].ToString());
                            bsDatas.Datas.Add(new DataItems()
                            {
                                DatePick         = item["Starttime"].ToString(),
                                DataValue        = Convert.ToDecimal(item["CountValue"].ToString()),
                                CoalDataValue    = Convert.ToDecimal(double.Parse(item["CountValue"].ToString()) * bsDatas.itemCode.ItemCoal),
                                Co2DataValue     = Convert.ToDecimal(double.Parse(item["CountValue"].ToString()) * bsDatas.itemCode.ItemCO2),
                                MoneyDataValue   = Convert.ToDecimal(double.Parse(item["CountValue"].ToString()) * bsDatas.itemCode.ItemMoney),
                                DataValueAndDept = item["CountValue"].ToString() + bsDatas.itemCode.Unit
                            });
                        }
                        bsDatas.device = DeviceObjectInfo;
                    }
                    bsDatas.Total = Convert.ToDecimal(tempCount);
                    bsDatas.ConvertDataValueList = new System.Collections.Hashtable();
                    bsDatas.ConvertDataValueList.Add("ITEMCOAL", Math.Round((tempCount * bsDatas.itemCode.ItemCoal), 4).ToString());
                    bsDatas.ConvertDataValueList.Add("ITEMCO2", Math.Round((tempCount * bsDatas.itemCode.ItemCO2), 4).ToString());
                    bsDatas.ConvertDataValueList.Add("ITEMMONEY", Math.Round((tempCount * bsDatas.itemCode.ItemCO2), 4).ToString());
                    Res.BaseLayerObjectResults.Add(
                        !IsDevice ? ObjectInfo.LayerObjectID.ToString() : DeviceObjectInfo.DeviceID.ToString(), bsDatas);
                }
                return(Res);
            }
            return(null);
        }