public Model.ViewModel.TestProcessing GeTestProcessings(int id)
        {
            TestProcessing testProcessing = new TestProcessing();
            Test           test           = context.Tests.Find(id);

            testProcessing.Id       = id;
            testProcessing.TestName = test.TestName;
            testProcessing.TestTime = test.TestTime;
            Exam exam           = test.Exam;
            var  queryQuestions = from Q in context.Questions
                                  join EQ in context.ExamQuestions on Q.Id equals EQ.QuestionId
                                  join E in context.Exams on EQ.ExamId equals E.Id
                                  join T in context.Tests on E.Id equals T.ExamId
                                  where T.Id == id && E.Category.Id == Q.Category.Id
                                  //where E.Category.Id == Q.Category.Id
                                  select Q;


            List <Question> questions  = queryQuestions.ToList();
            List <Question> listRandom = new List <Question>();
            Random          random     = new Random();
            int             b          = questions.Count;

            for (int i = 0; i < test.Exam.QuestionNumber; i++)
            {
                int a = random.Next(1, b);
                b--;
                listRandom.Add(questions[a]);
                questions.Remove(questions[a]);
            }

            testProcessing.Questions = questions;
            return(testProcessing);
        }
Пример #2
0
        /// <summary>
        /// Vlastní zpracování přijaté zprávy dle jejího typu
        /// </summary>
        /// <param name="login"></param>
        /// <param name="password"></param>
        /// <param name="partnerCode"></param>
        /// <param name="messageType"></param>
        /// <param name="data"></param>
        /// <param name="encoding"></param>
        /// <param name="result"></param>
        /// <param name="authToken"></param>
        /// <returns></returns>
        public SubmitDataToProcessingResult DoProcessing(string login, string password, string partnerCode, string messageType, byte[] data, string encoding, SubmitDataToProcessingResult result, AuthService.AuthToken authToken)
        {
            string messageTypeNormalized = messageType.ToUpper().Trim();

            if (messageTypeNormalized.Contains("TEST"))
            {
                messageTypeNormalized = "TEST";
            }

            switch (messageTypeNormalized)
            {
            case "TEST":
                result = TestProcessing.Process(authToken, login, password, partnerCode, messageType, data, encoding);
                break;

            case "RECEPTIONCONFIRMATION":
            case "KITTINGCONFIRMATION":
            case "SHIPMENTCONFIRMATION":
                result = ConfirmationProcessing.Process(authToken, login, password, partnerCode, messageType, data, encoding);
                break;

            default:
                ProjectHelper.CreateErrorResult(ref result, "100", String.Format("Unknown messageType = [{0}]", messageType));
                break;
            }

            return(result);
        }
Пример #3
0
        /// <summary>
        /// Vlastní zpracování přijaté zprávy dle jejího typu
        /// </summary>
        /// <param name="login"></param>
        /// <param name="password"></param>
        /// <param name="partnerCode"></param>
        /// <param name="messageType"></param>
        /// <param name="data"></param>
        /// <param name="encoding"></param>
        /// <param name="result"></param>
        /// <param name="authToken"></param>
        /// <returns></returns>
        private static SubmitDataToProcessingResult ProcessData(string login, string password, string partnerCode, string messageType, byte[] data, string encoding, SubmitDataToProcessingResult result, AuthToken authToken)
        {
            string messageTypeNormalized = messageType.ToUpper().Trim();

            if (messageTypeNormalized.Contains("TEST"))
            {
                messageTypeNormalized = "TEST";
            }

            switch (messageTypeNormalized)
            {
            case "TEST":
                result = TestProcessing.Process(authToken, login, password, partnerCode, messageType, data, encoding);
                break;

            case "GETSERVICESSTATUSES":
                result = ServicesStatusesProcessing.Process(authToken, login, password, partnerCode, messageType);
                break;

            case "RECEPTIONCONFIRMATION":
            case "KITTINGCONFIRMATION":
            case "SHIPMENTCONFIRMATION":
            case "RETURNED":
            case "RETURNEDEQUIPMENT":
            case "RETURNEDITEM":
            case "RETURNEDSHIPMENT":
            case "REFURBISHEDCONFIRMATION":
            case "DELETEMESSAGECONFIRMATION":
            case "CRMORDERCONFIRMATION":
            case "CRMORDERAPPROVAL":
                result = MessageProcessing.Process(authToken, login, password, partnerCode, messageType, data, encoding);
                break;

            default:
                ProjectHelper.CreateErrorResult(Fenix.ApplicationLog.GetMethodName(), ref result, "100", String.Format("Unknown messageType = [{0}]", messageType));
                break;
            }

            return(result);
        }
Пример #4
0
        public SubmitDataToProcessingResult SubmitRepaseData(string login, string password, string messageType, byte[] data, string encoding, int customerId = 0, string customerDescription = null, DateTime?dateOfDelivery = null)
        {
            SubmitDataToProcessingResult result = new SubmitDataToProcessingResult();

            // basic validations
            if (String.IsNullOrEmpty(messageType))
            {
                result.Errors.Add(new Errors {
                    ErrorCode = "-100", ErrorMessage = "Parameter messageType is required!"
                });
            }
            if (data == null)
            {
                result.Errors.Add(new Errors {
                    ErrorCode = "-101", ErrorMessage = "Parameter data is required!"
                });
            }
            if (String.IsNullOrEmpty(encoding))
            {
                result.Errors.Add(new Errors {
                    ErrorCode = "-102", ErrorMessage = "Parameter encoding is required!"
                });
            }
            if (messageType.Contains("TR") || messageType.Contains("TS"))
            {
                if (customerId == 0)
                {
                    result.Errors.Add(new Errors {
                        ErrorCode = "-103", ErrorMessage = "If using TR/TS MSG types, customerId is required!"
                    });
                }
                if (String.IsNullOrEmpty(customerDescription))
                {
                    result.Errors.Add(new Errors {
                        ErrorCode = "-104", ErrorMessage = "If using TR/TS MSG types, customerDescription is required!"
                    });
                }
                if (dateOfDelivery == null)
                {
                    result.Errors.Add(new Errors {
                        ErrorCode = "-105", ErrorMessage = "If using TR/TS MSG types, dateOfDelivery is required!"
                    });
                }
            }

            // authentication
            AuthResult    authRes;
            AuthSvcClient authProxy = new AuthSvcClient();
            AuthToken     authToken = authProxy.Login(login, password, "", out authRes);

            authProxy.Close();

            if (authToken != null && result.Errors.Count == 0)
            {
                // test processing
                result = TestProcessing.Process(authToken, login, password, "", messageType, data, encoding);
            }
            else
            {
                ProjectHelper.CreateErrorResult(Fenix.ApplicationLog.GetMethodName(), ref result, "1", "Invalid login");
            }

            return(result);
        }