예제 #1
0
        public string CreateNewObject(XmlDocument doc)
        {
            StringBuilder outString = new StringBuilder();

            NavigationPortalSidebarItemGroupInfo param = new NavigationPortalSidebarItemGroupInfo();

            param.Id = DigitalNumberContext.Generate("Key_Guid");

            param.Status = 1;

            param.UpdateDate = param.CreateDate = DateTime.Now;

            outString.Append("{\"ajaxStorage\":" + AjaxUtil.Parse <NavigationPortalSidebarItemGroupInfo>(param) + ",");

            outString.Append("\"message\":{\"returnCode\":0,\"value\":\"�����ɹ���\"}}");

            return(outString.ToString());
        }
        /// <summary>创建新的对象</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string CreateNewObject(XmlDocument doc)
        {
            StringBuilder outString = new StringBuilder();

            ApplicationFeatureDateLimitInfo param = new ApplicationFeatureDateLimitInfo();

            param.Id = DigitalNumberContext.Generate("Key_Guid");

            param.Status = 1;

            param.ModifiedDate = param.CreatedDate = DateTime.Now;

            outString.Append("{\"data\":" + AjaxUtil.Parse <ApplicationFeatureDateLimitInfo>(param) + ",");

            outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_create_success"], true) + "}");

            return(outString.ToString());
        }
        /// <summary>创建新的对象</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string CreateNewObject(XmlDocument doc)
        {
            StringBuilder outString = new StringBuilder();

            TaskCategoryInfo param = new TaskCategoryInfo();

            param.Id = DigitalNumberContext.Generate("Key_Guid");

            param.Status = 1;

            param.UpdateDate = param.CreateDate = DateTime.Now;

            outString.Append("{\"data\":" + AjaxUtil.Parse <TaskCategoryInfo>(param) + ",");

            outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}");

            return(outString.ToString());
        }
        /// <summary>表单</summary>
        /// <returns></returns>
        public ActionResult Form(string options)
        {
            // 测试页面 customizes/customize-page/form?id=442049bb-9bb3-49cc-8a30-2454a56c770e

            // 所属应用信息
            ApplicationInfo application = ViewBag.application = AppsContext.Instance.ApplicationService[WebConfiguration.APP_NAME_CUSTOMIZES];

            // -------------------------------------------------------
            // 身份验证
            // -------------------------------------------------------

            if (!AppsSecurity.IsAdministrator(KernelContext.Current.User, application.ApplicationName))
            {
                ApplicationError.Write(401);
            }

            // -------------------------------------------------------
            // 业务数据处理
            // -------------------------------------------------------

            JsonData request = JsonMapper.ToObject(options == null ? "{}" : options);

            // 实体数据标识
            string id = !request.Keys.Contains("id") ? string.Empty : request["id"].ToString();

            CustomizeContentInfo param = null;

            if (string.IsNullOrEmpty(id))
            {
                param = new CustomizeContentInfo();

                param.Id = DigitalNumberContext.Generate("Key_Guid");

                param.CreateDate = param.UpdateDate = DateTime.Now;
            }
            else
            {
                param = CustomizeContext.Instance.CustomizeContentService.FindOne(id);
            }

            ViewBag.param = param;

            return(View("/views/main/customizes/customize-content-form.cshtml"));
        }
예제 #5
0
        /// <summary>保存日志信息</summary>
        /// <param name="methodName">方法名称</param>
        /// <param name="entityId">实体标识</param>
        /// <param name="entityClassName">实体类名称</param>
        /// <param name="contextDiffLog">上下文差异记录</param>
        /// <returns>0 保存成功 | 1 保存失败</returns>
        public int Log(string methodName, string entityId, string entityClassName, string contextDiffLog)
        {
            IAccountInfo account = KernelContext.Current.User;

            // 保存实体数据操作记录
            EntityLifeHistoryInfo param = new EntityLifeHistoryInfo();

            param.Id        = DigitalNumberContext.Generate("Key_Guid");
            param.AccountId = account == null?Guid.Empty.ToString() : account.Id;

            param.MethodName      = methodName;
            param.EntityId        = entityId;
            param.EntityClassName = entityClassName;
            param.ContextDiffLog  = contextDiffLog;

            this.Save(param);

            return(0);
        }
        /// <summary></summary>
        /// <param name="applicationId"></param>
        /// <returns></returns>
        public static string CreateSecurityToken(string applicationId)
        {
            ApplicationInfo param = AppsContext.Instance.ApplicationService.FindOne(applicationId);

            // 时间戳
            var timestamp = DateHelper.GetTimestamp();
            // 随机数
            var nonce = DigitalNumberContext.Generate("Key_Nonce");
            // 签名
            var clientSignature = Encrypter.EncryptSHA1(Encrypter.SortAndConcat(
                                                            param.ApplicationSecret,
                                                            timestamp.ToString(),
                                                            nonce.ToString()));

            return("{\"clientId\":\"" + param.Id + "\","
                   + "\"clientSignature\":\"" + clientSignature + "\","
                   + "\"timestamp\":\"" + timestamp + "\","
                   + "\"nonce\":\"" + nonce + "\"}");
        }
예제 #7
0
        /// <summary>保存日志信息</summary>
        /// <param name="accountId">帐号标识</param>
        /// <param name="optionName">操作名称:登录 编辑 删除</param>
        /// <param name="originalObject">原始的对象信息</param>
        /// <param name="description">描述信息</param>
        /// <param name="optionAccountId">操作人的帐号标识</param>
        /// <returns>0 保存成功 | 1 保存失败</returns>
        public int Log(string accountId, string optionName, IAccountInfo originalObject, string description, string optionAccountId)
        {
            IAccountInfo account = KernelContext.Current.User;

            // 保存实体数据操作记录
            AccountLogInfo param = new AccountLogInfo();

            param.Id                  = DigitalNumberContext.Generate("Key_Guid");
            param.AccountId           = accountId;
            param.OperatedBy          = optionAccountId;
            param.OperationName       = optionName;
            param.OriginalObjectValue = originalObject == null ? string.Empty : originalObject.Serializable();
            param.Description         = description;
            param.CreatedDate         = DateTime.Now;

            param = this.Save(param);

            return(param == null ? 1 : 0);
        }
