public async Task <IActionResult> Put([FromBody] ProjectStatusModel data)
        {
            var p = _clientData.GetProjectStatus(data.Id);

            if (p == null)
            {
                return(BadRequest());
            }
            await _clientData.UpdateProjectStatus(data);

            return(Ok());
        }
Beispiel #2
0
        /// <summary>
        /// 添加或更新记录
        /// </summary>
        public void AddOrUpdate(ProjectStatusModel model)
        {
            try
            {
                Invoke(new Action(() =>
                {
                    bool add = true;
                    //IP、Port、名称、版本、CPU、内存
                    if (DgvProjectList.Rows.Count > 0)
                    {
                        foreach (DataGridViewRow item in DgvProjectList.Rows)
                        {
                            try
                            {
                                string _ip = item.Cells[ClmIP.Name].Value.ToString();
                                int _port  = int.Parse(item.Cells[ClmPort.Name].Value.ToString());

                                if (_ip == model.IP && _port == model.Port)
                                {
                                    //item.Cells[ClmIP.Name].Value = model.IP;
                                    //item.Cells[ClmPort.Name].Value = model.Port;
                                    item.Cells[ClmName.Name].Value        = model.Name;
                                    item.Cells[ClmVersion.Name].Value     = model.Version;
                                    item.Cells[ClmCPU.Name].Value         = model.Cpu;
                                    item.Cells[ClmRam.Name].Value         = model.Ram;
                                    item.Cells[ClmStartTime.Name].Value   = model.StartTime;
                                    item.Cells[ClmIsRun.Name].Value       = model.IsRun ? "√" : "×××";
                                    item.Cells[ClmTxTime.Name].Value      = model.CreateTime;
                                    item.Cells[ClmRefreshTime.Name].Value = DateTime.Now;
                                    add = false;
                                }
                            }
                            catch { }
                        }
                    }
                    if (add)
                    {
                        DgvProjectList.Rows.Add(
                            model.Name, model.IP, model.Port, model.Version,
                            model.Cpu, model.Ram, model.IsRun ? "√" : "×××", model.StartTime,
                            model.CreateTime, DateTime.Now);
                    }
                }));
            }
            catch { }
        }
Beispiel #3
0
 public static void AddProjectStatus(ProjectStatusModel status)
 {
     try
     {
         if (Str.Ok(status.IP, status.Port.ToString()))
         {
             status.CreateTime = DateTime.Now;
             string key = $"{status.IP}-{status.Port}";
             if (R.Store.ProjectStatus.TryGetValue(key, out ProjectStatusModel _status))
             {
                 bool a = R.Store.ProjectStatus.TryUpdate(key, status, _status);
             }
             else
             {
                 bool b = R.Store.ProjectStatus.TryAdd(key, status);
             }
         }
     }
     catch { }
 }
