示例#1
0
        public ApiResponse AddServiceCode(ServiceCodeDTO serviceCodeDTO)
        {
            ApiResponse response = new ApiResponse();

            long serviceCodeId = inventoryManager.ServiceCodeIsNotUnique(serviceCodeDTO.ServiceCode);

            if (serviceCodeId > 0)
            {
                response.AddMessage("ServiceCode", new List <string>()
                {
                    "This service code is in use. Please choose another."
                });
            }
            else if (inventoryManager.GeneralLedgerIsNotUnique(serviceCodeDTO.GeneralLedger))
            {
                response.AddMessage("GeneralLedger", new List <string>()
                {
                    "This General Ledger value is in use. Please choose another."
                });
            }
            else
            {
                response.Id = inventoryManager.AddServiceCode(serviceCodeDTO);
                if (response.Id == 0)
                {
                    response.AddMessage("DbError", new List <string>()
                    {
                        "There was an error saving this service code."
                    });
                }
            }

            return(response);
        }
示例#2
0
        public async Task <ApiResponse <List <Option> > > GetOptionsByQuestion(Guid questionId, Guid userExamId)
        {
            var result = new ApiResponse <List <Option> >();

            try
            {
                var response = dbContext.Options.
                               Where(o => o.Question.Id == questionId).ToList()
                               .Select(e => { e.IsCorrect = false; return(e); }).ToList();

                var optionSelected = dbContext.UserAnswers
                                     .Where(e => (e.Option.QuestionId == questionId && e.UserExamId == userExamId));

                if (optionSelected.Count() == 0)
                {
                    result.Data = response;
                    result.AddSuccess();
                }
                else
                {
                    result.Data = null;
                    result.AddMessage("Question answered already");
                }

                return(await Task.FromResult(result));
            }
            catch (Exception ex)
            {
                result.AddError(ex);
                return(await Task.FromResult(result));
            }
        }
示例#3
0
        public async Task <ApiResponse <bool> > UpdateUserExamStatus(Guid userExamId)
        {
            var result = new ApiResponse <bool>();

            try
            {
                var userExam = await dbContext.UserExams.FirstOrDefaultAsync(e => e.Id == userExamId);

                if (userExam != null)
                {
                    userExam.Status = Models.DB.Exams.enums.Status.Completed;
                    await dbContext.SaveChangesAsync();

                    result.Data = true;
                    result.AddSuccess();
                }
                else
                {
                    result.Data = false;
                    result.AddMessage("Exam not enrolled yet");
                }

                return(await Task.FromResult(result));
            }
            catch (Exception ex)
            {
                result.AddError(ex);
                return(await Task.FromResult(result));
            }
        }
示例#4
0
        public static ApiResponse FromCommand(CommandResponse response)
        {
            var apiResponse = new ApiResponse(response.Success);

            apiResponse.AddExtra(response.ExtraData);
            apiResponse.AddMessage(response.Message);
            return(apiResponse);
        }
示例#5
0
        public async Task <ApiResponse <bool> > EnrollUserExam(UserExamViewModel userExam)
        {
            var result = new ApiResponse <bool>();

            try
            {
                var oUserExam = await dbContext.UserExams
                                .FirstOrDefaultAsync(e => (e.ExamId == userExam.ExamId && e.ApplicationUserId == this.CurrentUser().Id)) as UserExam;

                if (oUserExam == null)
                {
                    var userExamd = new UserExam
                    {
                        ApplicationUserId = this.CurrentUser().Id,
                        ExamId            = userExam.ExamId,
                        Status            = userExam.Status,
                        StartDate         = userExam.StartDate,
                        EndDate           = userExam.EndDate,
                        Score             = userExam.Score
                    };
                    await dbContext.UserExams.AddAsync(userExamd);

                    await dbContext.SaveChangesAsync();

                    result.Data = true;
                    result.AddSuccess();
                    result.AddMessage("You are Enrolled Succesfully");
                    return(await Task.FromResult(result));
                }
                else
                {
                    result.Data = false;
                    result.AddMessage("You have already been enrolled successfully");
                    return(await Task.FromResult(result));
                }
            }
            catch (Exception ex)
            {
                result.AddError(ex);
                return(await Task.FromResult(result));
            }
        }