예제 #8
0
        public void TestFindOne()
        {
            IAttachmentParentObject parent = new AttachmentParentObject(StringHelper.ToGuid(),
                                                                        KernelContext.ParseObjectType(typeof(AttachmentFileInfo)),
                                                                        KernelContext.ParseObjectType(typeof(AttachmentFileInfo)),
                                                                        "test");

            IAttachmentFileInfo param = new AttachmentFileInfo(parent);

            param.Id             = "test-" + DigitalNumberContext.Generate("Key_RunningNumber");
            param.AttachmentName = "test-" + StringHelper.ToRandom(8);
            param.FileType       = ".tXT";

            AttachmentStorageContext.Instance.AttachmentFileService.Save(param);

            param = AttachmentStorageContext.Instance.AttachmentFileService.FindOne(param.Id);

            Assert.IsNotNull(param);
        }
        private IBugService service = BugContext.Instance.BugService; // 数据服务

        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #region 函数:Save(XmlDocument doc)
        /// <summary>保存记录</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string Save(XmlDocument doc)
        {
            BugInfo param = new BugInfo();

            param = (BugInfo)AjaxUtil.Deserialize(param, doc);

            param.Properties["FromStatus"] = XmlHelper.Fetch("fromStatus", doc);
            param.Properties["ToStatus"]   = XmlHelper.Fetch("toStatus", doc);

            bool isNewObject = !this.service.IsExist(param.Id);

            this.service.Save(param);

            if (isNewObject)
            {
                ApplicationInfo application = AppsContext.Instance.ApplicationService[BugConfiguration.ApplicationName];

                Uri actionUri = new Uri(KernelConfigurationView.Instance.HostName + "/api/timeline.save.aspx?client_id=" + application.Id + "&client_secret=" + application.ApplicationSecret);

                string taskCode = DigitalNumberContext.Generate("Key_Guid");

                string content = string.Format("报告了一个新的问题【{0}】。<a href=\"{1}/bugs/article/{2}.aspx\" target=\"_blank\" >网页链接</a>", param.Title, KernelConfigurationView.Instance.HostName, param.Id);

                string xml = string.Format(@"<?xml version=""1.0"" encoding=""utf-8""?>
<request>
    <id><![CDATA[{0}]]></id>
    <applicationId><![CDATA[{1}]]></applicationId>
    <accountId><![CDATA[{2}]]></accountId>
    <content><![CDATA[{3}]]></content>
</request>
", taskCode, application.Id, KernelContext.Current.User.Id, content);

                // 发送请求信息
                AjaxRequestData reqeustData = new AjaxRequestData();

                reqeustData.ActionUri = actionUri;
                reqeustData.Args.Add("xml", xml);

                AjaxRequest.RequestAsync(reqeustData, null);
            }

            return(MessageObject.Stringify("0", I18n.Strings["msg_save_success"]));
        }
예제 #10
0
        /// <summary>表单</summary>
        /// <returns></returns>
        public ActionResult Form(string options)
        {
            // 所属应用信息
            ApplicationInfo application = ViewBag.application = AppsContext.Instance.ApplicationService[APPLICATION_NAME];

            // -------------------------------------------------------
            // 身份验证
            // -------------------------------------------------------

            if (!AppsSecurity.IsAdministrator(KernelContext.Current.User, application.ApplicationName))
            {
                ApplicationError.Write(401);
            }

            // -------------------------------------------------------
            // 数据加载
            // -------------------------------------------------------

            JsonData request = JsonMapper.ToObject(options);

            string id = JsonHelper.GetDataValue(request, "id");

            ApplicationInfo param = new ApplicationInfo();

            if (string.IsNullOrEmpty(id))
            {
                param.Id     = DigitalNumberContext.Generate("Key_Guid");
                param.Status = 1;
            }
            else
            {
                param = AppsContext.Instance.ApplicationService.FindOne(id);
            }

            ViewBag.param = param;

            // -------------------------------------------------------
            // 视图加载
            // -------------------------------------------------------

            return(View("/views/main/applications/application-form.cshtml"));
        }
예제 #11
0
        /// <summary>创建新的对象</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string CreateNewObject(XmlDocument doc)
        {
            StringBuilder outString = new StringBuilder();

            string organizationId = XmlHelper.Fetch("organizationId", doc);

            JobInfo param = new JobInfo();

            param.Id = DigitalNumberContext.Generate("Key_Guid");

            param.Status = 1;

            param.ModifiedDate = param.CreatedDate = DateTime.Now;

            outString.Append("{\"data\":" + AjaxUtil.Parse <IJobInfo>(param) + ",");

            outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}");

            return(outString.ToString());
        }
        public string Save(XmlDocument doc)
        {
            IStandardRoleInfo param = new StandardRoleInfo();

            param = (IStandardRoleInfo)AjaxUtil.Deserialize(param, doc);

            string originalName = XmlHelper.Fetch("originalName", doc);

            if (string.IsNullOrEmpty(param.Name))
            {
                return("{message:{\"returnCode\":1,\"value\":\"名称不能为空。\"}}");
            }

            if (string.IsNullOrEmpty(param.Id))
            {
                // 新增

                if (this.service.IsExistName(param.Name))
                {
                    return("{message:{\"returnCode\":1,\"value\":\"�������Ѵ��ڡ�\"}}");
                }

                param.Id = DigitalNumberContext.Generate("Key_Guid");
            }
            else
            {
                // 修改

                if (param.Name != originalName)
                {
                    if (this.service.IsExistName(param.Name))
                    {
                        return("{message:{\"returnCode\":1,\"value\":\"此名称已存在。\"}}");
                    }
                }
            }

            this.service.Save(param);

            return(MessageObject.Stringify("0", I18n.Strings["msg_save_success"]));
        }
        /// <summary>重启插件</summary>
        /// <returns>返回信息. =0代表重启成功, >0代表重启失败.</returns>
        public override int Restart()
        {
            ApplicationInfo application = AppsContext.Instance.ApplicationService[EntitiesConfiguration.ApplicationName];

            ApplicationEventInfo applicationEvent = new ApplicationEventInfo();

            applicationEvent.Id = DigitalNumberContext.Generate("Key_Guid");

            applicationEvent.ApplicationId = application.Id;
            applicationEvent.Tags          = "信息";
            applicationEvent.Description   = string.Format("【{0}】应用执行{1}事件。", application.ApplicationDisplayName, (this.restartCount == 0 ? "初始化" : "第" + this.restartCount + "次重启"));

            applicationEvent.Start();

            try
            {
                // 重新加载信息
                Reload();

                // 自增重启次数计数器
                this.restartCount++;
            }
            catch (Exception ex)
            {
                logger.Error(ex.ToString());

                applicationEvent.Tags        = "错误";
                applicationEvent.Description = string.Format("【错误】{0}错误信息:{1}", applicationEvent.Description, ex.Message);

                throw ex;
            }
            finally
            {
                applicationEvent.Finish();

                AppsContext.Instance.ApplicationEventService.Save(applicationEvent);
            }

            return(0);
        }
