public IResult Add(ClassLevel classLevel)
        {
            //var isDuplicate = _classLevelDal.Get().IsDuplicate(x => x.ClassLevelName, classLevel.ClassLevelName);
            classLevel.Id = CreateUniqueId.CreateId();

            _classLevelDal.Insert(classLevel);
            return(new SuccessResult(Messages.AddedSuccess));
        }
示例#2
0
        public IResult AddQuestion(Question question, string userName)
        {
            question.Id          = CreateUniqueId.CreateId();
            question.CreatedUser = _userDal.GetByUserName(_userAccessor.GetCurrentUserName());
            question.OnCreated   = DateTime.Now;

            _questionDal.Insert(question);
            return(new SuccessResult(Messages.AddedSuccess));
        }
示例#3
0
        public IDataResult <ExamResult> FinishExam(List <string> questionIds, List <string> userAnswers, UserWithIdDto user)
        {
            int correct   = 0;
            int wrong     = 0;
            int empty     = 0;
            var questions = new List <Question>();

            foreach (var questionId in questionIds)
            {
                var data = GetById(questionId).Data;
                if (data != null)
                {
                    questions.Add(data);
                }
            }

            if (questions.Count != userAnswers.Count)
            {
                return(new ErrorDataResult <ExamResult>(QuestionMessages.UserAnswerCountNotEqualQuestionCount));
            }

            for (int i = 0; i < questions.Count; i++)
            {
                if (userAnswers[i] == null)
                {
                    empty += 1;
                }
                else if (questions[i].CorrectAnswer.ToString().ToLower() == userAnswers[i].ToLower())
                {
                    correct += 1;
                }
                else
                {
                    wrong += 1;
                }
            }

            _noteService.AddNote(new Note
            {
                Id         = CreateUniqueId.CreateId(),
                CategoryId = questions[0].CategoryId,
                Correct    = correct,
                Wrong      = wrong,
                Empty      = empty,
                UserId     = user.Id
            });

            return(new SuccessDataResult <ExamResult>(new ExamResult
            {
                Correct = correct,
                Wrong = wrong,
                Empty = empty
            }));
        }
示例#4
0
        public IResult Add(Category category)
        {
            IResult result = BusinessRules.Run(CheckIfCategoryExists(category.CategoryName, category.ClassLevelId));

            if (result != null)
            {
                return(result);
            }

            category.Id          = CreateUniqueId.CreateId();
            category.CreatedUser = _userDal.GetByUserName(_userAccessor.GetCurrentUserName());
            category.OnCreated   = DateTime.Now;

            _categoryDal.Insert(category);
            return(new SuccessResult(Messages.AddedSuccess));
        }
        public JsonBusResponse PublishAndWaitForResponse <TNeed, TSolution>(Message <TNeed, TSolution> message, ResponseStyle responseStyle = ResponseStyle.WholeSolution,
                                                                            Func <string, bool> solutionMatchFunction = null)
        {
            Guid requestId = CreateUniqueId.Invoke();

            if (message.Uuid == Guid.Empty)
            {
                message.Uuid = requestId;
            }

            message.LastModifiedBy   = ServiceInfo.Name;
            message.LastModifiedTime = dateTimeProvider.UtcNow;

            if (!Methods.Contains(message.Method))
            {
                Methods.Add(message.Method);
                backplane.Send(new RequestMethodRegistration {
                    Method = message.Method
                });
            }

            logger.Trace($"{nameof(RequestStore)}.{nameof(PublishAndWaitForTypedResponse)}",
                         new LogItem("Event", "Preparing to publish message"),
                         new LogItem("MessageId", message.Uuid.ToString),
                         new LogItem("MessageMethod", message.Method));

            var response = new JsonBusResponse();

            using (DataWaitHandle dataWaitHandle = new DataWaitHandle(false, EventResetMode.AutoReset, solutionMatchFunction))
            {
                requestMatcher.RegisterWaitHandle(message.Uuid, dataWaitHandle, responseStyle);

                queueWrapper.PublishMessage(message, message.Uuid);

                if (dataWaitHandle.WaitOne(busTimeoutMilliseconds))
                {
                    List <ResponseError> errors = null;
                    if (dataWaitHandle.Errors != null)
                    {
                        errors = JsonConvert.DeserializeObject <List <ResponseError> >(dataWaitHandle.Errors);
                    }

                    logger.Trace($"{nameof(RequestStore)}.{nameof(PublishAndWaitForTypedResponse)}",
                                 new LogItem("Event", "Published message and received response"),
                                 new LogItem("MessageId", message.Uuid.ToString),
                                 new LogItem("MessageMethod", message.Method));

                    if (errors != null && errors.Any())
                    {
                        response.Errors = dataWaitHandle.Errors;
                    }

                    response.Solution = dataWaitHandle.Solution;
                }

                if (string.IsNullOrEmpty(response.Errors) && string.IsNullOrEmpty(response.Solution))
                {
                    logger.Trace($"{nameof(RequestStore)}.{nameof(PublishAndWaitForTypedResponse)}",
                                 new LogItem("Event", "Published message and received no response"),
                                 new LogItem("MessageId", message.Uuid.ToString),
                                 new LogItem("MessageMethod", message.Method));
                }

                return(response);
            }
        }