コード例 #1
0
        public async void OnAddPostil()
        {
            var inputTagList = PostilTag.Split(',', ',').ToList().Select(t => t.Trim()).ToList();
            var tagSet       = new HashSet <string>(inputTagList.Where(t => t != ""));

            if (!File.Exists(_screenshotPicPath))
            {
                return;
            }
            var result = await DataApi.UploadFilesAsync(new[] { _screenshotPicPath }, Mg.Get <IMgContext>().ProjectId);

            if (!result.IsOk)
            {
                Mg.Get <IMgLog>().Error("上传截图失败:" + result.Message);
                Mg.Get <IMgDialog>().ShowDesktopAlert("上传截图失败", result.Message);
                return;
            }
            var fileId = result.Data.AsList <Id>().FirstOrDefault();
            var data   = new DynamicRecord
            {
                [Hubs.Postil.ProjectId]    = Mg.Get <IMgContext>().ProjectId,
                [Hubs.Postil.Title]        = PostilTitle,
                [Hubs.Postil.CreateTime]   = DateTime.Now,
                [Hubs.Postil.CreateUser]   = Mg.Get <IMgContext>().UserId,
                [Hubs.Postil.Tags]         = tagSet,
                [Hubs.Postil.IsPublic]     = IsPublic,
                [Hubs.Postil.FileId]       = fileId,
                [Hubs.Postil.CameraMatrix] = _matrixArray
            };
            var createResult = await DataApi.AddAsync(Hubs.Postil.T, new IRecord[] { data });

            if (!createResult.IsOk)
            {
                Mg.Get <IMgLog>().Error("添加批注失败:" + createResult.Message);
                Mg.Get <IMgDialog>().ShowDesktopAlert("添加批注失败", createResult.Message);
                return;
            }
            var originalTagList = PostilTagList.Select(tag => tag.Name.Trim()).ToList();
            var tagData         = (from tag in tagSet
                                   where !originalTagList.Contains(tag)
                                   select new DynamicRecord
            {
                [Hubs.Tag.ProjectId] = Mg.Get <IMgContext>().ProjectId,
                [Hubs.Tag.Name] = tag
            }).ToList();
            await DataApi.AddAsync(Hubs.Tag.T, tagData.AsArray <IRecord>());

            var addRecord = createResult.Data.AsList <DynamicRecord>().FirstOrDefault();
            await Mg.Get <IMgWeb>().SendWebMsgAsync("demoPostil/add", addRecord?.Id.ToString(), BoardcastType.ProjectGroup);//发送广播

            //Close();
        }