public virtual async Task <ActionServiceResult> GetEntityByID(string id)
        {
            var response = new ActionServiceResult();

            if (string.IsNullOrEmpty(id))
            {
                response.Success = false;
                response.Code    = Code.ValidateEntity;
                response.Message = Resources.ValidateEntity;
            }
            else
            {
                var entity = await _baseEntityService.GetEntityById(id);

                if (entity == null)
                {
                    response.Success = false;
                    response.Code    = Code.NotFound;
                    response.Message = Resources.NotFound;
                }
                else
                {
                    response.Data = entity;
                }
            }

            return(response);
        }
        public async Task <ActionServiceResult> ScoreStatistics(string contestID)
        {
            StringValues userHeader;

            Request.Headers.TryGetValue("UserID", out userHeader);
            var userID = userHeader.FirstOrDefault().ToString();
            var result = new ActionServiceResult();

            if (userID == null || string.IsNullOrEmpty(userID))
            {
                result.Success = false;
                result.Code    = Code.NotFound;
            }
            var user = await _baseUserEntityService.GetEntityById(userID);

            if (user == null)
            {
                return(new ActionServiceResult()
                {
                    Success = false,
                    Message = "User khong ton tai trong he thong",
                    Code = Code.NotFound
                });
            }

            //var roleName = string.IsNullOrEmpty(_role.GetValueOrDefault(user.RoleId.ToString())) ? "student" : _role.GetValueOrDefault(user.RoleId.ToString());
            return(_contestService.ThongKe(userID, contestID, user.RoleId.ToString()));
        }
        public virtual async Task <ActionResult <T> > GetEntityByID(string id)
        {
            var entity = await _baseEntityService.GetEntityById(id);

            if (entity == null)
            {
                return(NotFound());
            }
            return(Ok(entity));
        }
