| | |
| | | using Shared; |
| | | using HDL_ON.Entity; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.DAL.Server; |
| | | using System.Threading; |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | |
| | | { |
| | | btnOption.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | if (btnOption.TextID == StringId.Save) |
| | | Action action = () => |
| | | { |
| | | if (string.IsNullOrEmpty(room.name)) |
| | | var waitPage = new Loading(); |
| | | waitPage.Start(); |
| | | new Thread(() => |
| | | { |
| | | new Tip() |
| | | try |
| | | { |
| | | CloseTime = 1, |
| | | Text = Language.StringByID(StringId.RoomNameCannotBeEmpty), |
| | | Direction = AMPopTipDirection.None, |
| | | }.Show(bodyView); |
| | | return; |
| | | } |
| | | if (string.IsNullOrEmpty(room.floorName)) |
| | | { |
| | | new Tip() |
| | | { |
| | | CloseTime = 1, |
| | | Text = Language.StringByID(StringId.PlsBindFloor), |
| | | Direction = AMPopTipDirection.None, |
| | | }.Show(bodyView); |
| | | return; |
| | | } |
| | | foreach (var tempRoom in DB_ResidenceData.rooms) |
| | | { |
| | | if (room.name == tempRoom.name) |
| | | { |
| | | new PublicAssmebly().TipMsg(StringId.Tip, StringId.AddingFailed_RoomAlreadyExists); |
| | | return; |
| | | } |
| | | } |
| | | DB_ResidenceData.rooms.Add(room); |
| | | room.SaveRoomData(); |
| | | backAction(); |
| | | this.RemoveFromParent(); |
| | | } |
| | | if (btnOption.TextID == StringId.DeleteRoom) |
| | | { |
| | | Action action = () => |
| | | { |
| | | foreach (var f in DB_ResidenceData.functionList.GetAllFunction()) |
| | | { |
| | | if (f.roomIdList.Contains(room.sid)) |
| | | var delResult = SpatialInfo.CurrentSpatial.DelRoom(room); |
| | | if (delResult == StateCode.SUCCESS) |
| | | { |
| | | f.roomIdList.Remove(room.sid); |
| | | foreach (var f in FunctionList.List.GetDeviceFunctionList()) |
| | | { |
| | | if (f.roomIds.Contains(room.roomId)) |
| | | { |
| | | f.roomIds.Remove(room.roomId); |
| | | } |
| | | } |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | //删除事件回调 |
| | | this.deleteAction?.Invoke(); |
| | | this.RemoveFromParent(); |
| | | }); |
| | | } |
| | | } |
| | | DB_ResidenceData.DelRoom(room); |
| | | backAction(); |
| | | this.RemoveFromParent(); |
| | | }; |
| | | new PublicAssmebly().TipMsg(StringId.Tip, StringId.DeleteRoomTip, action); |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"添加房间失败msg:{ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | waitPage.Hide(); |
| | | waitPage.RemoveFromParent(); |
| | | }); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }; |
| | | new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteRoomTip, action); |
| | | }; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 显示背景图选择选项 |
| | |
| | | return; |
| | | } |
| | | btnRoomName.Text = str; |
| | | room.name = str; |
| | | if (pageTitleId == StringId.EditRoomInfo) |
| | | { |
| | | room.SaveRoomData(); |
| | | } |
| | | room.roomName = str; |
| | | room.UpdataRoomInfo(); |
| | | }; |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => |
| | | { |
| | | List<string> roomNameList = new List<string>(); |
| | | foreach (var rroom in DB_ResidenceData.rooms) |
| | | foreach (var rroom in SpatialInfo.CurrentSpatial.RoomList) |
| | | { |
| | | roomNameList.Add(rroom.name); |
| | | roomNameList.Add(rroom.roomName); |
| | | } |
| | | if (pageTitleId == StringId.AddRoom) |
| | | { |
| | | new PublicAssmebly().LoadDialog_EditParater(StringId.RoomName, room.name, callBack, StringId.RoomNameCannotBeEmpty, StringId.RoomNameAlreadyExists, roomNameList); |
| | | } |
| | | else |
| | | { |
| | | new PublicAssmebly().LoadDialog_EditParater(StringId.RoomName, room.name, callBack, StringId.RoomNameCannotBeEmpty, StringId.EidtFailed_RoomAlreadyExists, roomNameList); |
| | | } |
| | | new PublicAssmebly().LoadDialog_EditParater(StringId.RoomName, room.roomName, callBack, StringId.RoomNameCannotBeEmpty, StringId.EidtFailed_RoomAlreadyExists, roomNameList); |
| | | }; |
| | | btnEditRoomNameIcon.MouseUpEventHandler = eventHandler; |
| | | roomNameRow.MouseUpEventHandler = eventHandler; |
| | |
| | | Action floorsCallBackAction = () => |
| | | { |
| | | btnFloorInfo.Text = room.floorName; |
| | | room.UpdataRoomInfo(); |
| | | }; |
| | | var residentialManagePage = new FloorsManagementPage(floorsCallBackAction); |
| | | var residentialManagePage = new RoomBinglingFloorPage(floorsCallBackAction, room); |
| | | MainPage.BasePageView.AddChidren(residentialManagePage); |
| | | residentialManagePage.LoadPage(room, StringId.FloorAssignment); |
| | | residentialManagePage.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | btnFloorInfo.MouseUpEventHandler = eventHandler; |
| | |
| | | btnTakePicture.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnTakePicture.IsSelected = false; |
| | | //var pid = Guid.NewGuid(); |
| | | //CropImage.TakePicture((imagePath) => |
| | | //{ |
| | | // if (imagePath != null) |
| | | // { |
| | | // btnRoomBg.ImagePath = imagePath.ToString(); |
| | | // room.backgroundImage = btnRoomBg.ImagePath; |
| | | // MainPage.Log("SelectPicture 裁剪图片返回路径: " + imagePath); |
| | | // } |
| | | //}, pid.ToString(), 16, 9); |
| | | |
| | | //var imageName = Guid.NewGuid().ToString(); |
| | | var imageName = room.sid; |
| | | |
| | | var imageName = Guid.NewGuid().ToString(); |
| | | //var imageName = room.sid; |
| | | CropImage.TakePicture((imagePath) => |
| | | { |
| | | CropImageCallBack(imagePath, imageName); |
| | | CropImageCallBack(imagePath); |
| | | |
| | | }, imageName, 16, 9); |
| | | |
| | |
| | | btnAlbum.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnAlbum.IsSelected = false; |
| | | //var pid = Guid.NewGuid(); |
| | | //CropImage.SelectPicture((imagePath) => |
| | | //{ |
| | | // if (imagePath != null) |
| | | // { |
| | | // btnRoomBg.ImagePath = imagePath.ToString(); |
| | | // room.backgroundImage = btnRoomBg.ImagePath; |
| | | // MainPage.Log("SelectPicture 裁剪图片返回路径: " + imagePath); |
| | | // } |
| | | //}, pid.ToString(), 16, 9); |
| | | |
| | | //从相册选择图片裁剪 |
| | | //var imageName = Guid.NewGuid().ToString(); |
| | | var imageName = room.sid; |
| | | var imageName = Guid.NewGuid().ToString(); |
| | | //var imageName = room.sid; |
| | | CropImage.SelectPicture((imagePath) => |
| | | { |
| | | CropImageCallBack(imagePath, imageName); |
| | | CropImageCallBack(imagePath); |
| | | |
| | | }, imageName, 16, 9); |
| | | |
| | |
| | | //房间默认图库 |
| | | btnDefaultGallery.MouseUpEventHandler = (sender, e) => { |
| | | pictureOptionView.Parent.RemoveFromParent(); |
| | | Action<string> action = (obj) => { |
| | | Action<string> action = (obj) => |
| | | { |
| | | room.backgroundImage = obj; |
| | | btnRoomBg.ImageBytes = null;//解决有ImageBytes不加载ImagePath |
| | | btnRoomBg.ImagePath = room.backgroundImage; |
| | | if (pageTitleId == StringId.EditRoomInfo) |
| | | { |
| | | room.SaveRoomData(); |
| | | } |
| | | room.UpdataRoomInfo(); |
| | | modifyImageAction?.Invoke(); |
| | | }; |
| | | |
| | | var galleryPage = new RoomGalleryPage(room.backgroundImage, action); |
| | |
| | | /// </summary> |
| | | /// <param name="imagePath">裁剪后的真实路径</param> |
| | | /// <param name="imageName">自定义的图片名称</param> |
| | | void CropImageCallBack(string imagePath, string imageName) |
| | | void CropImageCallBack(string selectImagePath) |
| | | { |
| | | if (string.IsNullOrEmpty(imagePath) == true) |
| | | if (string.IsNullOrEmpty(selectImagePath) == true) |
| | | { |
| | | return; |
| | | } |
| | | //上传成功到回调 |
| | | Action<string> uploadSuccessAction = (imageUrl) => |
| | | { |
| | | //2020-12-03 需要讲最新的图片路径同步到云端 |
| | | room.backgroundImage = imageUrl; |
| | | room.UpdataRoomInfo(); |
| | | modifyImageAction?.Invoke(); |
| | | }; |
| | | //上传图片到云端 |
| | | UploadImage(selectImagePath, btnRoomBg, room, uploadSuccessAction); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 上传图片方法 |
| | | /// </summary> |
| | | /// <param name="selectImagePath">裁剪后的图片路径</param> |
| | | /// <param name="imageView"></param> |
| | | /// <param name="uploadSuccessAction"></param> |
| | | void UploadImage(string selectImagePath, ImageView imageView, Room mRoom, Action<string> uploadSuccessAction) |
| | | { |
| | | try |
| | | { |
| | | var mPath = imagePath; |
| | | MainPage.Log("SelectPicture 裁剪图片返回路径: " + imagePath); |
| | | #if __IOS__ |
| | | //MainPage.Log("SelectPicture 裁剪图片返回路径: " + selectImagePath); |
| | | //1.读取裁剪后的图片,然后删除 |
| | | var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath); |
| | | System.IO.File.Delete(selectImagePath); |
| | | |
| | | |
| | | #else |
| | | //imageName = imageName + ".png"; |
| | | |
| | | //1.使用新名字,解决相同路径不刷新图片问题 |
| | | imageName = Guid.NewGuid().ToString() + ".png"; |
| | | //1.2如果是自定义图片删除之前的 |
| | | if (!btnRoomBg.ImagePath.Contains("Room")) { |
| | | Utlis.WriteLine("删除: " + btnRoomBg.ImagePath); |
| | | System.IO.File.Delete(btnRoomBg.ImagePath); |
| | | } |
| | | //1.3如果是安卓需要拷贝回来APP根目录 |
| | | FileUtils.FileCopyToRootPath(imagePath, imageName); |
| | | System.IO.File.Delete(imagePath); |
| | | mPath = imageName; |
| | | #endif |
| | | //清空原来图片 |
| | | btnRoomBg.ImagePath = "NULL"; |
| | | //生成图片 |
| | | room.backgroundImage = mPath; |
| | | btnRoomBg.ImagePath = mPath; |
| | | |
| | | if (pageTitleId == StringId.EditRoomInfo) |
| | | var waitPage = new Loading(); |
| | | bodyView.AddChidren(waitPage); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | //开始上传 |
| | | new Thread(() => |
| | | { |
| | | room.SaveRoomData(); |
| | | } |
| | | try |
| | | { |
| | | var newImageName = mRoom.roomName.Trim() + ".png"; |
| | | var uploadImageObj = new UploadImageObj() |
| | | { |
| | | prefix = "Room" + Utlis.GetTimestamp(), |
| | | fileName = newImageName, |
| | | uid = mRoom.uid, |
| | | content = imageBytes, |
| | | }; |
| | | |
| | | var imageUrl = ImageUtlis.Current.UploadImage(uploadImageObj); |
| | | if (!string.IsNullOrEmpty(imageUrl) && imageUrl.Contains(newImageName)) |
| | | { |
| | | //上传成功 |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | //Utlis.WriteLine("上传成功:" + imageUrl); |
| | | //1.2如果是自定义图片删除之前的 |
| | | if (!string.IsNullOrEmpty(imageView.ImagePath) && !imageView.ImagePath.Contains("Classification/Room/Roombg")) |
| | | { |
| | | //Utlis.WriteLine("删除: " + imageView.ImagePath); |
| | | System.IO.File.Delete(imageView.ImagePath); |
| | | } |
| | | //重命名保存 |
| | | ImageUtlis.Current.WriteFileByBytes(imageUrl, imageBytes); |
| | | imageView.ImagePath = null; |
| | | imageView.ImageBytes = imageBytes; |
| | | //上传成功 |
| | | Utlis.ShowTip(Language.StringByID(StringId.UploadSuccessfully)); |
| | | uploadSuccessAction?.Invoke(imageUrl); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | //上传失败 |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | //上传失败 |
| | | Utlis.ShowTip(Language.StringByID(StringId.UploadFailed)); |
| | | }); |
| | | } |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (waitPage != null) |
| | | { |
| | | waitPage.RemoveFromParent(); |
| | | waitPage = null; |
| | | } |
| | | }); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | catch { } |
| | | } |
| | | |
| | | } |
| | | } |