Exemple #1
0
        //[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" }));
        }
Exemple #2
0
        //[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
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        public async Task <ActionResult <UserInfoResponse> > GetUserInfo()
        {
            //取得存在cookie的当前账户id
            var u_id = Int32.Parse(User.Identity.Name);
            //查找当前id是否存在user
            var temp = await UserAccessor.Read(u_id);

            if (temp != null)
            {
                var user_res = _mapper.Map <UserInfoResponse>(temp);
                if (temp.user_role == Constants.Role.Student)
                {
                    //is student
                    user_res.nof_apply = await ApplyAccessor.GetNumOfApp(u_id);  //count(apply.apply_id)

                    user_res.income = await SalaryAccessor.GetSumOfSalary(u_id); //sum(salary.num)

                    var waa = await TakesAccessor.GetSumOfWorkAndAbsent(u_id);

                    user_res.nof_absent  = waa.sum_absent_num;  //sum(takes.absent_num)
                    user_res.work_time   = waa.sum_work_time;   //sum(takes.work_time)
                    user_res.absent_time = waa.sum_absent_time; //sume(takes.absent_time)
                }
                else
                {
                    //not student
                    user_res.nof_apply   = 0;
                    user_res.nof_absent  = 0;
                    user_res.work_time   = 0;
                    user_res.income      = 0;
                    user_res.absent_time = 0;
                }

                return(Ok(user_res));
            }

            //未找到user
            return(BadRequest(new { message = "cannot find the user" }));
        }