private void BindDataList() { if (list.Count <= 0) { ProjectDetailDTO entity = new ProjectDetailDTO(); entity.ProjectID = 0; entity.Title = "No Project"; list.Add(entity); } this.rptListProjects.DataSource = list; this.rptListProjects.DataBind(); }
/// <summary> /// 下拉框 改变时 的做法 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ddlProject_SelectedIndexChanged(object sender, EventArgs e) { ProjectApplication projectApplication = new ProjectApplication(); List <ProjectDetailDTO> list = projectApplication.GetUserProjectsForCreateObject(UserInfo); ProjectDetailDTO projectDetailDto = list.FirstOrDefault(c => c.Title == ddlProject.SelectedItem.Text); List <UsersEntity> users = new List <UsersEntity>(); if (projectDetailDto != null) { var sunnetUser = projectApplication.GetProjectSunnetUserList(projectDetailDto.ProjectID); users.AddRange(sunnetUser.Select(t => userApp.GetUser(t.UserID)).Where(user => user != null && user.Status.Trim() != "INACTIVE")); list.Remove(projectDetailDto); list.BindDropdown <ProjectDetailDTO>(ddlProject, "Title", "ProjectID", projectDetailDto.Title, projectDetailDto.ProjectID.ToString(), "", false); ddlProject.Attributes.Add("onchange", "fnDisplayUsers();ChangeProject();check();"); UsersEntity myselef = users.FirstOrDefault(c => c.UserID == UserInfo.UserID); if (myselef != null) { users.Remove(myselef); users.Add(new UsersEntity() { FirstName = "System", UserID = -1 }); users.BindDropdown <UsersEntity>(ddlRes, "FirstAndLastName", "UserID", myselef.FirstAndLastName, myselef.UserID.ToString(), "", true); } else { users.Add(new UsersEntity() { FirstName = "System", UserID = -1 }); users.BindDropdown <UsersEntity>(ddlRes, "FirstAndLastName", "UserID"); } } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; try { if (IdentityContext.UserID <= 0) { return; } string isClient = context.Request["isClient"]; string projectIdList = context.Request["checkboxList"]; int uid = int.Parse(context.Request["uid"]); string[] projectIds = projectIdList.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); #region 获取已经分配了的project SearchProjectsRequest request = new SearchProjectsRequest(SearchProjectsType.ListByUserID , false, "projectId", "ASC"); request.UserID = uid; SearchProjectsResponse projectList = new ProjectApplication().SearchProjects(request); for (int i = 0; i < projectIds.Length; i++) { int projectId = 0; int.TryParse(projectIds[i], out projectId); ProjectDetailDTO project = projectList.ResultList.Find(t => t.ProjectID == projectId); if (project != null && project.ProjectID != 0) { context.Response.Write("some of the selected projects have been assigned to this user!"); return; } } #endregion List <BrokenRuleMessage> listmsgs = new List <BrokenRuleMessage>(); foreach (string projectId in projectIds) { ProjectUsersEntity model = ProjectsFactory.CreateProjectUser(IdentityContext.UserID , ObjectFactory.GetInstance <ISystemDateTime>()); model.ProjectID = int.Parse(projectId); model.UserID = uid; model.ISClient = Boolean.Parse(isClient); if (projApp.AssignUserToProject(model) < 0) { RecordMsg(listmsgs, projApp.BrokenRuleMessages); } } if (listmsgs.Count > 0) { context.Response.Write("Assign Fail!"); } else { context.Response.Write("The project has been assigned."); } } catch (Exception ex) { context.Response.Write("Input special symbol is not allowed,please check title and description!"); WebLogAgent.Write(string.Format("Error Ashx:DoAddTicketHandler.ashx Messages:\r\n{0}", ex)); return; } }
public async Task <IHttpActionResult> CreateProject(ProjectPostDTO project_data) { string reg = User.Identity.GetUserId(); Company owner = await db.Companies.Where(d => d.registrationId == reg).SingleOrDefaultAsync(); if (owner == null) { return(StatusCode(HttpStatusCode.NotAcceptable)); } int owner_id = owner.Id; if (owner == null) { return(StatusCode(HttpStatusCode.NotAcceptable)); } Int32 timeStamp; Int32 closing; DateTime dueDate; try { timeStamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; dueDate = DateTime.ParseExact(project_data.due_date, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture).ToUniversalTime(); closing = (Int32)(dueDate.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; } catch (Exception e) { return(StatusCode(HttpStatusCode.ExpectationFailed)); } TimeSpan span = dueDate.Subtract(DateTime.UtcNow); if (span.Days < 1) { return(StatusCode(HttpStatusCode.Forbidden)); } Project project = new Project() { title = project_data.project_title, detailsText = project_data.description, audience = project_data.targeted_level, category = project_data.project_category, companyId = owner_id, dueDate = project_data.due_date, currentDate = timeStamp, closingDate = closing, launchDate = "" + DateTime.UtcNow.Month + "/" + DateTime.UtcNow.Day + "/" + DateTime.UtcNow.Year, other2 = project_data.city, other1 = project_data.remuneration }; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Project posted = db.Projects.Add(project); await db.SaveChangesAsync(); ProjectDetailDTO posted_project = new ProjectDetailDTO() { project_id = posted.Id, project_title = posted.title, project_category = posted.category, project_status = posted.status, description = posted.detailsText, attachment = posted.detailsResourceUrl, launch_date = posted.launchDate, due_date = posted.dueDate, targeted_level = posted.audience, num_views = posted.numViews, num_application = posted.numApplication, num_comments = posted.numComments, city = posted.other2, remuneration = posted.other1, company = new CompanyDTO() { companyID = posted.company.Id, name = posted.company.companyName, company_category = posted.company.category, profile_pic = posted.company.profilePicture, wall_pic = posted.company.wallpaper } }; return(Ok(posted_project)); // return StatusCode(HttpStatusCode.Created); }
public IHttpActionResult EditProject(int id, ProjectDetailDTO project) { if (project == null) { return BadRequest(ModelState); } var updateProject = Db.Projects.SingleOrDefault(u => u.Id == id); if (updateProject == null) { return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Project not found!")); } updateProject.CategoryId = project.CategoryId; updateProject.Description = project.Description; updateProject.Deadline = project.Deadline; updateProject.TargetFund = project.TargetFund; updateProject.ImageLink = project.ImageLink; Db.SaveChanges(); return Ok("Update successfull!"); }
public IHttpActionResult GetProject(int id) { var project = Db.Projects.SingleOrDefault(x => x.Id == id); if (project == null) { return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Project not found!")); } var projectDTO = new ProjectDetailDTO { Id = project.Id, UserId = project.UserId, CategoryId = project.CategoryId, Username = project.User.Username, Category = project.Category.Name, Title = project.Title, ImageLink = project.ImageLink, Status = project.Status.ToString(), Description = project.Description, TargetFund = project.TargetFund, CurrentFund = project.CurrentFund, CreatedDate = project.CreatedDate, Deadline = project.Deadline, }; return Ok(projectDTO); }
public SearchProjectsResponse SearchProjects(SearchProjectsRequest request) { int start = request.CurrentPage * request.PageCount + 1 - request.PageCount; int end = request.CurrentPage * request.PageCount; string strSelCount = " SELECT COUNT(1) FROM Projects p"; string strOrderby = string.Format(" ({0}) {1} ", request.OrderExpression, request.OrderDirection); string strSelAttrs = @" SELECT p.*, (SELECT UserName FROM Users WHERE UserID =P.ModifiedBy) AS ModifiedByUserName, (SELECT UserName FROM Users WHERE UserID =P.CreatedBy) AS CreatedByUserName, (SELECT UserName FROM Users WHERE UserID =P.PMID) AS PMUserName, (SELECT FirstName FROM Users WHERE UserID =P.PMID) AS PMFirstName, (SELECT LastName FROM Users WHERE UserID =P.PMID) AS PMLastName, (select CompanyName from Companys where ComID=p.CompanyID ) as CompanyName FROM Projects p "; string strSelAttrsOrderBy = string.Format(@" Order BY {0} ", strOrderby); string strSelPageModel = string.Format(@"SELECT * FROM( SELECT ROW_NUMBER() OVER( Order BY {0}) as INDEX_ID,p.* , (SELECT UserName FROM Users WHERE UserID =P.ModifiedBy) AS ModifiedByUserName, (SELECT UserName FROM Users WHERE UserID =P.CreatedBy) AS CreatedByUserName, (SELECT UserName FROM Users WHERE UserID =P.PMID) AS PMUserName , (SELECT FirstName FROM Users WHERE UserID =P.PMID) AS PMFirstName, (SELECT LastName FROM Users WHERE UserID =P.PMID) AS PMLastName, (select CompanyName from Companys where ComID=p.CompanyID ) as CompanyName FROM Projects p ", strOrderby); string strWherePageModel = @") NEW_TB WHERE INDEX_ID BETWEEN @Strat AND @End;"; StringBuilder strWhere = new StringBuilder(); strWhere.Append(" WHERE 1=1 "); switch (request.SearchType) { case SearchProjectsType.All: break; case SearchProjectsType.AllExceptAssigned: strWhere.Append(" AND p.[ProjectID] not in (Select ProjectID from ProjectUsers pu where pu.UserID=@UserID)"); strWhere.Append(" AND (p.Title LIKE @Keywords OR p.ProjectCode LIKE @Keywords )"); break; case SearchProjectsType.List: strWhere.Append(" AND (p.Title LIKE @Keywords OR p.ProjectCode LIKE @Keywords )"); if (request.CompanyID != 0) { strWhere.Append(" AND CompanyID=@CompanyID"); } break; case SearchProjectsType.Company: if (request.CompanyID != 0) { strWhere.Append(" AND p.[CompanyID] = @CompanyID"); } strWhere.Append(" AND (p.Title LIKE @Keywords OR p.ProjectCode LIKE @Keywords )"); break; case SearchProjectsType.CompanyExceptAssigned: if (request.CompanyID != 0) { strWhere.Append(" AND p.[CompanyID] = @CompanyID"); } strWhere.Append(" AND (p.Title LIKE @Keywords OR p.ProjectCode LIKE @Keywords )"); strWhere.Append(" AND p.[ProjectID] not in (Select ProjectID from ProjectUsers pu where pu.UserID=@UserID)"); break; case SearchProjectsType.SingleInstance: strWhere.Append(" AND p.[ProjectID] = @ProjectID"); break; case SearchProjectsType.ListByUserID: strWhere.Append(" AND p.[ProjectID] in (Select ProjectID from ProjectUsers pu where pu.UserID=@UserID)"); break; case SearchProjectsType.Ticket: strWhere.Append(" AND p.[ProjectID] IN (SELECT [ProjectID] FROM [Tickets] WHERE [TicketID]=@TicketID)"); break; default: break; } StringBuilder strSql = new StringBuilder(); if (request.IsPageModel) { strSql.Append(strSelCount); strSql.Append(strWhere); strSql.Append(";"); strSql.Append(strSelPageModel); strSql.Append(strWhere); strSql.Append(strWherePageModel); } else { strSql.Append(strSelAttrs); strSql.Append(strWhere); strSql.Append(strSelAttrsOrderBy); strSql.Append(";"); } List <ProjectDetailDTO> list; SearchProjectsResponse response = new SearchProjectsResponse(); Database db = DatabaseFactory.CreateDatabase(); using (DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString())) { try { db.AddInParameter(dbCommand, "UserID", DbType.Int32, request.UserID); db.AddInParameter(dbCommand, "TicketID", DbType.Int32, request.TicketID); db.AddInParameter(dbCommand, "ProjectID", DbType.Int32, request.ProjectID); db.AddInParameter(dbCommand, "CompanyID", DbType.Int32, request.CompanyID); db.AddInParameter(dbCommand, "Keywords", DbType.String, string.Format("%{0}%", request.Keywords.FilterSqlString())); db.AddInParameter(dbCommand, "Strat", DbType.Int32, start); db.AddInParameter(dbCommand, "End", DbType.Int32, end); using (IDataReader dataReader = db.ExecuteReader(dbCommand)) { list = new List <ProjectDetailDTO>(); if (request.IsPageModel) { if (dataReader.Read()) { response.ResultCount = dataReader.GetInt32(0); dataReader.NextResult(); } } while (dataReader.Read()) { list.Add(ProjectDetailDTO.ReaderBind(dataReader)); } response.ResultList = list; } } catch (Exception ex) { WebLogAgent.Write(string.Format("[SQLText:{0},{1}Messages:\r\n{2}]", strSql.ToString(), base.FormatParameters(dbCommand.Parameters), ex.Message)); } } return(response); }