public ActionResult Role_Permission_Edit() { bool success = false; string roleGuid = Request.Form["RoleGuid"]; string permissions = Request.Form[2].ToString(); string[] permission = permissions.Split(','); using (NHibernate.ITransaction tran = NhSession.BeginTransaction()) { try { Guid RoleGuid = new Guid(roleGuid); Model.D_Role_Model role = NhSession.Get <Model.D_Role_Model>(RoleGuid); ICriteria ic = NhSession.CreateCriteria(typeof(Model.D_Role_Permissions_Model)); ic.Add(Restrictions.Eq("RoleGuid", role)); IList <Model.D_Role_Permissions_Model> rolePermissionList = ic.List <Model.D_Role_Permissions_Model>(); foreach (var item in rolePermissionList) { item.DataStatus = true; item.ModifyDateTime = DateTime.Now; item.ModifyUserGuid = UserView.UserGuid; item.ModifyUserName = UserView.UserName; NhSession.Update(item); } foreach (var item in permission) { Model.D_Role_Permissions_Model rolePermission = rolePermissionList.SingleOrDefault(m => m.Permissions == item); if (rolePermission == null) { rolePermission = new Model.D_Role_Permissions_Model(); rolePermission.CreateDateTime = DateTime.Now; rolePermission.CreateUserGuid = UserView.UserGuid; rolePermission.CreateUserName = UserView.UserName; rolePermission.RoleGuid = role; rolePermission.Permissions = item; } rolePermission.DataStatus = false; rolePermission.ModifyDateTime = DateTime.Now; rolePermission.ModifyUserGuid = UserView.UserGuid; rolePermission.ModifyUserName = UserView.UserName; NhSession.SaveOrUpdate(rolePermission); } tran.Commit(); return(Json(new { success = success, message = "成功" }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { success = success, message = ex.Message })); } finally { if (!tran.WasCommitted && !tran.WasRolledBack) { tran.Rollback(); } } } }
public void AddRelation(IReadonlyRelation <IRelatableEntity, IRelatableEntity> item, AbstractScopedCache repositoryScopedCache) { var sessionIdAsString = GetSessionId().ToString("n"); using (DisposableTimer.TraceDuration <NhSessionHelper>("In AddRelation for session " + sessionIdAsString, "End AddRelation for session " + sessionIdAsString)) { // Get the source and destination items from the Nh session var sourceNode = NhSession.Get <Node>((Guid)item.SourceId.Value); var destNode = NhSession.Get <Node>((Guid)item.DestinationId.Value); // Check the Nh session is already aware of the items if (sourceNode == null || destNode == null) { string extraMessage = string.Empty; if (sourceNode == null) { extraMessage = "Source {0} cannot be found.\n".InvariantFormat(item.SourceId.Value); } if (destNode == null) { extraMessage += "Destination {0} cannot be found.".InvariantFormat(item.DestinationId.Value); } throw new InvalidOperationException( "Before adding a relation between source {0} and destination {1}, you must call AddOrUpdate with those items or they must already exist in the datastore.\n{2}" .InvariantFormat(item.SourceId, item.DestinationId, extraMessage)); } // Try to load an existing relation of the same type between the two var relationType = GetOrCreateNodeRelationType(item.Type.RelationName, repositoryScopedCache); // Grab the existing relation (if exists) using the compound key of start node / end node / relation type var cacheKey = GenerateCacheKeyForRelation(item, relationType); NodeRelation relationToReturn = repositoryScopedCache.GetOrCreateTyped( cacheKey, () => { return(NhSession .QueryOver <NodeRelation>() .Where(x => x.StartNode == sourceNode && x.EndNode == destNode && x.NodeRelationType == relationType) .Cacheable() .SingleOrDefault()); }); // Avoid a duplicate by checking if one already exists if (relationToReturn != null) { // Make sure existing relation has ordinal relationToReturn.Ordinal = item.Ordinal; } else { // Create a new relation relationToReturn = new NodeRelation { StartNode = sourceNode, EndNode = destNode, NodeRelationType = relationType, Ordinal = item.Ordinal }; relationToReturn = NhSession.Merge(relationToReturn) as NodeRelation; } // Ensure metadata correct on existing or new entity CreateAndAddRelationTags(item, relationToReturn); } }
public ActionResult CancelApprove(Guid?Id) { Models.Report_WorkFlow_Log_Model logModel = new Models.Report_WorkFlow_Log_Model(); if (Id.HasValue) { Model.D_Report_Model dataModel = NhSession.Get <Model.D_Report_Model>(Id.Value); logModel.ReportGuid = dataModel.ReportGuid; logModel.ReportStatus = dataModel.ReportStatus; ReportAssignModel model = new ReportAssignModel(); model.LoadBoardSelectList(UserView.Boards); model.LoadReportTypeSelectList(); model.ReportHeader = new ReportHeaderModel(); model.ReportD1 = new ReoprtD1Model(); model.ReportD2 = new ReoprtD2Model(); model.ReportD3 = new ReoprtD3Model(); model.ReportD4 = new ReoprtD4Model(); model.ReportD5 = new ReoprtD5Model(); model.ReportD6 = new ReoprtD6Model(); model.ReportD7 = new ReoprtD7Model(); model.WorkFlow = new ReportWorkFlow(); if (dataModel != null) { #region MyRegion #region 表头 model.ReportAssignGuid = dataModel.ReportGuid; model.ReportTitle = dataModel.ReportTitle; model.ReportType = dataModel.ReportTypeGuid.DicGuid.ToString(); model.BoardGuid = dataModel.ReportBoardGuid.BoardGuid.ToString(); model.ReportOwner = dataModel.ReportOwner; if (!string.IsNullOrEmpty(dataModel.ResponsibleQE)) { Models.D_User user = Newtonsoft.Json.JsonConvert.DeserializeObject <D_User>(dataModel.ResponsibleQE); model.ResponsibleQE = user.UserLoginName; } model.ReportNo = dataModel.ReportNo; model.ReportHeader.Bosch_Material_No = dataModel.Bosch_Material_No; model.ReportHeader.Complaint_TypeMode = dataModel.Complaint_TypeMode; model.ReportHeader.ComplaintDate = dataModel.ComplaintDate.HasValue ? dataModel.ComplaintDate.Value.ToString("dd/MM/yyyy") : ""; model.ReportHeader.Customer = dataModel.Customer; model.ReportHeader.Customer_Material_No = dataModel.Customer_Material_No; model.ReportHeader.Issuer = dataModel.Issuer; model.ReportHeader.Manufacturing_Plant = dataModel.Manufacturing_Plant; model.ReportHeader.Product = dataModel.Product; model.ReportHeader.Serial_No = dataModel.Serial_No; model.ReportHeader.Supplier_Name = dataModel.Supplier_Name; model.ReportHeader.Supplier_No = dataModel.Supplier_No; model.ReportHeader.Warranty_Descision = dataModel.Warranty_Descision; #endregion #region ReportD1 if (!string.IsNullOrEmpty(dataModel.Team_Leader)) { model.ReportD1.Team_Leader = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.D_User>(dataModel.Team_Leader).UserLoginName; } if (!string.IsNullOrEmpty(dataModel.Sponaor)) { model.ReportD1.Sponaor = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.D_User>(dataModel.Sponaor).UserLoginName; } model.ReportD1.Coordinator = dataModel.Coordinator; if (!string.IsNullOrEmpty(dataModel.Team_Member)) { List <Models.D_User> users = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Models.D_User> >(dataModel.Team_Member); foreach (var item in users) { model.ReportD1.Team_Member += item.UserLoginName + ";"; } model.ReportD1.Team_Member = model.ReportD1.Team_Member.TrimEnd(';'); } #endregion #region ReportD2 if (dataModel.ReportD2 != null) { model.ReportD2.Manufacturing_Date = dataModel.ReportD2.Manufacturing_Date.HasValue ? dataModel.ReportD2.Manufacturing_Date.Value.ToString("dd/MM/yyyy") : ""; model.ReportD2.Bosch_Description = dataModel.ReportD2.Bosch_Description; model.ReportD2.Customer_Complaint = dataModel.ReportD2.Customer_Complaint; model.ReportD2.No_of_complaint_parts = dataModel.ReportD2.No_of_complaint_parts; model.ReportD2.End_of_D2_Date = dataModel.ReportD2.End_of_D2_Date.HasValue ? dataModel.ReportD2.End_of_D2_Date.Value.ToString("dd/MM/yyyy") : ""; } #endregion #region ReportD3 //model.ReportD3Json = dataModel.ReportD3Json; if (!string.IsNullOrEmpty(dataModel.ReportD3Json)) { Models.ReoprtD3Model d3Model = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.ReoprtD3Model>(dataModel.ReportD3Json); model.ReportD3 = d3Model; } #endregion #region ReportD4 if (!string.IsNullOrEmpty(dataModel.ReportD4Json)) { Models.ReoprtD4Model d4Model = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.ReoprtD4Model>(dataModel.ReportD4Json); model.ReportD4 = d4Model; } #endregion #region ReportD5 if (!string.IsNullOrEmpty(dataModel.ReportD5Json)) { Models.ReoprtD5Model d5Model = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.ReoprtD5Model>(dataModel.ReportD5Json); model.ReportD5 = d5Model; } #endregion #region ReportD6 if (!string.IsNullOrEmpty(dataModel.ReportD6Json)) { Models.ReoprtD6Model d6Model = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.ReoprtD6Model>(dataModel.ReportD6Json); model.ReportD6 = d6Model; } #endregion #region ReportD7 if (!string.IsNullOrEmpty(dataModel.ReportD7Json)) { Models.ReoprtD7Model d7Model = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.ReoprtD7Model>(dataModel.ReportD7Json); model.ReportD7 = d7Model; } #endregion #region ReportD8 if (!string.IsNullOrEmpty(dataModel.ReportD8Json)) { Models.ReoprtD8Model d8Model = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.ReoprtD8Model>(dataModel.ReportD8Json); model.ReportD8 = d8Model; } foreach (var item in dataModel.ReportD8DataModels) { Models.ReoprtD8Data sign = new ReoprtD8Data(); sign.Number = item.Number; sign.ReportD8Guid = item.ReportD8Guid.ToString(); sign.Signature = item.Signature; sign.SignatureDate = item.SignatureDate.HasValue ? item.SignatureDate.Value.ToString("dd/MM/yyyy") : ""; sign.SponsorName = item.SponsorName; model.ReportD8Sign.Add(sign); } #endregion #endregion if (dataModel.WorkFlow_Models.Count > 0) { model.WorkFlow.EightD_WorkFlowGuid = dataModel.WorkFlow_Models[0].EightD_WorkFlowGuid; if (!string.IsNullOrEmpty(dataModel.WorkFlow_Models[0].Additional_Approver)) { List <Models.D_User> users = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Models.D_User> >(dataModel.WorkFlow_Models[0].Additional_Approver); foreach (var item in users) { model.WorkFlow.Additional_Approver += item.UserLoginName + ";"; } model.WorkFlow.Additional_Approver = model.WorkFlow.Additional_Approver.TrimEnd(';'); } model.WorkFlow.Comments = dataModel.WorkFlow_Models[0].Comments; model.WorkFlow.Sponsor = dataModel.WorkFlow_Models[0].Sponsor; model.WorkFlow.Team_Leader = dataModel.WorkFlow_Models[0].Team_Leader; } model.ReportCancelStatus = dataModel.ReportCancelStatus; model.ReportStatus = dataModel.ReportStatus; if (!string.IsNullOrEmpty(dataModel.CurrentStepUser)) { model.CurrentStepUser = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.D_User>(dataModel.CurrentStepUser); } if (!string.IsNullOrEmpty(dataModel.PreStepUser)) { model.PreStepUser = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.D_User>(dataModel.PreStepUser); } model.PreStepType = dataModel.PreStepType; } logModel.ReportModel = model; } return(View(logModel)); }
public ActionResult CancelApprove(Report_WorkFlow_Log_Model model) { bool success = false; try { string type = Request.Form["type"] == null ? string.Empty : Request.Form["type"].ToString(); Model.D_Report_Model dataModel = NhSession.Get <Model.D_Report_Model>(model.ReportGuid); if (dataModel != null) { if (dataModel.ReportCancelStatus == 0) { return(Json(new { success = success, message = "请先提交本8D Report" }, JsonRequestBehavior.AllowGet)); } if (!string.IsNullOrEmpty(type)) { Model.D_WorkFlowLog_Model logModel = new D_WorkFlowLog_Model(); switch (type) { case "0": if (dataModel.ReportStatus == (int)ReportStatusEnum.TeamLeader) { dataModel.ReportStatus = (int)ReportStatusEnum.New; dataModel.CurrentStepUser = string.Empty; dataModel.PreStepUser = string.Empty; dataModel.PreStepType = string.Empty; logModel.OperateType = "Cancel"; } break; case "1": if (dataModel.ReportCancelStatus == (int)ReportCancelStatusEnum.TeamLeader) { dataModel.ReportCancelStatus = (int)ReportCancelStatusEnum.QE; dataModel.CurrentStepUser = dataModel.ResponsibleQE; } else if (dataModel.ReportCancelStatus == (int)ReportCancelStatusEnum.QE) { dataModel.ReportCancelStatus = (int)ReportCancelStatusEnum.Sponsor; dataModel.CurrentStepUser = dataModel.Sponaor; } else if (dataModel.ReportCancelStatus == (int)ReportCancelStatusEnum.Sponsor) { dataModel.ReportCancelStatus = (int)ReportCancelStatusEnum.Completed; dataModel.CurrentStepUser = string.Empty; } dataModel.PreStepUser = string.Empty; dataModel.PreStepType = string.Empty; logModel.OperateType = "Approve"; break; case "2": dataModel.ReportCancelStatus = (int)ReportCancelStatusEnum.TeamLeader; if (model.ReportCancelStatus == (int)ReportCancelStatusEnum.QE) { dataModel.PreStepType = ((int)ReportCancelStatusEnum.QE).ToString(); dataModel.PreStepUser = dataModel.ResponsibleQE; dataModel.CurrentStepUser = dataModel.Team_Leader; } if (model.ReportCancelStatus == (int)ReportCancelStatusEnum.Sponsor) { dataModel.PreStepType = ((int)ReportCancelStatusEnum.Sponsor).ToString(); dataModel.PreStepUser = dataModel.Sponaor; dataModel.CurrentStepUser = dataModel.Team_Leader; } logModel.OperateType = "Review"; break; case "3": if (dataModel.PreStepType == ((int)ReportCancelStatusEnum.QE).ToString()) { dataModel.ReportCancelStatus = (int)ReportCancelStatusEnum.QE; dataModel.CurrentStepUser = dataModel.PreStepUser; dataModel.PreStepUser = string.Empty; dataModel.PreStepType = string.Empty; logModel.OperateType = "Submit Review To QE"; } if (dataModel.PreStepType == ((int)ReportCancelStatusEnum.Sponsor).ToString()) { dataModel.ReportCancelStatus = (int)ReportCancelStatusEnum.Sponsor; dataModel.CurrentStepUser = dataModel.PreStepUser; dataModel.PreStepUser = string.Empty; dataModel.PreStepType = string.Empty; logModel.OperateType = "Submit Review To Sponsor"; } break; //case "4": // dataModel.ReportCancelStatus = (int)ReportStatusEnum.Sponsor; // logModel.OperateType = "Submit Review To Sponsor"; // break; case "5": dataModel.ReportCancelStatus = (int)ReportCancelStatusEnum.TeamLeader; dataModel.CurrentStepUser = dataModel.Team_Leader; dataModel.PreStepType = ""; dataModel.PreStepUser = ""; logModel.OperateType = "Reject"; break; default: break; } logModel.ReportGuid = dataModel; logModel.Status = ((ReportCancelStatusEnum)dataModel.ReportCancelStatus).ToString(); logModel.CreateUser = UserView.UserLoginName; logModel.CreateUserName = UserView.UserName; logModel.Comments = model.Comment; logModel.CreateDateTime = DateTime.Now; dataModel.WorkFlowLog_Models.Add(logModel); success = new DAL.D_Report_DAL().SaveWorkFlowLog(dataModel, logModel); } } return(Json(new { success = success, message = "成功" }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { success = success, message = ex.Message })); } }
public ActionResult Approve(Report_WorkFlow_Log_Model model) { bool success = false; try { string type = Request.Form["type"] == null ? string.Empty : Request.Form["type"].ToString(); Model.D_Report_Model dataModel = NhSession.Get <Model.D_Report_Model>(model.ReportGuid); if (dataModel != null) { if (dataModel.ReportStatus == 0) { return(Json(new { success = success, message = "请先提交本8D Report" }, JsonRequestBehavior.AllowGet)); } if (!string.IsNullOrEmpty(type)) { Model.D_WorkFlowLog_Model logModel = new D_WorkFlowLog_Model(); switch (type) { case "0": if (dataModel.ReportStatus == (int)ReportStatusEnum.TeamLeader) { dataModel.ReportStatus = (int)ReportStatusEnum.New; dataModel.CurrentStepUser = string.Empty; dataModel.PreStepUser = string.Empty; dataModel.PreStepType = string.Empty; logModel.OperateType = "Cancel"; } break; case "1": if (dataModel.ReportStatus == (int)ReportStatusEnum.TeamLeader) { dataModel.ReportStatus = (int)ReportStatusEnum.Sponsor; dataModel.CurrentStepUser = dataModel.Sponaor; } else if (dataModel.ReportStatus == (int)ReportStatusEnum.Sponsor) { dataModel.ReportStatus = (int)ReportStatusEnum.Approve; List <Models.D_User> list = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Models.D_User> >(dataModel.WorkFlow_Models[0].Additional_Approver); dataModel.CurrentStepUser = Newtonsoft.Json.JsonConvert.SerializeObject(list[0]); } else if (dataModel.ReportStatus == (int)ReportStatusEnum.Approve) { Models.D_User user = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.D_User>(dataModel.CurrentStepUser); List <Models.D_User> list = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Models.D_User> >(dataModel.WorkFlow_Models[0].Additional_Approver); if (user.Serial != list.Count - 1) { dataModel.CurrentStepUser = Newtonsoft.Json.JsonConvert.SerializeObject(list[user.Serial + 1]); dataModel.ReportStatus = (int)ReportStatusEnum.Completed; } else { dataModel.CurrentStepUser = string.Empty; } } dataModel.PreStepUser = string.Empty; dataModel.PreStepType = string.Empty; logModel.OperateType = "Approve"; break; case "2": dataModel.ReportStatus = (int)ReportStatusEnum.TeamLeader; if (model.ReportStatus == (int)ReportStatusEnum.Sponsor) { dataModel.PreStepType = ((int)ReportStatusEnum.Sponsor).ToString(); dataModel.PreStepUser = dataModel.Sponaor; dataModel.CurrentStepUser = dataModel.Team_Leader; //Models.D_User preStepUser = new Models.D_User(); //preStepUser.UserGuid = UserView.UserGuid; //preStepUser.UserLoginName = UserView.UserLoginName; //preStepUser.UserName = UserView.UserName; //dataModel.PreStepUser = Newtonsoft.Json.JsonConvert.SerializeObject(preStepUser); } if (model.ReportStatus == (int)ReportStatusEnum.Approve) { dataModel.PreStepType = ((int)ReportStatusEnum.Approve).ToString(); dataModel.PreStepUser = dataModel.CurrentStepUser; dataModel.CurrentStepUser = dataModel.Team_Leader; //Models.D_User preStepUser = new Models.D_User(); //preStepUser.UserGuid = UserView.UserGuid; //preStepUser.UserLoginName = UserView.UserLoginName; //preStepUser.UserName = UserView.UserName; //dataModel.PreStepUser = Newtonsoft.Json.JsonConvert.SerializeObject(preStepUser); } logModel.OperateType = "Review"; break; case "3": if (dataModel.PreStepType == ((int)ReportStatusEnum.Sponsor).ToString()) { dataModel.ReportStatus = (int)ReportStatusEnum.Sponsor; dataModel.CurrentStepUser = dataModel.PreStepUser; dataModel.PreStepUser = string.Empty; dataModel.PreStepType = string.Empty; logModel.OperateType = "Submit Review To Sponsor"; } if (dataModel.PreStepType == ((int)ReportStatusEnum.Approve).ToString()) { dataModel.ReportStatus = (int)ReportStatusEnum.Approve; dataModel.CurrentStepUser = dataModel.PreStepUser; dataModel.PreStepUser = string.Empty; dataModel.PreStepType = string.Empty; logModel.OperateType = "Submit Review To AA"; } break; //case "4": // dataModel.ReportStatus = (int)ReportStatusEnum.Approve; // logModel.OperateType = "Submit Review To AA"; // break; case "5": dataModel.ReportStatus = (int)ReportStatusEnum.TeamLeader; dataModel.CurrentStepUser = dataModel.Team_Leader; dataModel.PreStepType = ""; dataModel.PreStepUser = ""; logModel.OperateType = "Reject"; break; default: break; } logModel.ReportGuid = dataModel; logModel.Status = ((ReportStatusEnum)dataModel.ReportStatus).ToString(); logModel.CreateUser = UserView.UserLoginName; logModel.CreateUserName = UserView.UserName; logModel.Comments = model.Comment; logModel.CreateDateTime = DateTime.Now; dataModel.WorkFlowLog_Models.Add(logModel); success = new DAL.D_Report_DAL().SaveWorkFlowLog(dataModel, logModel); } } return(Json(new { success = success, message = "成功" }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { success = success, message = ex.Message })); } }