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")); }
/// <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 + "\"}"); }
/// <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); }
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"])); }
/// <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")); }
/// <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); }
/// <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); }
/// <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); } }
/// <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); }
/// <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()); }
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()); }
// ------------------------------------------------------- // 保存 删除 // ------------------------------------------------------- #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); }
/// <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); }
/// <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"])); }
// ------------------------------------------------------- // 接口地址:/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")); }