public void ProcessRequest(HttpContext context) { if (IdentityContext.UserID <= 0) { return; } UsersEntity userEntity = new App.UserApplication().GetUser(IdentityContext.UserID); if (userEntity.Role != RolesEnum.ADMIN && userEntity.Role != RolesEnum.PM && userEntity.Role != RolesEnum.Sales) { return; } context.Response.ContentType = "text/plain"; String checkboxList = context.Request["checkboxList"] + ""; String wid = context.Request["wid"]; int proposaltrackerId; if (!int.TryParse(wid, out proposaltrackerId)) { return; } checkboxList = checkboxList.Trim(); if (string.IsNullOrEmpty(checkboxList)) { return; } ProposalTrackerRelationEntity WRDTO = new ProposalTrackerRelationEntity(); if (checkboxList.EndsWith(",")) { checkboxList = checkboxList.Remove(checkboxList.Length - 1); } string[] tidArray = checkboxList.Split(','); foreach (string item in tidArray) { if (item.Length > 0) { WRDTO.WID = Convert.ToInt32(wid); WRDTO.TID = Convert.ToInt32(item); WRDTO.CreatedBy = IdentityContext.UserID; app.AddProposalTrackerRelation(WRDTO); } } }
protected void btnSave_Click(object sender, EventArgs e) { int tmpState = int.Parse(ddlStatus.SelectedValue); TicketsState selectState = (TicketsState)tmpState; if (rdoAccounting.SelectedValue == "1") { //int wid = int.Parse(ddl_Proposal.SelectedValue); int wid = int.Parse(hid_Proposal.Value); ProposalTrackerRelationEntity model = wrApp.GetProposalTrackerByTid(ticketID); if (model == null || model.ID == 0) { model.CreatedBy = IdentityContext.UserID; model.TID = ticketID; model.WID = wid; wrApp.AddProposalTrackerRelation(model); } else { if (model.TID != ticketID || model.WID != wid) { model.TID = ticketID; model.WID = wid; wrApp.UpdateProposalByProposal(model); } } } else { ProposalTrackerRelationEntity model = wrApp.GetProposalTrackerByTid(ticketID); if (model != null || model.ID > 0) { wrApp.DelProposalTrackerRelationByID(model.ID); } } bool result = false; //指定初次估时者 int estimationUserID = 0; bool isEstimation = rdoEstimationYes.Checked; if (isEstimation && selectState == TicketsState.PM_Reviewed) { if (!int.TryParse(QF(ddlEstUser.UniqueID), out estimationUserID)) { ShowFailMessageToClient("Invalid extimation user."); return; } } //选择accounting string accounting = (rdoAccounting.SelectedValue == "" ? "0" : rdoAccounting.SelectedValue); ticketsEntity.Accounting = (AccountingState)int.Parse(accounting); //指派最终确认估时者 int confirmEstmateUserId = 0; if (selectState == TicketsState.Waiting_Confirm) { if (!int.TryParse(QF(ddlConfirmEstmateUserId.UniqueID), out confirmEstmateUserId)) { ShowFailMessageToClient("Invalid Waiting Confirm user."); return; } } decimal initialtionHours; //初次估时 if (!decimal.TryParse(txtInitialTime.Text, out initialtionHours)) { ShowFailMessageToClient("Invalid extimation hour."); return; } decimal extimationHours; ///最终估时 if (!decimal.TryParse(txtBoxExtimationHours.Text, out extimationHours)) { ShowFailMessageToClient("Invalid extimation hour."); return; } ///没有达到预期要求 if (((TicketsState)int.Parse(ddlStatus.SelectedValue)) == TicketsState.PM_Deny) { HttpFileCollection files = Request.Files; string fileuploadErrMsg = string.Empty; for (int i = 0; i < files.Count; i++) { if (files[i].ContentLength > 0 || txtBoxDenyReason.Text.Trim().Length > 0) { FeedBacksEntity feedbacksEntity = GetFeedbacksEntity(); feedbacksEntity.ID = fbAPP.AddFeedBacks(feedbacksEntity); result = feedbacksEntity.ID > 0; if (!result) { ShowFailMessageToClient(fbAPP.BrokenRuleMessages); return; } if (files[i].ContentLength > 0 && IsValidFile(files[i].FileName)) { if (!InsertFile(files[i], ticketsEntity.ProjectID, false, feedbacksEntity.ID)) { fileuploadErrMsg += files[i].FileName + " Upload failed."; result = false; } } } } } if (selectState == TicketsState.Estimation_Approved) { ticketsEntity.ProprosalName = txtProprosalName.Text; ticketsEntity.WorkPlanName = txtWorkPlanName.Text; ticketsEntity.WorkScope = txtWorkScope.Text; ticketsEntity.Invoice = txtInvoice.Text; } int responsibleUserId; int.TryParse(QF(ddlResponsibleUser.UniqueID), out responsibleUserId); int oldResponsibleUserId = ticketsEntity.ResponsibleUser; ticketsEntity.ResponsibleUser = responsibleUserId; ProjectsEntity projectEntity = projApp.Get(ticketsEntity.ProjectID); int newClientId = -1; if (ddlClient.Visible == true) { if (ddlClient.SelectedValue != "-1") { newClientId = int.Parse(ddlClient.SelectedValue); } } result = ticketApp.PMReview(ticketsEntity, UserInfo, rdoRequestYes.Checked, ddlStatus.SelectedValue, isEstimation, estimationUserID, confirmEstmateUserId, initialtionHours, extimationHours , ticketUsersView.GetSelectedUserList(), txtBoxConvertDescr.Text, txtBoxDenyReason.Text.Trim(), projectEntity.PMID, newClientId); if (ddlClient.Visible == true) { if (ddlClient.SelectedValue != "-1") { ticketApp.UpdateCreateUser(int.Parse(ddlClient.SelectedValue), ticketsEntity.TicketID); } } if (result) { //sent email to responsible user 2017/10/23 if (oldResponsibleUserId != ticketsEntity.ResponsibleUser) { ticketApp.SendEmailToResponsibile(ticketsEntity, UserInfo); } // 更新所有相关人员的WorkingOn状态 ticketApp.UpdateWorkingOnStatus(ticketID, selectState); Redirect(EmptyPopPageUrl, false, true); } else { ShowFailMessageToClient(); } }
/// <summary> /// save : 1:save ; 2:draft ;3 save and new /// </summary> /// <param name="save"></param> private void SaveTicket(int save) { ProjectsEntity projectsEntity = new ProjectApplication().Get(int.Parse(ddlProject.SelectedValue)); TicketsEntity ticketsEntity = GetEntity(save, projectsEntity.ProjectID, projectsEntity.CompanyID); int result = new TicketsApplication().AddTickets(ticketsEntity); if (result > 0) { ticketsEntity.TicketID = result; List <int> userIds; AddDefaultTicketUsers(projectsEntity, ticketsEntity, result, out userIds); AssignTicketUsers(ticketsEntity, userIds); AddIniHistroy(ticketsEntity); if (rdoShareKnowlege.Checked) { ShareEntity shareEntity = new ShareEntity(UserInfo.ID, ObjectFactory.GetInstance <ISystemDateTime>()); int type = 0; shareEntity.Title = ticketsEntity.Title; shareEntity.Note = ticketsEntity.FullDescription; shareEntity.Type = type; shareEntity.TicketID = result; shareEntity.TypeEntity.Title = ticketsEntity.Title; _shareApp.Save(shareEntity); } if (!ticketsEntity.IsInternal) { new SendHandler(() => ex.SendEmailToPMWhenTicketAdd(ticketsEntity, UserInfo)) .BeginInvoke(null, null); } string fileName = hidUploadFile.Value; if (fileName.Trim() != string.Empty) { string[] files = fileName.Split('|'); foreach (string str in files) { InsertFile(str, ticketsEntity.ProjectID, result, ticketsEntity.CompanyID); } } ProposalTrackerRelationEntity model = new ProposalTrackerRelationEntity(); if (hid_Proposal.Value != "") { model.CreatedBy = IdentityContext.UserID; model.TID = ticketsEntity.TicketID; model.WID = int.Parse(this.hid_Proposal.Value); wrApp.AddProposalTrackerRelation(model); } switch (save) { case 1: Redirect("/SunnetTicket/Index.aspx", true); break; case 3: Redirect("/SunnetTicket/New.aspx?project=" + ddlProject.SelectedValue, true); break; } } else { ShowFailMessageToClient(); } }