示例#6
0
        public async Task <ApiResponse <bool> > SubmitUserAnswer(List <UserAnswerViewModel> userAnswer)
        {
            var result = new ApiResponse <bool>();

            try
            {
                var proceed = false;
                for (var i = 0; i < userAnswer.Count; i++)
                {
                    var currentUseranswer = await dbContext.UserAnswers
                                            .FirstOrDefaultAsync(a => (a.OptionId == userAnswer[0].OptionId &&
                                                                       a.UserExamId == userAnswer[0].UserExamId));


                    if (currentUseranswer == null)
                    {
                        var checkAnswer = await dbContext.Options.FindAsync(userAnswer[0].OptionId);

                        if (checkAnswer.IsCorrect)
                        {
                            var checkUserExam = await dbContext.UserExams.FirstOrDefaultAsync(ue => ue.Id == userAnswer[0].UserExamId);

                            checkUserExam.Score = checkUserExam.Score + checkAnswer.Score;
                        }

                        var oUserAnswer = new UserAnswer
                        {
                            OptionId   = userAnswer[i].OptionId,
                            UserExamId = userAnswer[i].UserExamId
                        };
                        await dbContext.AddAsync(oUserAnswer);

                        result.AddSuccess();
                        result.Data = true;
                        proceed     = true;
                    }
                    else
                    {
                        result.Data = false;
                        result.AddMessage("Answer Already Exist");
                    }
                }
                if (proceed)
                {
                    await dbContext.SaveChangesAsync();
                }
                return(await Task.FromResult(result));
            }
            catch (Exception ex)
            {
                result.AddError(ex);
                return(await Task.FromResult(result));
            }
        }
示例#7
0
        public async Task <ApiResponse <bool> > Delete(Guid id)
        {
            var response = new ApiResponse <bool>();

            try
            {
                var question = await dbContext.Questions.FindAsync(id);

                var options = await dbContext.Options.Where(q => q.QuestionId == id).ToListAsync();

                foreach (var i in options)
                {
                    dbContext.Options.Remove(i);
                }
                await dbContext.SaveChangesAsync();


                if (question == null)
                {
                    response.Data = false;
                    response.AddMessage("Questions not found");
                    return(await Task.FromResult(response));
                }

                dbContext.Questions.Remove(question);
                await dbContext.SaveChangesAsync();



                response.Data = true;
                response.AddSuccess();
                return(await Task.FromResult(response));
            }
            catch (Exception ex)
            {
                response.AddError(ex);
                return(await Task.FromResult(response));
            }
        }
示例#8
0
        public async Task <ApiResponse <bool> > DeleteUserExam(Guid id, Guid examId)
        {
            var result = new ApiResponse <bool>();

            try
            {
                var entity = await dbContext.UserExams.FirstOrDefaultAsync(a => (a.Id == id && a.ExamId == examId && a.ApplicationUserId == this.CurrentUser().Id));

                dbContext.UserExams.Remove(entity);
                await dbContext.SaveChangesAsync();

                result.Data = true;
                result.AddSuccess();
                result.AddMessage("You left the exam..");
                return(await Task.FromResult(result));
            }
            catch (Exception ex)
            {
                result.AddError(ex);
                return(await Task.FromResult(result));
            }
        }
示例#9
0
        public async Task <ApiResponse <UserExamViewModel> > GetUserExamById(Guid id, Guid examId)
        {
            var result = new ApiResponse <UserExamViewModel>();

            try
            {
                var entity = await dbContext.UserExams
                             .Select(u => new UserExamViewModel
                {
                    ExamId            = u.ExamId,
                    ApplicationUserId = u.ApplicationUserId,
                    EndDate           = u.EndDate,
                    StartDate         = u.StartDate,
                    Score             = u.Score,
                    Status            = u.Status,
                    Id = u.Id
                })
                             .FirstOrDefaultAsync(a => (a.Id == id && a.ExamId == examId && a.ApplicationUserId == this.CurrentUser().Id));

                if (entity != null)
                {
                    result.Data = entity;
                    result.AddSuccess();
                    return(await Task.FromResult(result));
                }
                else
                {
                    result.Data = entity;
                    result.AddMessage("No Exam Available");
                    return(await Task.FromResult(result));
                }
            }
            catch (Exception ex)
            {
                result.AddError(ex);
                return(await Task.FromResult(result));
            }
        }