Exemple #4
0
        public async Task <ActionServiceResult> GetByID(string contestID)
        {
            StringValues userHeader;

            Request.Headers.TryGetValue("UserID", out userHeader);
            var userID = userHeader.FirstOrDefault().ToString();
            var result = new ActionServiceResult();

            if (userID == null || string.IsNullOrEmpty(userID))
            {
                result.Success = false;
                result.Code    = ApplicationCore.Enums.Enumration.Code.NotFound;
            }
            else
            {
                var response = await _baseEntityService.GetEntityById(contestID);

                result.Data = response;
            }
            return(result);
        }
        public async Task <ActionServiceResult> GetByID(string examID)
        {
            StringValues userHeader;

            Request.Headers.TryGetValue("UserID", out userHeader);
            var userID = userHeader.FirstOrDefault().ToString();

            var result = new ActionServiceResult();

            if (userID == null || string.IsNullOrEmpty(userID) || examID == null)
            {
                result.Success = false;
                result.Code    = Code.NotFound;
            }
            else
            {
                var response = new ActionServiceResult();
                var exam     = await _baseEntityService.GetEntityById(examID);

                if (exam == null)
                {
                    response.Success = false;
                    response.Code    = Code.NotFound;
                    response.Message = Resources.NotFound;

                    return(response);
                }
                else
                {
                    var contest = await _contestRepo.GetEntityByIdAsync(exam.ContestId);

                    if (DateTime.Compare(Utils.GetNistTime(), contest.FinishTime) >= 0)
                    {
                        if (exam.Status == 0)
                        {
                            //Tinh diem
                            exam.Point  = Utils.TinhDiem(exam.Result, exam.Answer);
                            exam.Status = 1;
                            await _baseEntityService.Update(exam);
                        }
                        exam.IsDoing = null;
                        exam.Result  = null;
                        exam.Status  = null;
                    }
                    else if (DateTime.Compare(Utils.GetNistTime(), contest.StartTime) < 0)
                    {
                        return(null);
                    }
                    else
                    {
                        if (exam.TimeUsing < contest.TimeToDo)
                        {
                            if (exam.Status == 0)
                            {
                                if (exam.IsDoing == 1)
                                {
                                    var now = DateTime.Now;
                                    if ((now - exam.ModifiedDate.Value).TotalSeconds > 10)
                                    {
                                        if (exam.StartAgain == null)
                                        {
                                            if (exam.TimeUsing == 0)
                                            {
                                                exam.TimeUsing   += (exam.ModifiedDate.Value - exam.CreatedDate.Value).TotalSeconds / 60.0;
                                                exam.StartAgain   = now;
                                                exam.ModifiedDate = now;
                                            }
                                        }
                                        else
                                        {
                                            exam.TimeUsing   += (exam.ModifiedDate.Value - exam.StartAgain.Value).TotalSeconds / 60.0;
                                            exam.StartAgain   = now;
                                            exam.ModifiedDate = now;
                                        }

                                        await _baseEntityService.Update(exam);

                                        return(new ActionServiceResult()
                                        {
                                            Success = true, Code = Code.Success, Data = exam
                                        });
                                    }
                                    else
                                    {
                                        return(new ActionServiceResult()
                                        {
                                            Success = true, Code = Code.IsDoing, Data = null
                                        });
                                    }
                                }
                                else
                                {
                                    exam.IsDoing      = 1;
                                    exam.CreatedDate  = Utils.GetNistTime();
                                    exam.ModifiedDate = Utils.GetNistTime();
                                    await _baseEntityService.Update(exam);
                                }
                            }
                            else
                            {
                                exam.IsDoing = null;
                                exam.Result  = null;
                                exam.Status  = null;
                            }
                        }
                        else
                        {
                            //Tinh diem
                            exam.Point  = Utils.TinhDiem(exam.Result, exam.Answer);
                            exam.Status = 1;
                            await _baseEntityService.Update(exam);

                            return(new ActionServiceResult()
                            {
                                Success = true, Code = Code.Success, Data = exam
                            });
                        }
                    }

                    return(new ActionServiceResult()
                    {
                        Success = true, Code = Code.Success, Data = exam
                    });
                }
            }
            return(new ActionServiceResult());
        }
        public async Task <ActionServiceResult> GetTranscript(string contestID)
        {
            StringValues clientIDHeader;

            Request.Headers.TryGetValue("ClientID", out clientIDHeader);
            var clientID = clientIDHeader.FirstOrDefault().ToString();

            var result = new ActionServiceResult();

            Console.WriteLine();
            if (clientID == null || clientID.Trim() != "714b320c-1046-4e37-a3c3-20bc6fcac014" || String.IsNullOrEmpty(clientID))
            {
                return(new ActionServiceResult()
                {
                    Success = false,
                    Code = Code.ValidateEntity,
                    Message = "Đầu vào dữ liệu không hợp lệ"
                });
            }
            else
            {
                try
                {
                    var contest = await _baseContestService.GetEntityById(contestID);


                    if (contest == null)
                    {
                        return(new ActionServiceResult()
                        {
                            Success = false,
                            Code = Code.ValidateEntity,
                            Message = "Không tồn tại kì thi"
                        });
                    }
                    else
                    {
                        var response = await _baseTranscriptRepo.GetEntitites("Proc_GetTranscriptsByContestID", new object[] { contestID });

                        if (response == null)
                        {
                            return new ActionServiceResult()
                                   {
                                       Code    = Code.Exception,
                                       Success = false,
                                       Data    = null
                                   }
                        }
                        ;
                        else
                        {
                            var tmp = _mapper.Map <List <IntegrationTranscript> >(response);

                            var data = new
                            {
                                Contest = new
                                {
                                    ContestName = contest.ContestName,

                                    StartTime = contest.StartTime,

                                    TimeToDo = contest.TimeToDo,

                                    FinishTime = contest.FinishTime
                                },
                                Data = tmp
                            };
                            result.Data = data;
                        }
                    }
                }
                catch (Exception)
                {
                    return(new ActionServiceResult()
                    {
                        Code = Code.Exception,
                        Success = false,
                        Data = null
                    });
                }
            }

            return(result);
        }