예제 #14
0
        /// <summary>创建新的对象</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string CreateNewObject(XmlDocument doc)
        {
            StringBuilder outString = new StringBuilder();

            string applicationId = XmlHelper.Fetch("applicationId", doc);

            ApplicationSettingGroupInfo param = new ApplicationSettingGroupInfo();

            param.Id = DigitalNumberContext.Generate("Key_Guid");

            param.ApplicationId = applicationId;

            param.ParentId = "00000000-0000-0000-0000-000000000000";

            param.Status = 1;

            outString.Append("{\"data\":" + AjaxUtil.Parse <ApplicationSettingGroupInfo>(param) + ",");

            outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}");

            return(outString.ToString());
        }
        /// <summary>提交界面</summary>
        /// <returns></returns>
        public ActionResult Form(string options)
        {
            // 所属应用信息
            ApplicationInfo application = ViewBag.application = AppsContext.Instance.ApplicationService[ForumConfiguration.ApplicationName];

            // -------------------------------------------------------
            // 身份验证
            // -------------------------------------------------------

            if (!AppsSecurity.IsAdministrator(KernelContext.Current.User, application.ApplicationName))
            {
                ApplicationError.Write(401);
            }

            JsonData request = JsonMapper.ToObject(options == null ? "{}" : options);

            string id = !request.Keys.Contains("id") ? string.Empty : request["id"].ToString();

            ForumCategoryInfo param = null;

            if (string.IsNullOrEmpty(id))
            {
                IAccountInfo account = KernelContext.Current.User;

                param = new ForumCategoryInfo();

                param.Id          = DigitalNumberContext.Generate("Key_Guid");
                param.AccountId   = account.Id;
                param.CreatedDate = param.ModifiedDate = DateTime.Now;
            }
            else
            {
                param = ForumContext.Instance.ForumCategoryService.FindOne(id);
            }

            ViewBag.param = param;

            return(View("/views/main/forum/forum-category-form.cshtml"));
        }
        public void TestSend()
        {
            var applicationId = "00000000-0000-0000-0000-000000000001";

            var taskCode = DigitalNumberContext.Generate("Key_Guid");

            var notificationOptions = "";

            TasksContext.Instance.TaskWorkService.Send(applicationId, taskCode, "4", string.Format("test-send-id-{0}", taskCode), DateTime.Now.ToString(), "测试", "00000000-0000-0000-0000-000000000001", "00000000-0000-0000-0000-000000000002");

            TaskWorkInfo result = TasksContext.Instance.TaskWorkService.FindOneByTaskCode(applicationId, taskCode);

            Assert.IsNotNull(result);

            // 发送带提醒功能的
            taskCode = DigitalNumberContext.Generate("Key_Guid");

            TasksContext.Instance.TaskWorkService.Send(applicationId, taskCode, "4", string.Format("test-send-id-{0}", taskCode), DateTime.Now.ToString(), "测试", "00000000-0000-0000-0000-000000000001", "00000000-0000-0000-0000-000000000002", notificationOptions);

            result = TasksContext.Instance.TaskWorkService.FindOneByTaskCode(applicationId, taskCode);

            Assert.IsNotNull(result);
        }
예제 #17
0
        /// <summary>
        /// 设置头像
        /// </summary>
        /// <param name="id">用户编号</param>
        /// <returns>布尔值</returns>
        public void SetIconPath(string id)
        {
            // 根据用户编号查询是否存在个人基本信息
            ForumMemberInfo info = this.provider.FindOneByAccountId(id);

            if (info == null)
            {
                info              = new ForumMemberInfo();
                info.Id           = DigitalNumberContext.Generate("Key_Guid");
                info.AccountId    = KernelContext.Current.User.Id;
                info.Signature    = "";
                info.Point        = 0;
                info.IconPath     = KernelContext.Current.User.Id + "_120x120.png";
                info.ModifiedDate = DateTime.Now;
                info.CreatedDate  = DateTime.Now;

                this.provider.Insert(info);
            }
            else
            {
                this.provider.SetIconPath(id);
            }
        }