Beispiel #4
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (checkValid())
                {
                    ProjectStatusModel dModel;
                    if (_isAdd)
                    {
                        dModel = new ProjectStatusModel();
                    }
                    else
                    {
                        int ID = Convert.ToInt32(grvData.GetRowCellValue(grvData.FocusedRowHandle, "ID").ToString());
                        dModel = (ProjectStatusModel)ProjectStatusBO.Instance.FindByPK(ID);
                    }
                    dModel.Name = txtName.Text;

                    if (_isAdd)
                    {
                        ProjectStatusBO.Instance.Insert(dModel);
                    }
                    else
                    {
                        ProjectStatusBO.Instance.Update(dModel);
                    }

                    LoadData();
                    SetInterface(false);
                    ClearInterface();

                    this.DialogResult = DialogResult.OK;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #5
0
        public async Task <IActionResult> ChangeStatus(int statusId, int projectId, string projectComanyId)
        {
            HttpClient client = new HttpClient();
            string     token  = HttpContext.Session.GetString("userToken");

            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
            ProjectStatusModel projectStatusModel = new ProjectStatusModel()
            {
                ProjectId = projectId,
                StatusId  = statusId
            };
            var content            = _responseAPI.GetContent <ProjectStatusModel>(projectStatusModel);
            HttpResponseMessage rs = await client.PutAsync(_responseAPI.APIHost + "/api/Project/Status", content);

            ProjectDetailViewModel projectDetailViewModel = new ProjectDetailViewModel();

            if (rs.IsSuccessStatusCode)
            {
                return(RedirectToAction("Manager", "Project", new { projectId = projectId, companyId = projectComanyId }));
            }
            return(RedirectToAction("Manager", "Project", new { projectId = projectId, companyId = projectComanyId }));
        }
        public async Task <IActionResult> Get(int id)
        {
            var ProjectStatusModel = new ProjectStatusModel();

            try
            {
                var projectStatus = await _projectStatusRepository.GetAsync(id).ConfigureAwait(false);

                if (projectStatus == null)
                {
                    return(NotFound());
                }

                ProjectStatusModel.Id    = projectStatus.Id;
                ProjectStatusModel.Title = projectStatus.Title;
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }

            return(Ok(ProjectStatusModel));
        }
Beispiel #7
0
		protected ProjectStatusFacade(ProjectStatusModel model) : base(model)
		{
		}
Beispiel #8
0
        private async void Init()
        {
            await viewModel.LoadProject(_id);

            await viewModel.LoadPostProjectID(_id);

            await viewModel.GetListProjectDiary(_id);

            if (viewModel.DuAn.ImageUtilities != null)
            {
                string[]      utilitiesArr = viewModel.DuAn.ImageUtilities.Split(',');
                Option[]      utilitiesImg = new Option[utilitiesArr.Length];
                List <Option> tienichduan  = BDSUtilities.GetListUtilities();
                for (int i = 0; i < utilitiesArr.Length; i++)
                {
                    var    item  = utilitiesArr[i];
                    Option model = tienichduan.Where(x => x.Id == short.Parse(item)).SingleOrDefault();
                    utilitiesImg[i] = model;
                }
                flowListView.FlowItemsSource = utilitiesImg;
                stTienIchDuAn.IsVisible      = true;
            }
            if (viewModel.DuAn.ImageList != null)
            {
                string[] ListImages = viewModel.DuAn.ImageList;
                for (int i = 0; i < ListImages.Length; i++)
                {
                    Photo photo = new Photo();
                    photo.URL = Api_Link + ListImages[i];
                    GetPhotos.Add(photo);
                }
                lbNumImages.Text        = ListImages.Count().ToString();
                carouseView.ItemsSource = GetPhotos;
            }

            if (viewModel.DuAn.CategoriBDS != null)
            {
                string[] categoriArr     = viewModel.DuAn.CategoriBDS.Split(',');
                string[] categoryNameArr = new string[categoriArr.Length];

                //projectType tren app la categoriBDS tren database
                List <ProjectTypeModel> loaiDuAn = ProjectTypeData.GetListProjectType();
                for (int i = 0; i < categoriArr.Length; i++)
                {
                    var item = categoriArr[i];
                    ProjectTypeModel model = loaiDuAn.Where(x => x.Id == short.Parse(item)).SingleOrDefault();
                    categoryNameArr[i] = model.Name;
                }
                lbCategoriBDS.Text = string.Join(". ", categoryNameArr);

                //lay "Status"
                if (viewModel.DuAn.Status.HasValue)
                {
                    int idStatus = viewModel.DuAn.Status.Value;
                    List <ProjectStatusModel> listStatus  = ProjectStatusData.GetList();
                    ProjectStatusModel        modelStatus = listStatus.Single(x => x.Id == idStatus);
                    lbStatus.Text = modelStatus.Name;
                    if (viewModel.DuAn.Status.Value == 0)
                    {
                        stThoiGianMoBan.IsVisible   = true;
                        stThoiGianBanGiao.IsVisible = true;
                    }

                    if (viewModel.DuAn.Status.Value == 1)
                    {
                        stThoiGianBanGiao.IsVisible = true;
                    }
                }
            }

            await ChekcIsFollowPost();

            loadingPopup.IsVisible = false;

            stNamKhoiCong.IsVisible  = true;
            stNamHoanThanh.IsVisible = true;

            // load data "Tong quan du an"
            lbDienTichCayXanh.Text      = viewModel.DuAn.DienTichCayXanh;
            lbDienTichKhuDat.Text       = viewModel.DuAn.DienTichKhuDat;
            lbDienTichSanTrungBinh.Text = viewModel.DuAn.DienTichSanTrungBinh;
            lbDienTichXayDung.Text      = viewModel.DuAn.DienTichXayDung;
            lbNamKhoiCong.Text          = viewModel.DuAn.NamKhoiCong.ToString();
            lbNamHoanThanh.Text         = viewModel.DuAn.NamHoanThanh.ToString();
            lbMatDoXayDung.Text         = viewModel.DuAn.MatDoXayDungPercent.ToString();
            lbSoLuongSanPham.Text       = viewModel.DuAn.SoLuongSanPham;
            lbSoTang.Text               = viewModel.DuAn.SoTang.ToString();
            lbSoLuongToaNha.Text        = viewModel.DuAn.SoLuongToaNha.ToString();
            lbSoThangMay.Text           = viewModel.DuAn.SoThangMay.ToString();
            lbTongDienTichSan.Text      = viewModel.DuAn.TongDienTichSan;
            lbTongSoVongDauTu.Text      = viewModel.DuAn.TongVonDauTu;
            lbTangHam.Text              = viewModel.DuAn.TangHam.ToString();
            lbThoiGianMoBan.Text        = viewModel.DuAn.ThoiGianMoBan.ToString();
            lbThoiGianBanGiao.Text      = viewModel.DuAn.ThoiGianBanGiao.ToString();
            lblChuDauTu.Text            = viewModel.DuAn.ChuDauTu;
            lblDonViThietKeThiCong.Text = viewModel.DuAn.DonViThietKeThiCong;
            lblPhanKhuDuAn.Text         = viewModel.DuAn.PhanKhuDuAn;

            var gridChildren = grContent.Children.Where(x => x.IsVisible == true).ToList();

            for (int i = 0; i < gridChildren.Count(); i++)
            {
                grContent.RowDefinitions.Add(new RowDefinition()
                {
                    Height = new GridLength(9, GridUnitType.Auto)
                });
                Grid.SetRow(gridChildren[i], i);
            }
        }
Beispiel #9
0
        public async void Init()
        {
            bool HasResult = await viewModel.LoadPost(_id);

            if (!HasResult)
            {
                await DisplayAlert("", Language.bai_dang_khong_ton_tai_hoac_da_xoa, Language.dong);

                await Navigation.PopAsync();

                return;
            }
            // cau hinh button.
            SetFloatingButtonGroup();


            // can thue can mua thi load comment ve. hien thi o comment.
            if (viewModel.GetPost.PostType == 2 || viewModel.GetPost.PostType == 3)
            {
                await viewModel.LoadPostComment();

                StacklayoutPostComments.IsVisible = true;
                onClick_HideShow_Description(null, EventArgs.Empty); // dong lai mo ta. neu post type 2 3
                MessagingCenter.Subscribe <PickPostPage>(this, "OnNewPostComment", async(sender) =>
                {
                    loadingPopup.IsVisible = true;
                    viewModel.PostComments.Clear();
                    viewModel.PostCommentPage = 1;
                    await viewModel.LoadPostComment();
                    loadingPopup.IsVisible = false;
                });
            }
            else
            {
                StacklayoutPostComments.IsVisible = false;
            }

            lbLoaiBatDongSan.Text = LoaiBatDongSanModel.GetList(null).SingleOrDefault(x => x.Id == viewModel.GetPost.LoaiBatDongSanId).Name;

            if (viewModel.GetPost.PostType == 0 || viewModel.GetPost.PostType == 1)
            {
                stListImg.IsVisible = true;
            }


            if (viewModel.GetPost.PostType == 2 || viewModel.GetPost.PostType == 3)
            {
                gridContent.Margin            = new Thickness(0, 10, 0, 0); // đây frame xuong
                cvBDSCungKhuVuc.HeightRequest = 90;
                frContentPost.Margin          = new Thickness(10, 0, 10, 0);
            }

            //lấy danh sách Images
            if (viewModel.GetPost.ImageList != null)
            {
                string[] ListImages = viewModel.GetPost.ImageList;
                for (int i = 0; i < ListImages.Length; i++)
                {
                    Photo photo = new Photo();
                    photo.URL = ImageHelper.GetImageUrl("post", ListImages[i]);
                    GetPhotos.Add(photo);
                }
                lbNumImages.Text        = ListImages.Count().ToString();
                carouseView.ItemsSource = GetPhotos;
            }

            if (viewModel.GetPost.TinhTrangPhapLyId.HasValue)
            {
                var TinhTrangPhapLy = viewModel.GetPost.TinhTrangPhapLyId;
                List <TinhTrangPhapLyModel> tinhtrangphaplyModel = TinhTrangPhapLyData.GetList();
                TinhTrangPhapLyModel        modelTinhTrangPhapLy = tinhtrangphaplyModel.Where(x => x.Id == TinhTrangPhapLy).SingleOrDefault();
                lbTinhTrangPhapLy.Text = modelTinhTrangPhapLy.Name;
            }

            if (viewModel.GetPost.HuongId.HasValue)
            {
                var HuongNha = viewModel.GetPost.HuongId;
                List <HuongModel> huongnhaModel = HuongData.GetList();
                HuongModel        modelHuong    = huongnhaModel.Where(x => x.Id == HuongNha).SingleOrDefault();
                lbHuongNha.Text = modelHuong.Name;
            }

            //set trang thai duu an.
            if (viewModel.GetPost.Project?.Status != null)
            {
                int id_Status = viewModel.GetPost.Project.Status.Value;
                List <ProjectStatusModel> listStatus  = ProjectStatusData.GetList();
                ProjectStatusModel        modelStatus = listStatus.Single(x => x.Id == id_Status);
                spStatus.Text = modelStatus.Name;
            }


            //kiểm tra là lấy thông tin của "nội thất tiện nghi"
            if (viewModel.GetPost.Utilities != null)
            {
                string[]      utilitiesArr = viewModel.GetPost.Utilities.Split(',');
                Option[]      utilitiesImg = new Option[utilitiesArr.Length];
                List <Option> tienichduan  = BDSUtilities.GetListUtilities();
                for (int i = 0; i < utilitiesArr.Length; i++)
                {
                    var    item  = utilitiesArr[i];
                    Option model = tienichduan.Where(x => x.Id == short.Parse(item)).SingleOrDefault();
                    utilitiesImg[i] = model;
                }
                flvUtilities.FlowItemsSource = utilitiesImg;
                stNoiThatTienNghi.IsVisible  = true;
            }
            else
            {
                stNoiThatTienNghi.IsVisible = false;
            }

            //kiểm tra. nếu có projectId thì cho hiện "Thuộc dự an" và lấy loại bất động sản
            if (viewModel.GetPost.ProjectId.HasValue)
            {
                //
                stThuocDuAn.IsVisible = true;
                Guid _idProject = viewModel.GetPost.ProjectId.Value;
                await viewModel.LoadBDSKhac(_id, _idProject);

                if (viewModel.BDSKhac.Count != 0)
                {
                    stBDSKhac.IsVisible = true;
                }

                // lấy loại bất động sản
                string[] categoriArr    = viewModel.GetPost.Project.CategoriBDS.Split(',');
                string[] newCategoriArr = new string[categoriArr.Length];

                List <ProjectTypeModel> modelCategori = ProjectTypeData.GetListProjectType();
                for (int i = 0; i < categoriArr.Length; i++)
                {
                    var temp = categoriArr[i];
                    ProjectTypeModel categoriModel = modelCategori.Where(x => x.Id == short.Parse(temp)).SingleOrDefault();
                    newCategoriArr[i] = categoriModel.Name;
                }

                lbCatogoriBDS.Text = string.Join(", ", newCategoriArr);
            }

            //gán dữ liệ cho label
            lbTongDienTichSuDung.Text = viewModel.GetPost.AreaFormatText;
            lbDuongVao.Text           = viewModel.GetPost.DuongVao.ToString();
            lbMatTien.Text            = viewModel.GetPost.MatTien.ToString();
            lbChieuSau.Text           = viewModel.GetPost.ChieuSau.ToString();
            lbTang.Text       = viewModel.GetPost.Tang.ToString();
            lbSoTang.Text     = viewModel.GetPost.NumOfFloor.ToString();
            lbSoThangMay.Text = viewModel.GetPost.SoThangMay.ToString();
            lbSoDuongNgu.Text = viewModel.GetPost.NumOfBedroom.ToString();
            lbSoPhongtam.Text = viewModel.GetPost.NumOfBathroom.ToString();

            // hiển thị thông tin trong phần "tổng quan dự án" (những thông tin luôn hiện)
            stTinhTrangPhapLy.IsVisible    = true;
            stHuongNha.IsVisible           = true;
            stTongDienTichSuDung.IsVisible = true;

            //hiển thị thông tin trong phần "tổng quan dự án" (kiểm tra theo loại bất động sản)
            var LoaiBatDongSan = viewModel.GetPost.LoaiBatDongSanId;

            if (LoaiBatDongSan == 0)
            {
                stTang.IsVisible       = true;
                stSoPhongTam.IsVisible = true;
                stSoDuongNgu.IsVisible = true;
            }

            if (LoaiBatDongSan == 1)
            {
                stTang.IsVisible       = true;
                stSoPhongTam.IsVisible = true;
                stSoDuongNgu.IsVisible = true;
            }

            if (LoaiBatDongSan == 2)
            {
                stDuongVao.IsVisible   = true;
                stMatTien.IsVisible    = true;
                stSoTang.IsVisible     = true;
                stSoPhongTam.IsVisible = true;
                stSoDuongNgu.IsVisible = true;
            }

            if (LoaiBatDongSan == 3)
            {
                stDuongVao.IsVisible   = true;
                stMatTien.IsVisible    = true;
                stSoTang.IsVisible     = true;
                stSoPhongTam.IsVisible = true;
                stSoDuongNgu.IsVisible = true;
            }

            if (LoaiBatDongSan == 4)
            {
                stDuongVao.IsVisible   = true;
                stMatTien.IsVisible    = true;
                stSoTang.IsVisible     = true;
                stSoPhongTam.IsVisible = true;
                stSoDuongNgu.IsVisible = true;
            }

            if (LoaiBatDongSan == 5)
            {
                stTang.IsVisible = true;
            }

            if (LoaiBatDongSan == 6)
            {
                stTang.IsVisible       = true;
                stSoThangMay.IsVisible = true;
            }

            if (LoaiBatDongSan == 7)
            {
                stDuongVao.IsVisible   = true;
                stMatTien.IsVisible    = true;
                stSoTang.IsVisible     = true;
                stSoPhongTam.IsVisible = true;
                stSoDuongNgu.IsVisible = true;
            }

            if (LoaiBatDongSan == 8)
            {
                stDuongVao.IsVisible = true;
                stMatTien.IsVisible  = true;
                stChieuSau.IsVisible = true;
            }

            if (LoaiBatDongSan == 9)
            {
                stDuongVao.IsVisible = true;
                stMatTien.IsVisible  = true;
                stChieuSau.IsVisible = true;
            }

            if (LoaiBatDongSan == 10)
            {
                stDuongVao.IsVisible = true;
                stMatTien.IsVisible  = true;
                stChieuSau.IsVisible = true;
            }

            var gridChildren = gridContent.Children.Where(x => x.IsVisible == true).ToList();

            for (int i = 0; i < gridChildren.Count(); i++)
            {
                gridContent.RowDefinitions.Add(new RowDefinition()
                {
                    Height = new GridLength(9, GridUnitType.Auto)
                });

                Grid.SetRow(gridChildren[i], i);
            }

            //check follow
            await ChekcIsFollowPost();

            //disable loading
            loadingPopup.IsVisible          = false;
            ScrollView_Detail_M_B.IsVisible = true;
        }
Beispiel #10
0
        public async void InitUpdate()
        {
            AddToolBar();
            var apiResponse = await ApiHelper.Get <AddProjectModel>("api/project/" + this._id);

            stThongTinBoSung.IsVisible = true;

            if (apiResponse.IsSuccess == false)
            {
                return;
            }

            var model = apiResponse.Content as AddProjectModel;

            viewModel.AddProjectModel = model;

            DecimailEntDienTichSanTrungBinh_From.SetPrice(model.DienTichSanTrungBinh_From);
            DecimalEntDienTichSanTrungBinh_To.SetPrice(model.DienTichSanTrungBinh_To);
            DecimalDienTichCayXanhFrom.SetPrice(model.DienTichCayXanh_From);
            DecimalDienTichCayXanhTo.SetPrice(model.DienTichCayXanh_To);
            DecimalDienTichKhuDatFrom.SetPrice(model.DienTichKhuDat_From);
            DecimalDienTichKhuDatTo.SetPrice(model.DienTichKhuDat_To);
            DecimalDienTichXayDungFrom.SetPrice(model.DienTichXayDung_From);
            DecimalDienTichXayDungTo.SetPrice(model.DienTichXayDung_To);

            DecimalEntryMatDoXayDung.SetPrice(model.MatDoXayDungPercent);

            //set title
            viewModel.TitlePostProject = viewModel.AddProjectModel.Name;

            await Task.WhenAll(
                viewModel.GetProvinceAsync(),
                viewModel.GetDistrictAsync(),
                viewModel.GetWardAsync()
                );

            //gan lai tinh/thanh, quan/huyen, phuong/xa voi ID
            viewModel.AddProjectModel.Province = viewModel.ProvinceList.Single(x => x.Id == model.ProvinceId);
            viewModel.AddProjectModel.District = viewModel.DistrictList.Single(x => x.Id == model.DistrictId);
            viewModel.AddProjectModel.Ward     = viewModel.WardList.Single(x => x.Id == model.WardId);



            //set loai du an cho control // Loai du an tren app = categoriBDS trong database
            if (!string.IsNullOrEmpty(model.CategoriBDS))
            {
                string[]   arrCategoriBDS = model.CategoriBDS.Split(',');
                List <int> listLoaiDuAn   = new List <int>();
                foreach (var item in arrCategoriBDS)
                {
                    listLoaiDuAn.Add(int.Parse(item));
                }
                viewModel.LoaiDuAnSelecteIds = listLoaiDuAn;
            }

            //set show cac stacklayout theo loai bat dong san (so tang, tang ham....)
            Show();

            //set trang thai cho control
            if (model.Status != null)
            {
                string             item        = viewModel.AddProjectModel.Status;
                var                listStatus  = ProjectStatusData.GetList();
                ProjectStatusModel modelStatus = listStatus.Where(x => x.Id == short.Parse(item)).Single();
                viewModel.AddProjectModel.TrangThai = modelStatus;
            }
            else
            {
                viewModel.AddProjectModel.TrangThai = null;
            }

            //set hinh anh cho ffimageloading
            if (string.IsNullOrEmpty(model.Images) == false)
            {
                string[] imageList = model.Images.Split(',');
                foreach (var image in imageList)
                {
                    viewModel.Media.Add(new MediaFile()
                    {
                        PreviewPath = ImageHelper.GetImageUrl("project", image),
                    });
                }
            }

            //set ckecked tien ich du an
            if (model.ImageUtilities != null)
            {
                string[]   arrImageUtilities = viewModel.AddProjectModel.ImageUtilities.Split(',');
                List <int> list = new List <int>();
                foreach (var item in arrImageUtilities)
                {
                    list.Add(int.Parse(item));
                }
                viewModel.TienIchDuAnSelecteIds = list;
                viewModel.NumUtilitiChecked     = viewModel.TienIchDuAnSelecteIds.Count();
            }


            loadingPopup.IsVisible = false;
        }
Beispiel #11
0
 public Task <int> UpdateProjectStatus(ProjectStatusModel data)
 {
     // Only Status and ID can not be null
     return(_dataAccess.SaveData("dbo.spClient_UpdateStatus", data, _connectionString.SqlConnectionName));
 }
        private void ProcessStatus()
        {
            Task.Factory.StartNew(() =>
            {
                TimeSpan begin = TimeSpan.Zero;
                while (!IsDisposed)
                {
                    try
                    {
                        if (File.Exists(DirTool.Combine(R.Paths.Projects, Name)))
                        {
                            GetProcess();
                            if (Process != null && !Process.HasExited)
                            {
                                BeginInvoke(new Action(() =>
                                {
                                    double cpu = AppInfoTool.CalcCpuRate(Process, ref begin, STATUS_INTERVAL);
                                    LBCpu.Text = $"CPU:{Math.Round(cpu, 1)} %";
                                    CpCpuRate.SetValue((int)cpu);
                                    LBRam.Text = $"内存:{AppInfoTool.RAM(Process.Id) / 1024} MB";

                                    //发送正常启动状态的项目信息
                                    ProjectStatusModel model = new ProjectStatusModel()
                                    {
                                        AppID      = R.AppID,
                                        IP         = R.Tx.LocalIP,
                                        Port       = Project.Port,
                                        Name       = Project.Name,
                                        Version    = Project.CurrentVersion,
                                        Cpu        = (int)cpu,
                                        Ram        = AppInfoTool.RAM(Process.Id) / 1024,
                                        StartTime  = StartTime,
                                        IsRun      = true,
                                        CreateTime = DateTime.Now
                                    };
                                    TxSendQueue.Add(20003000, Json.Object2String(model));
                                }));
                                if (Status == WorkStatus.启动成功)
                                {
                                    StatusUI(WorkStatus.启动成功);
                                }
                                else
                                {
                                    StatusUI(WorkStatus.端口占用);
                                }
                            }
                            else
                            {
                                BeginInvoke(new Action(() =>
                                {
                                    LBCpu.Text = $"CPU:0 %";
                                    LBRam.Text = $"内存:0 MB";

                                    //发送未启动状态的项目信息
                                    ProjectStatusModel model = new ProjectStatusModel()
                                    {
                                        IP         = R.Tx.LocalIP,
                                        Port       = Project.Port,
                                        Name       = Project.Name,
                                        Version    = Project.CurrentVersion,
                                        Cpu        = 0,
                                        Ram        = 0,
                                        StartTime  = StartTime,
                                        IsRun      = false,
                                        CreateTime = DateTime.Now
                                    };
                                    TxSendQueue.Add(20003000, Json.Object2String(model));
                                }));
                                if (Status == WorkStatus.正在启动)
                                {
                                    StatusUI(WorkStatus.正在启动);
                                }
                                else if (Status == WorkStatus.启动失败)
                                {
                                    StatusUI(WorkStatus.启动失败);
                                }
                                else
                                {
                                    StatusUI(WorkStatus.准备就绪);
                                }

                                //if (Status == WorkStatus.准备就绪 && Project.AutoStart && StartTime.Year < 2000)
                                //    Start();
                            }
                        }
                    }
                    catch { }
                    Thread.Sleep(STATUS_INTERVAL);
                }
            });
        }