Example #1
0
        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);
        }
Example #2
0
        //找到已拥有工作的work_id
        public static async Task <TakesItemEntity> FindOwnWork(int id)
        {
            TakesItemEntity takes = new TakesItemEntity();

            takes.total     = 0;
            takes.TakesItem = new List <TakesEntity>();
            var query = "SELECT student_id,work_id,absent_num,absent_time,work_name FROM takes JOIN work USING (work_id)WHERE student_id=@id";

            using var connection = DatabaseConnector.Connect();
            await connection.OpenAsync();

            using var command   = connection.CreateCommand();
            command.CommandText = query;
            command.Parameters.AddWithValue("@id", id);

            using var reader = await command.ExecuteReaderAsync();

            while (reader.Read())
            {
                TakesEntity temp = new TakesEntity();

                temp.student_id = reader.GetInt32("student_id");
                temp.work_id    = reader.GetInt32("work_id");
                //temp.work_time=reader.GetDouble("work_time");
                temp.absent_num  = reader.GetInt32("absent_num");
                temp.absent_time = reader.GetDouble("absent_time");
                temp.work_name   = reader.GetString("work_name");
                takes.total++;
                takes.TakesItem.Add(temp);
            }
            return(takes);
        }
Example #3
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" }));
        }
Example #4
0
        ///<summery>
        /// 删除已辞职工作takes
        ///chuckle 9.9
        public static async Task <int> Delete(TakesEntity takes)
        {
            var query = "DELETE FROM takes where student_id=@id AND work_id=@work_id";

            using var connection = DatabaseConnector.Connect();
            await connection.OpenAsync();

            using var command   = connection.CreateCommand();
            command.CommandText = query;

            command.Parameters.AddWithValue("@id", takes.student_id);
            command.Parameters.AddWithValue("@work_id", takes.work_id);
            var row = await command.ExecuteNonQueryAsync();

            if (row > 0)
            {
                return(1);
            }
            return(0);
        }
Example #5
0
        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);
        }
Example #6
0
        ///<summery>
        /// 创建takes,由ApplyController.ProManageApp调用
        /// work_time, absent_num, absent_time 自动设为0
        /// dumei 08.24
        ///</summery>
        ///<summery>
        /// 更新:takes.work_time赋值为work.total_time
        /// dumei 09.08
        ///</summery>
        public static async Task <int> Create(TakesEntity takes)
        {
            var query = @"INSERT INTO takes(student_id,work_id,work_time,absent_num,absent_time)
             VALUES(@student_id,@work_id,@work_time,@absent_num,@absent_time)";

            using var connection = DatabaseConnector.Connect();
            await connection.OpenAsync();

            using var command   = connection.CreateCommand();
            command.CommandText = query;

            command.Parameters.AddWithValue("@student_id", takes.student_id);
            command.Parameters.AddWithValue("@work_id", takes.work_id);
            command.Parameters.AddWithValue("@work_time", takes.work_time);
            command.Parameters.AddWithValue("@absent_num", 0);
            command.Parameters.AddWithValue("@absent_time", 0);

            await command.ExecuteNonQueryAsync();

            return((int)command.LastInsertedId);
        }
Example #7
0
        ///<summery>
        /// 辞职修改takes.status
        ///chuckle 9.9
        public static async Task <int> GetRegion(TakesEntity takes)
        {
            var query = "UPDATE takes SET status=@status WHERE student_id=@id AND work_id=@work_id";

            using var connection = DatabaseConnector.Connect();
            await connection.OpenAsync();

            using var command   = connection.CreateCommand();
            command.CommandText = query;

            command.Parameters.AddWithValue("@status", 1);//辞职状态
            command.Parameters.AddWithValue("@id", takes.student_id);
            command.Parameters.AddWithValue("@work_id", takes.work_id);
            var row = await command.ExecuteNonQueryAsync();

            if (row > 0)
            {
                return(1);
            }
            return(0);
        }