예제 #18
0
        /// <summary>写入的帐号的访问令牌信息</summary>
        /// <param name="appKey">应用标识</param>
        /// <param name="accountId">帐号标识</param>
        /// <returns></returns>
        public int Write(string appKey, string accountId)
        {
            ConnectAccessTokenInfo param = this.FindOneByAccountId(appKey, accountId);

            if (param == null)
            {
                param = new ConnectAccessTokenInfo();

                param.Id           = DigitalNumberContext.Generate("Key_32DigitGuid");
                param.AppKey       = appKey;
                param.AccountId    = accountId;
                param.ExpireDate   = DateTime.Now.AddSeconds(ConnectConfigurationView.Instance.SessionTimeLimit);
                param.RefreshToken = DigitalNumberContext.Generate("Key_32DigitGuid");

                this.Save(param);
            }
            else
            {
                this.Refesh(appKey, param.RefreshToken, DateTime.Now.AddSeconds(ConnectConfigurationView.Instance.SessionTimeLimit));
            }

            return(0);
        }
예제 #19
0
        /// <summary>创建新的对象</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string CreateNewObject(XmlDocument doc)
        {
            StringBuilder outString = new StringBuilder();

            string treeViewId = XmlHelper.Fetch("treeViewId", doc);

            string parentId = XmlHelper.Fetch("parentId", doc);

            CatalogItemInfo param = new CatalogItemInfo();

            param.Id = DigitalNumberContext.Generate("Key_Guid");

            param.ParentId = string.IsNullOrEmpty(parentId) ? treeViewId : parentId;

            param.Status = 1;

            param.ModifiedDate = param.CreatedDate = DateTime.Now;

            outString.Append("{\"data\":" + AjaxUtil.Parse <CatalogItemInfo>(param) + ",");

            outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}");

            return(outString.ToString());
        }
        public string CreateNewObject(XmlDocument doc)
        {
            StringBuilder outString = new StringBuilder();

            string standardOrganizationUnitId = XmlHelper.Fetch("standardOrganizationUnitId", doc);

            IStandardRoleInfo param = new StandardRoleInfo();

            param.Id = DigitalNumberContext.Generate("Key_Guid");

            if (!string.IsNullOrEmpty(standardOrganizationUnitId))
            {
                param.StandardOrganizationUnitId = standardOrganizationUnitId;
            }

            param.Status       = 1;
            param.ModifiedDate = DateTime.Now;

            outString.Append("{\"data\":" + AjaxUtil.Parse <IStandardRoleInfo>(param) + ",");

            outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}");

            return(outString.ToString());
        }
예제 #21
0
        public string CreateNewObject(XmlDocument doc)
        {
            StringBuilder outString = new StringBuilder();

            string parentId = XmlHelper.Fetch("parentId", doc);

            IAccountGrantInfo param = new AccountGrantInfo();

            param.Id = DigitalNumberContext.Generate("Key_Guid");

            param.Status = 1;

            param.GrantedTimeFrom = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));

            param.GrantedTimeTo = Convert.ToDateTime(DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd 00:00:00"));

            param.ModifiedDate = param.CreatedDate = DateTime.Now;

            outString.Append("{\"data\":" + AjaxUtil.Parse <IAccountGrantInfo>(param) + ",");

            outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}");

            return(outString.ToString());
        }
