//[AllowAnonymous] public async Task <ActionResult <LeaveItemResponse> > ProViewLeaves([FromBody] ViewLeavesRequest request) { var pro_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(pro_id) == Constants.Role.Student) { return(BadRequest(new { message = "ProViewLeaves is not for students." })); } var start = (request.pagenum - 1) * request.pagesize; var end = request.pagenum * request.pagesize; LeaveItemResponse leaves = new LeaveItemResponse(); leaves.pagenum = request.pagenum; leaves.leavelist = new System.Collections.Generic.List <LeaveResponse>(); var leave_list = await LeaveAccessor.ProViewLeaves(pro_id); if (leave_list != null) { for (int i = start; i < end && i < leave_list.total; i++) { LeaveResponse lr = _mapper.Map <LeaveResponse>(leave_list.leaveItem[i]); lr.student_name = await UserAccessor.GetUserName(lr.student_id); lr.work_name = await WorkAccessor.GetWorkName(lr.work_id); leaves.leavelist.Add(lr); } leaves.total = leave_list.total; return(Ok(leaves)); } return(Ok(-1)); // Never arrive there }
public async Task <int> Getresign([FromBody] FindworkRequest request) { //判断request里是否满足前置条件 if (!ModelState.IsValid) { return(-1); } var user_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(user_id) != Role.Student) { return(-2); } TakesEntity entity = new TakesEntity(); entity.work_id = request.work_id; entity.student_id = user_id; MessageEntity temp_entity = new MessageEntity(); var work_name = await WorkAccessor.GetWorkName(request.work_id); var student_name = await UserAccessor.GetUserName(user_id); temp_entity.message_type = 0; temp_entity.content = student_name + "同学辞去" + work_name + "工作。"; temp_entity.sender_id = user_id; temp_entity.receiver_id = await WorkAccessor.GetTeacher(request.work_id); var num = await TakesAccessor.GetRegion(entity); await MessageAccessor.Create(temp_entity, 1); return(num); }
//[AllowAnonymous] public async Task <ActionResult <WorkItemResponse> > ViewHistoryWork([FromBody] ViewWorkRequest request) { var pro_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(pro_id) == Role.Student) { return(BadRequest(new { message = "ViewHistoryWork is not for students. Students please try ViewOwnWork." })); } WorkItemResponse workItem = new WorkItemResponse(); var start = (request.pagenum - 1) * request.pagesize; var end = request.pagenum * request.pagesize; workItem.totalpage = start; workItem.pagenum = request.pagenum; workItem.worklist = new List <WorkResponse>(); var provide_list = await WorkAccessor.FindHistoryWork(pro_id); if (provide_list != null) { for (int i = start; i < end && i < provide_list.total; ++i) { WorkResponse wr = _mapper.Map <WorkResponse>(provide_list.workItem[i]); workItem.worklist.Add(wr); } workItem.totalpage = provide_list.total; return(Ok(workItem)); } return(Ok(-1)); // Never arrive there }
public async Task <ActionResult <WorkResponse> > ChangeWorkInfo([FromBody] UpdateWorkRequest request) { //判断request里是否满足前置条件 if (!ModelState.IsValid) { return(BadRequest()); } var provider_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(provider_id) == Role.Student) { return(BadRequest(new { message = "Student cannot update work" })); } var work = _mapper.Map <WorkEntity>(request); work.teacher_id = provider_id; work.work_id = request.work_id; work.total_time = CalTotalTime(request.start_day, request.end_day, request.start_time, request.end_time, request.week_day); if (work.total_time == 0) { return(Ok("Duration time is 0.")); } await WorkAccessor.Update(work); //return work_id return(Ok(_mapper.Map <WorkResponse>(work))); }
public async Task <ActionResult <MessageResponse> > CreateMessage([FromBody] MessageRequest request) { //判断request里是否满足前置条件 if (!ModelState.IsValid) { return(BadRequest()); } //取得存在cookie的当前账户id var temp_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(temp_id) == Role.Student) { return(BadRequest(new { message = "Student cannot send message" })); } var temp_entity = _mapper.Map <MessageEntity>(request); temp_entity.sender_id = temp_id; var temp = await MessageAccessor.Create(temp_entity, 0); temp_entity.message_id = temp; temp_entity.sender_name = await UserAccessor.GetUserName(temp_entity.sender_id); temp_entity.receiver_name = await UserAccessor.GetUserName(temp_entity.receiver_id); return(Ok(_mapper.Map <MessageResponse>(temp_entity))); }
public async Task <int> CreateAnnounce([FromBody] AnnounceRequest request) { //判断request里是否满足前置条件 if (!ModelState.IsValid) { return(-5); } //取得存在cookie的当前账户id var user_id = Int32.Parse(User.Identity.Name); var role = await UserAccessor.CheckRole(user_id); if (role == Role.Student || role == Role.Provider) { return(-10); } //生成annouce实例 var announcement = _mapper.Map <AnnounceEntity>(request); announcement.user_id = user_id; //新建annouce var num = await AnnounceAccessor.Create(announcement); var s = await AnnounceAccessor.Createsend(num); return(num); }
public async Task <ActionResult <LeaveResponse> > UpdateLeave([FromBody] LeaveRequest request) { var stu_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(stu_id) == Constants.Role.Provider) { return(BadRequest(new { message = "Providers cannot manage leave application." })); } var temp = _mapper.Map <LeaveEntity>(request); /* 检查请假时间是否在工作时间内 */ WorkTimeEntity work_time = await WorkAccessor.GetWorkTime(temp.work_id); DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo(); dtFormat.ShortDatePattern = "yyyy-MM-dd"; DateTime stDay = Convert.ToDateTime(work_time.start_day, dtFormat); DateTime edDay = Convert.ToDateTime(work_time.end_day, dtFormat); DateTime lvDay = Convert.ToDateTime(temp.leave_day); if (lvDay < stDay || lvDay > edDay || Convert.ToInt32(lvDay.DayOfWeek) != work_time.week_day) { return(Ok(-10)); //"The date of leave is not included in the work date." } dtFormat.ShortDatePattern = "HH:mm"; DateTime stTime = Convert.ToDateTime(work_time.start_time, dtFormat); DateTime edTime = Convert.ToDateTime(work_time.end_time, dtFormat); DateTime lvStTime = Convert.ToDateTime(temp.leave_start, dtFormat); DateTime lvEdTime = Convert.ToDateTime(temp.leave_end, dtFormat); if (lvStTime < stTime || lvEdTime > edTime) { return(Ok(-11)); //"The time of leave is not included in the work time." } temp.leave_duration = CalDurationTime(temp.leave_start, temp.leave_end); temp.student_id = stu_id; var leavere = await LeaveAccessor.Find(request.leave_id); if (leavere.status == ApplyStatus.Applying) { var ans = await LeaveAccessor.Update(_mapper.Map <LeaveEntity>(temp)); leavere = await LeaveAccessor.Find(request.leave_id); } return(Ok(_mapper.Map <LeaveResponse>(leavere))); }
//[AllowAnonymous] public async Task <ActionResult <ApplyResponse> > ProManageApp(ManageApplyRequest request) { var pro_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(pro_id) == Role.Student) { return(BadRequest(new { message = "Students cannot manage application." })); } ApplyEntity ae = await ApplyAccessor.Read(request.apply_id); if (ae == null) { return(BadRequest(new { message = "Apply id not found." })); } if (ae.status != Constants.ApplyStatus.Applying) { return(BadRequest(new { message = "Application have been managed." })); } var success_change = await ApplyAccessor.SetApplyStatus(request.apply_id, request.status); if (success_change > 0) { ae.status = request.status; //减少查询 ApplyResponse ar = _mapper.Map <ApplyResponse>(ae); // 未检查id是否存在 ar.student_name = await UserAccessor.GetUserName(ae.student_id); ar.teacher_name = await UserAccessor.GetUserName(ae.teacher_id); ar.work_name = await WorkAccessor.GetWorkName(ae.work_id); if (request.status == Constants.ApplyStatus.Accepted) { // 录用,创建takes var take = new TakesEntity { work_name = ar.work_name, student_id = ae.student_id, work_id = ae.work_id, work_time = await WorkAccessor.GetWorkTotalTime(ae.work_id) }; await TakesAccessor.Create(take); } return(ar); } return(BadRequest(new { message = "Update failed" })); }
public async Task <int> DeleteAnnounceAll([FromBody] AnnounceStatusRequest request) { //取得存在cookie的当前账户id var temp_id = Int32.Parse(User.Identity.Name); var role = await UserAccessor.CheckRole(temp_id); if (role == Role.Student || role == Role.Provider) { return(-10); } var temp_entity = _mapper.Map <AnnounceEntity>(request); var temp = await AnnounceAccessor.DeleteAll(temp_entity); return(temp); }
public async Task <ActionResult <int> > DeleteLeave([FromBody] ManageLeaveRequest request) { var user_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(user_id) == Constants.Role.Provider) { return(BadRequest(new { message = "Providers cannot manage leave application." })); } if (request.status == ApplyStatus.Applying) { var ans = await LeaveAccessor.Delete(request.leave_id); return(Ok(1)); } return(Ok(-1)); }
//[AllowAnonymous] public async Task <ActionResult <ApplyItemResponse> > ProViewApps([FromBody] ViewAppRequest request) { var pro_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(pro_id) == Role.Student) { return(BadRequest(new { message = "ProViewApps is not for students." })); } var apps = new ApplyItemResponse(); //apps.totalpage=0; apps.pagenum = request.pagenum; var start = (request.pagenum - 1) * request.pagesize; var end = request.pagenum * request.pagesize; if (start < 0) { return(BadRequest(new { message = "Page num error" })); } apps.applist = new System.Collections.Generic.List <ApplyResponse>(); var provide_list = await ApplyAccessor.ProViewApps(pro_id); if (provide_list != null) { for (int i = start; i < end && i < provide_list.total; i++) { ApplyResponse ar = _mapper.Map <ApplyResponse>(provide_list.ApplyItem[i]); // 未检查id是否存在 ar.student_name = await UserAccessor.GetUserName(provide_list.ApplyItem[i].student_id); ar.teacher_name = await UserAccessor.GetUserName(provide_list.ApplyItem[i].teacher_id); ar.work_name = await WorkAccessor.GetWorkName(provide_list.ApplyItem[i].work_id); apps.applist.Add(ar); } apps.totalpage = provide_list.total; return(Ok(apps)); } return(Ok(-1)); // Never arrive there }
//[AllowAnonymous] public async Task <ActionResult <LeaveResponse> > ProManageLeave(ManageLeaveRequest request) { var pro_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(pro_id) == Constants.Role.Student) { return(BadRequest(new { message = "Students cannot manage leave application." })); } LeaveEntity le = await LeaveAccessor.Read(request.leave_id); if (le == null) { return(BadRequest(new { message = "Leave id not found." })); } if (le.status != Constants.ApplyStatus.Applying) { return(BadRequest(new { message = "The application have been managed." })); } var success_change = await LeaveAccessor.SetLeaveStatus(request.leave_id, request.status); if (success_change > 0) { le.status = request.status; //减少查询 LeaveResponse lr = _mapper.Map <LeaveResponse>(le); // 未检查id是否存在 lr.student_name = await UserAccessor.GetUserName(le.student_id); //lr.teacher_name = await UserAccessor.GetUserName(le.teacher_id); lr.work_name = await WorkAccessor.GetWorkName(le.work_id); if (request.status == Constants.ApplyStatus.Accepted) { // 录用,更新takes await TakesAccessor.UpdateAbsent(le.student_id, le.work_id, le.leave_duration); } return(lr); } return(BadRequest(new { message = "Update failed" })); }
public async Task <int> Deleteresign([FromBody] FindworkRequest request) { //判断request里是否满足前置条件 if (!ModelState.IsValid) { return(-1); } var user_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(user_id) != Role.Student) { return(-2); } TakesEntity entity = new TakesEntity(); entity.work_id = request.work_id; entity.student_id = user_id; var num = await TakesAccessor.Delete(entity); return(num); }
public async Task <ActionResult <LeaveItemResponse> > ViewLeave([FromBody] ViewLeavesRequest request) { LeaveItemResponse LeaveItem = new LeaveItemResponse(); LeaveItem.total = 0; LeaveItem.pagenum = request.pagenum; LeaveItem.leavelist = new List <LeaveResponse>(); var start = (request.pagenum - 1) * request.pagesize; var end = request.pagenum * request.pagesize - 1; //取得存在cookie的当前账户id var user_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(user_id) == Constants.Role.Provider) { return(BadRequest(new { message = "Providers cannot manage leave application." })); } var temp = await LeaveAccessor.ViewLeave(user_id); if (temp != null) { for (int i = 0; i < temp.total; i++) { LeaveItem.total++; if (i >= start && i <= end) { var list = await LeaveAccessor.Find(temp.leaveItem[i].leave_id); LeaveResponse a = _mapper.Map <LeaveResponse>(list); LeaveItem.leavelist.Add(a); } } return(Ok(LeaveItem)); } return(Ok(-1)); }
public async Task <ActionResult <int> > CreateApply(ApplyRequest request) { var stu_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(stu_id) != Role.Student) { return(BadRequest(new { message = "CreateApply is for students." })); } int check_apply = await ApplyAccessor.CheckApply(stu_id, request.work_id); if (check_apply == 1) { // 已通过改工作的申请 return(Ok(-21)); } else if (check_apply == 2) { // 正在申请该工作 return(Ok(-22)); } var temp = _mapper.Map <ApplyEntity>(request); temp.student_id = stu_id; temp.teacher_id = await WorkAccessor.GetTeacher(temp.work_id); temp.resume_id = await ResumeAccessor.GetResume(temp.student_id); if (temp.resume_id == -1) { return(Ok(-10)); } var ans = await ApplyAccessor.Create(temp); if (ans > 0) { return(Ok(ans)); } return(Ok(-1)); }
public async Task <ActionResult <WorkResponse> > CreateWork([FromBody] ProvideWorkRequest request) { //判断request里是否满足前置条件 if (!ModelState.IsValid) { return(BadRequest()); } var provider_id = Int32.Parse(User.Identity.Name); if (await UserAccessor.CheckRole(provider_id) == Role.Student) { return(BadRequest(new { message = "Student cannot create work" })); } if (request.week_day < 1 || request.week_day > 7) { return(BadRequest(new { message = "week day must between 1 to 7." })); } var work = _mapper.Map <WorkEntity>(request); work.teacher_id = provider_id; //work.work_time = "none"; //tobe delete // 计算工作总小时数total_time work.total_time = CalTotalTime(request.start_day, request.end_day, request.start_time, request.end_time, request.week_day); if (work.total_time == 0) { return(Ok("Duration time is 0.")); } int work_id = await WorkAccessor.Create(work); if (work_id == 0) { return(Ok("Fail to create work.")); } work.work_id = work_id; return(Ok(_mapper.Map <WorkResponse>(work))); }