예제 #22
0
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #region 函数:Save(XmlDocument doc)
        /// <summary>保存记录</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string Save(XmlDocument doc)
        {
            ForumThreadInfo param = new ForumThreadInfo();

            param = (ForumThreadInfo)AjaxUtil.Deserialize(param, doc);

            if (string.IsNullOrEmpty(param.Title.Trim()))
            {
                return("{\"message\":{\"returnCode\":\"1\",\"value\":\"帖子标题不能为空。\"}}");
            }

            param.Id = param.Id == "" ? Guid.NewGuid().ToString() : param.Id;

            param.CommentCount = ForumContext.Instance.ForumCommentService.GetCommentCount(param.Id);

            // 是否有附件
            param.AttachmentFileCount = AttachmentStorageContext.Instance.AttachmentFileService.FindAllByEntityId(KernelContext.ParseObjectType(typeof(ForumThreadInfo)), param.Id).Count;

            // 查询最后回帖信息
            string lastCommentInfo = ForumContext.Instance.ForumCommentService.GetLastComment(param.Id);

            if (!string.IsNullOrEmpty(lastCommentInfo))
            {
                string[] info = lastCommentInfo.Split(',');
                param.LatestCommentAccountId   = info[0];
                param.LatestCommentAccountName = info[1];
            }

            if (!string.IsNullOrEmpty(param.UpdateHistoryLog))
            {
                param.UpdateHistoryLog = "该内容已在" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "被" + KernelContext.Current.User.Name + "编辑过。";
            }

            param.IP = IPQueryContext.GetClientIP();

            bool isNewObject = !this.service.IsExist(param.Id);

            // 保存操作
            this.service.Save(param);

            string message = "保存成功。";

            if (param.Status == 1)
            {
                ForumCategoryInfo categoryInfo = ForumContext.Instance.ForumCategoryService.FindOne(param.CategoryId);

                if (categoryInfo != null)
                {
                    if (this.service.IsExist(param.Id) && !string.IsNullOrEmpty(param.UpdateHistoryLog))
                    {
                        message = "帖子修改成功。";
                    }
                    else
                    {
                        int score = categoryInfo == null ? 0 : categoryInfo.PublishThreadPoint;
                        ForumContext.Instance.ForumMemberService.SetPoint(param.AccountId, score);
                        ForumContext.Instance.ForumMemberService.SetThreadCount(param.AccountId);

                        message = "帖子发布成功。";

                        if (param.Anonymous == 0)
                        {
                            // 发送 Timeline 数据
                            ApplicationInfo application = AppsContext.Instance.ApplicationService[ForumConfiguration.ApplicationName];

                            Uri actionUri = new Uri(KernelConfigurationView.Instance.HostName + "/api/timeline.save.aspx?client_id=" + application.Id + "&client_secret=" + application.ApplicationSecret);

                            string taskCode = DigitalNumberContext.Generate("Key_Guid");

                            string content = string.Format("发布了帖子【{0}】。<a href=\"{1}/forum/article/{2}.aspx\" target=\"_blank\" >网页链接</a>", param.Title, KernelConfigurationView.Instance.HostName, param.Id);

                            string xml = string.Format(@"<?xml version=""1.0"" encoding=""utf-8""?>
<request>
    <id><![CDATA[{0}]]></id>
    <applicationId><![CDATA[{1}]]></applicationId>
    <accountId><![CDATA[{2}]]></accountId>
    <content><![CDATA[{3}]]></content>
</request>
", taskCode, application.Id, KernelContext.Current.User.Id, content);

                            // 发送请求信息
                            AjaxRequestData reqeustData = new AjaxRequestData();

                            reqeustData.ActionUri = actionUri;
                            reqeustData.Args.Add("xml", xml);

                            AjaxRequest.RequestAsync(reqeustData, null);
                        }
                    }
                }
            }

            return("{\"message\":{\"returnCode\":\"0\",\"value\":\"" + message + "\"}}");
        }
        public string Save(XmlDocument doc)
        {
            GeneralRoleInfo param = new GeneralRoleInfo();

            param = (GeneralRoleInfo)AjaxUtil.Deserialize(param, doc);

            string originalName = XmlHelper.Fetch("originalName", doc);

            string originalGlobalName = XmlHelper.Fetch("originalGlobalName", doc);

            if (string.IsNullOrEmpty(param.Name))
            {
                return("{message:{\"returnCode\":1,\"value\":\"名称不能为空。\"}}");
            }

            if (string.IsNullOrEmpty(param.GlobalName))
            {
                return("{message:{\"returnCode\":1,\"value\":\"全局名称不能为空。\"}}");
            }

            if (string.IsNullOrEmpty(param.Id))
            {
                // 新增

                if (this.service.IsExistName(param.Name))
                {
                    return("{message:{\"returnCode\":1,\"value\":\"此全局名称已存在。\"}}");
                }

                param.Id = DigitalNumberContext.Generate("Key_Guid");
            }
            else
            {
                // 修改

                if (param.GlobalName != originalGlobalName)
                {
                    if (this.service.IsExistGlobalName(param.GlobalName))
                    {
                        return("{message:{\"returnCode\":1,\"value\":\"此全局名称已存在。\"}}");
                    }
                }

                if (param.Name != originalName)
                {
                    IList <IGroupInfo> list = MembershipManagement.Instance.GroupService.FindAllByCatalogItemId(param.CatalogItemId);

                    foreach (IGroupInfo item in list)
                    {
                        if (item.Name == param.Name)
                        {
                            return("{message:{\"returnCode\":1,\"value\":\"此分组类别下面已存在相同名称通用角色。\"}}");
                        }
                    }
                }
            }

            this.service.Save(param);

            return(MessageObject.Stringify("0", I18n.Strings["msg_save_success"]));
        }
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #region 函数:Save(BugInfo param)
        /// <summary>保存记录</summary>
        /// <param name="param">BugInfo 实例详细信息</param>
        /// <param name="message">数据库操作返回的相关信息</param>
        /// <returns>BugInfo 实例详细信息</returns>
        public BugInfo Save(BugInfo param)
        {
            if (string.IsNullOrEmpty(param.Id))
            {
                throw new Exception("实例标识不能为空。");
            }

            bool isNewObject = !this.IsExist(param.Id);

            BugInfo originalObject = isNewObject ? null : this.FindOne(param.Id);

            string methodName = isNewObject ? "新增" : "编辑";

            if (isNewObject)
            {
                IAccountInfo account = KernelContext.Current.User;

                param.AccountId   = account.Id;
                param.AccountName = account.Name;
            }

            // 指派问题负责人
            if (string.IsNullOrEmpty(param.AssignToAccountId))
            {
                param.AssignToAccountName = string.Empty;
            }
            else
            {
                param.AssignToAccountName = MembershipManagement.Instance.AccountService[param.AssignToAccountId].Name;
            }

            // 生成问题编号
            if (string.IsNullOrEmpty(param.Code))
            {
                string code = string.Empty;

                // 所属类别信息
                ApplicationInfo application = AppsContext.Instance.ApplicationService[BugConfiguration.ApplicationName];

                // 编号的相关实体数据表
                string entityTableName = BugConfigurationView.Instance.DigitalNumberEntityTableName;

                // 编号的前缀编码
                string prefixCode = BugConfigurationView.Instance.DigitalNumberPrefixCodeRule
                                    .Replace("{ApplicationPinYin}", application.PinYin);

                // 编号的自增流水号长度
                int incrementCodeLength = BugConfigurationView.Instance.DigitalNumberIncrementCodeLength;

                GenericSqlCommand command = this.provider.CreateGenericSqlCommand();

                code = DigitalNumberContext.GenerateDateCodeByPrefixCode(command, entityTableName, prefixCode, incrementCodeLength);

                param.Code = code.ToUpper();
            }

            // 过滤 Cross Site Script
            param = StringHelper.ToSafeXSS <BugInfo>(param);

            this.provider.Save(param);

            param = this.FindOne(param.Id);

            if (isNewObject)
            {
                originalObject = param;
            }

            // 记录问题状态信息
            BugHistoryInfo history = new BugHistoryInfo();

            history.Id    = StringHelper.ToGuid();
            history.BugId = param.Id;

            if (isNewObject)
            {
                // 0.新问题 | 1.确认中 | 2.处理中 | 3.已解决 | 4.已关闭
                history.FromStatus = 0;
                history.ToStatus   = 0;

                BugContext.Instance.BugHistoryService.Save(history);
            }
            else
            {
                history.FromStatus = (param.Properties["FromStatus"] == null) ? 0 : Convert.ToInt32(param.Properties["FromStatus"].ToString());
                history.ToStatus   = param.Status;

                if (history.FromStatus != history.ToStatus)
                {
                    BugContext.Instance.BugHistoryService.Save(history);
                }
            }

            // 发送邮件提醒
            // 新问题状态发送给负责人, 已解决状态发送给提交人
            if (BugConfigurationView.Instance.SendMailAlert == "ON"
                // && isNewObject || (param.ModifiedDate.AddHours(2) > originalObject.ModifiedDate)
                && (param.Status == 0 || param.Status == 3))
            {
                if (isNewObject || (param.Status != originalObject.Status || param.AssignToAccountId != originalObject.AssignToAccountId))
                {
                    string mailTo, mailSubject, mailBody;

                    IMemberInfo member = null;

                    if (param.Status == 3)
                    {
                        // 已解决的问题, 发邮件通知提交人
                        member = MembershipManagement.Instance.MemberService.FindOneByAccountId(param.AccountId);
                    }
                    else
                    {
                        member = MembershipManagement.Instance.MemberService.FindOneByAccountId(param.AssignToAccountId);
                    }

                    if (member != null && !string.IsNullOrEmpty(member.Email))
                    {
                        VelocityContext context = new VelocityContext();

                        // 加载当前实体数据信息
                        context.Put("kernelConfiguration", KernelConfigurationView.Instance);
                        // 加载当前实体数据信息
                        context.Put("param", param);

                        mailTo = member.Email;

                        mailSubject = mailBody = string.Empty;

                        if (param.Status == 0)
                        {
                            // 0.新的问题
                            mailSubject = "您有一个新问题【" + param.Title + "】,等待处理。";

                            mailBody = VelocityManager.Instance.ParseTemplateVirtualPath(context, "/resources/email/Bug/bugzilla-new-mail.vm");
                        }
                        else if (param.Status == 3)
                        {
                            // 3.已解决
                            mailSubject = param.AssignToAccountId + "已将问题【" + param.Title + "】解决,请确认。";

                            mailBody = VelocityManager.Instance.ParseTemplateVirtualPath(context, "/resources/email/Bug/bugzilla-resolved-mail.vm");
                        }

                        EmailClientContext.Instance.Send(mailTo, mailSubject, mailBody, EmailFormat.Html);
                    }
                }
            }

            return(param);
        }
예제 #25
0
        /// <summary>添加记录</summary>
        /// <param name="param">实例<see cref="ApplicationSettingGroupInfo"/>详细信息</param>
        public void Insert(ApplicationSettingGroupInfo param)
        {
            param.Code = DigitalNumberContext.Generate("Table_Application_Feature_Key_Code");

            ibatisMapper.Insert(StringHelper.ToProcedurePrefix(string.Format("{0}_Insert", tableName)), param);
        }
        public void TestSave()
        {
            string taskCode = DigitalNumberContext.Generate("Key_Guid");

            string id = DigitalNumberContext.Generate("Key_Guid");

            if (TasksContext.Instance.TaskWorkService.IsExist(id))
            {
                throw new Exception("任务已存在, 测试失败.");
            }

            // -------------------------------------------------------
            // 新增任务
            // -------------------------------------------------------

            TaskWorkInfo param = new TaskWorkInfo();

            param.Id = id;

            param.ApplicationId = appKey;
            param.TaskCode      = taskCode;
            param.Title         = string.Format("测试任务 - 编号{0}", taskCode);
            param.Content       = DateTime.Now.ToString();
            param.Type          = "1";
            param.Tags          = "测试";
            param.SenderId      = "00000000-0000-0000-0000-000000000001";

            param.AddReceiver("00000000-0000-0000-0000-000000000001");
            param.AddReceiver("00000000-0000-0000-0000-000000000002");
            param.AddReceiver("00000000-0000-0000-0000-000000000003");
            param.AddReceiver("00000000-0000-0000-0000-000000000004");

            param.CreateDate = DateTime.Now;

            param = TasksContext.Instance.TaskWorkService.Save(param);

            // -------------------------------------------------------
            // 修改任务
            // -------------------------------------------------------

            Assert.AreNotEqual(param.Content, "http://localhost/api/test/");

            param.Content = "http://localhost/api/test/";

            param = TasksContext.Instance.TaskWorkService.Save(param);

            param = TasksContext.Instance.TaskWorkService.FindOne(id);

            Assert.AreEqual(param.Content, "http://localhost/api/test/");

            // -------------------------------------------------------
            // 清理
            // -------------------------------------------------------

            if (TasksContext.Instance.TaskWorkService.IsExist(id))
            {
                TasksContext.Instance.TaskWorkService.Delete(id);
            }

            param = TasksContext.Instance.TaskWorkService.FindOne(id);

            Assert.IsNull(param);
        }
예제 #27
0
 /// <summary>创建接收到的数据包</summary>
 /// <param name="applicationId">应用标识</param>
 /// <param name="code">数据包的编码</param>
 /// <param name="path">数据包的物理路径</param>
 /// <param name="doc">数据包的详细数据</param>
 public int CreateReceivedPackage(string applicationId, int code, string path, XmlDocument doc)
 {
     return(CreateReceivedPackage(DigitalNumberContext.Generate("Key_32DigitGuid"), applicationId, code, path, doc));
 }
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #region 函数:Save(XmlDocument doc)
        /// <summary>保存记录</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string Save(XmlDocument doc)
        {
            StandardOrganizationUnitInfo param = new StandardOrganizationUnitInfo();

            param = (StandardOrganizationUnitInfo)AjaxUtil.Deserialize(param, doc);

            string originalName = XmlHelper.Fetch("originalName", doc);

            string originalGlobalName = XmlHelper.Fetch("originalGlobalName", doc);

            if (string.IsNullOrEmpty(param.Name))
            {
                return("{\"message\":{\"returnCode\":1,\"value\":\"名称不能为空。\"}}");
            }

            if (string.IsNullOrEmpty(param.GlobalName))
            {
                return("{\"message\":{\"returnCode\":1,\"value\":\"全局名称不能为空。\"}}");
            }

            if (string.IsNullOrEmpty(param.Id))
            {
                // 新增

                if (this.service.IsExistGlobalName(param.GlobalName))
                {
                    return("{\"message\":{\"returnCode\":1,\"value\":\"此全局名称已存在。\"}}");
                }

                param.Id = DigitalNumberContext.Generate("Key_Guid");
            }
            else
            {
                // 修改

                if (param.GlobalName != originalGlobalName)
                {
                    if (this.service.IsExistGlobalName(param.GlobalName))
                    {
                        return("{\"message\":{\"returnCode\":1,\"value\":\"此全局名称已存在。\"}}");
                    }
                }

                if (param.Name != originalName)
                {
                    IList <IStandardOrganizationUnitInfo> list = Membership.MembershipManagement.Instance.StandardOrganizationUnitService.FindAllByParentId(param.ParentId);

                    foreach (IStandardOrganizationUnitInfo item in list)
                    {
                        if (item.Name == param.Name)
                        {
                            return("{\"message\":{\"returnCode\":1,\"value\":\"此父级组织下面已已存在相同名称标准组织.\"}}");
                        }
                    }
                }
            }

            this.service.Save(param);

            return(MessageObject.Stringify("0", I18n.Strings["msg_save_success"]));
        }
예제 #29
0
        // -------------------------------------------------------
        // 接口地址:/api/connect.auth.authorize.aspx
        // -------------------------------------------------------

        #region 函数:GetAuthorizeCode(XmlDocument doc)
        /// <summary>获取详细信息</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string GetAuthorizeCode(XmlDocument doc)
        {
            StringBuilder outString = new StringBuilder();

            string clientId     = XmlHelper.Fetch("clientId", doc);
            string redirectUri  = XmlHelper.Fetch("redirectUri", doc);
            string responseType = XmlHelper.Fetch("responseType", doc);
            string scope        = XmlHelper.Fetch("scope", doc);

            string style = XmlHelper.Fetch("style", doc);

            string loginName = XmlHelper.Fetch("loginName", doc);
            string password  = XmlHelper.Fetch("password", doc);

            if (string.IsNullOrEmpty(loginName) || string.IsNullOrEmpty(password))
            {
                HttpContentTypeHelper.SetValue("html");

                return(CreateLoginPage(clientId, redirectUri, responseType, scope));
            }
            else
            {
                // 当前用户信息
                IAccountInfo account = MembershipManagement.Instance.AccountService.LoginCheck(loginName, password);

                if (account == null)
                {
                    if (string.IsNullOrEmpty(responseType))
                    {
                        outString.Append("{\"message\":{\"returnCode\":1,\"value\":\"帐号或者密码错误。\"}}");

                        return(outString.ToString());
                    }
                    else
                    {
                        // 输出登录页面
                        // 设置输出的内容类型,默认为 html 格式。
                        HttpContentTypeHelper.SetValue("html");

                        return(CreateLoginPage(clientId, redirectUri, responseType, scope));
                    }
                }
                else
                {
                    // 检验是否有授权码
                    if (!ConnectContext.Instance.ConnectAuthorizationCodeService.IsExist(clientId, account.Id))
                    {
                        ConnectAuthorizationCodeInfo authorizationCode = new ConnectAuthorizationCodeInfo();

                        authorizationCode.Id        = DigitalNumberContext.Generate("Key_32DigitGuid");
                        authorizationCode.AppKey    = clientId;
                        authorizationCode.AccountId = account.Id;

                        authorizationCode.AuthorizationScope = string.IsNullOrEmpty(scope) ? "public" : scope;

                        ConnectContext.Instance.ConnectAuthorizationCodeService.Save(authorizationCode);
                    }

                    // 设置访问令牌
                    ConnectContext.Instance.ConnectAccessTokenService.Write(clientId, account.Id);

                    // 设置会话信息
                    ConnectAccessTokenInfo token = ConnectContext.Instance.ConnectAccessTokenService.FindOneByAccountId(clientId, account.Id);

                    // 记录日志
                    string ip = IPQueryContext.GetClientIP();

                    MembershipManagement.Instance.AccountService.SetIPAndLoginDate(account.Id, ip, DateTime.Now);

                    MembershipManagement.Instance.AccountLogService.Log(account.Id, "connect.auth.authorize", string.Format("【{0}】在 {1} 登录了系统。【IP:{2}】", account.Name, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), ip));

                    string sessionId = token.AccountId + "-" + token.Id;

                    KernelContext.Current.AuthenticationManagement.AddSession(clientId, sessionId, account);

                    HttpAuthenticationCookieSetter.SetUserCookies(sessionId);

                    string code = ConnectContext.Instance.ConnectAuthorizationCodeService.GetAuthorizationCode(clientId, account);

                    // responseType == null 则输出令牌信息
                    if (string.IsNullOrEmpty(responseType))
                    {
                        outString.Append("{\"data\":" + AjaxUtil.Parse <ConnectAccessTokenInfo>(token) + ",");

                        outString.Append("\"message\":{\"returnCode\":0,\"value\":\"验证成功。\"}}");

                        string callback = XmlHelper.Fetch("callback", doc);

                        return(string.IsNullOrEmpty(callback)
                            ? outString.ToString()
                            : callback + "(" + outString.ToString() + ")");
                    }
                    else if (responseType == "code")
                    {
                        HttpContext.Current.Response.Redirect(CombineUrlAndAuthorizationCode(redirectUri, code));
                    }
                    else if (responseType == "token")
                    {
                        HttpContext.Current.Response.Redirect(CombineUrlAndAccessToken(redirectUri, token));
                    }
                    else
                    {
                        HttpContext.Current.Response.Redirect(CombineUrlAndAuthorizationCode(redirectUri, code));
                    }
                }
            }

            outString.Append("{\"message\":{\"returnCode\":0,\"value\":\"执行成功。\"}}");

            return(outString.ToString());
        }
        /// <summary>详细内容界面</summary>
        /// <param name="options"></param>
        /// <returns></returns>
        public ActionResult Detail(string options)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);

            // 所属应用信息
            ApplicationInfo application = ViewBag.application = AppsContext.Instance.ApplicationService[ForumConfiguration.ApplicationName];

            // 管理员身份标记
            bool isAdminToken = ViewBag.isAdminToken = AppsSecurity.IsAdministrator(this.Account, application.ApplicationName);

            JsonData request = JsonMapper.ToObject(options == null ? "{}" : options);

            // 实体数据标识
            string id = !request.Keys.Contains("id") ? string.Empty : request["id"].ToString();

            ForumThreadInfo param = null;

            if (!string.IsNullOrEmpty(id))
            {
                param = ForumContext.Instance.ForumThreadService.FindOne(id);
            }

            // 判断帖子信息是否存在,不存在就提示错误信息
            if (param == null)
            {
                // 提示信息不存在
                ApplicationError.Write(404);
            }

            // 是否是发布状态
            if (param.Status != 1)
            {
                return(Redirect("forum/form?id=" + param.Id));
            }

            // 是否拥有查看帖子的权限
            if (!ForumContext.Instance.ForumCategoryService.IsCategoryAuthority(param.CategoryId) && !isAdminToken)
            {
                // 提示未经授权
                ApplicationError.Write(401);
            }

            // 修改浏览量
            param.Click++;

            ForumContext.Instance.ForumThreadService.SetClick(id);

            // -------------------------------------------------------
            // 数据加载
            // -------------------------------------------------------

            // 设置标题
            ViewBag.Title = string.Format("{0} - {1} - {2}", param.Title, application.ApplicationDisplayName, this.SystemName);

            // 个人信息
            ForumMemberInfo member = ForumContext.Instance.ForumMemberService.FindOneByAccountId(this.Account.Id);

            ViewBag.member = member;

            string categoryAdminName = param.CategoryAdminName;

            if (string.IsNullOrEmpty(categoryAdminName))
            {
                categoryAdminName = "网站管理员";
            }
            else
            {
                categoryAdminName = categoryAdminName.Substring(0, categoryAdminName.Length - 1);
            }

            // 版主名称
            ViewBag.categoryAdminName = categoryAdminName;

            // 是否是版主
            bool categoryAdministrator = false;

            if (isAdminToken == false)
            {
                categoryAdministrator = ForumContext.Instance.ForumCategoryService.IsCategoryAdministrator(param.CategoryId);
            }
            ViewBag.isAdminToken          = isAdminToken;
            ViewBag.categoryAdministrator = categoryAdministrator;
            ViewBag.param   = param;
            ViewBag.nowDate = DateTime.Now;
            // ViewBag.uploadFileWizard= KernelConfigurationView.Instance.UploadFileWizard;

            // 推荐给某人需要url地址
            // string requestUrl = Request.Url.ToString();
            // ViewBag.url = requestUrl.Substring(requestUrl.IndexOf("/forum/"));
            ViewBag.url = Request.Url.PathAndQuery;

            // 回帖编号
            ViewBag.CommentId = DigitalNumberContext.Generate("Key_Guid");

            ViewBag.CreatedDate = param.CreatedDate.ToString("yyyy-MM-dd HH:mm");

            string dayCountStr = AppsContext.Instance.ApplicationSettingService.GetValue(application.Id, string.Empty, "编辑有效天数").Trim().ToLower();

            ViewBag.dayCountStr = dayCountStr;

            /*
             *
             * // 开启企业模式
             * string openEnterprise = AppsContext.Instance.ApplicationSettingService.GetValue(application.Id, string.Empty, "开启企业模式").Trim().ToLower();
             * // 论坛电梯所需参数
             * string showFloor = Request.Params["showFloor"];
             *
             * if (!string.IsNullOrEmpty(showFloor))
             * {
             * int rowIndex = 0;
             * if (openEnterprise == "on" && info.Id != showFloor)
             * {
             *  rowIndex = ForumContext.Instance.ForumCommentService.GetEnterpriseRowIndex(info.Id, showFloor, applicationTag);
             * }
             * else
             * {
             *  rowIndex = ForumContext.Instance.ForumCommentService.GetRowIndex(info.Id, showFloor, applicationTag);
             * }
             * rowIndex = rowIndex == 0 ? 1 : rowIndex;
             * int currentPage = (rowIndex / pageSize) + (rowIndex % pageSize > 0 ? 1 : 0);
             *
             * context.Put("currentPage", currentPage);
             * context.Put("showFloor", showFloor);
             * }
             */

            // 查看页面拷贝
            string appsStr1 = AppsContext.Instance.ApplicationSettingService.GetValue(application.Id, string.Empty, "帖子信息禁止拷贝");
            string appsStr2 = AppsContext.Instance.ApplicationSettingService.GetValue(application.Id, string.Empty, "管理员拷贝帖子信息");

            ViewBag.forbidCopy = appsStr1.Trim().ToLower() == "on" && appsStr2.Trim().ToLower() == "off" ? 1 : 0;

            return(View("/views/main/forum/forum-thread-detail.cshtml"));
        }