コード例 #1
0
        public SIMSResponseData SaveAfterMarketFactoryOptions()
        {
            SIMSResponseData          responseStatus;
            VehicleAfterMarketOptions vehicleFactoryOptions = new VehicleAfterMarketOptions();
            AnswerWrapper             answers = new AnswerWrapper();

            answers.Answers = new List <ReconAnsKBB>();

            foreach (var ans in AppDelegate.appDelegate.afterMarketOptions.aftermarketQuestions.data)
            {
                foreach (var item in ans.questions)
                {
                    ReconAnsKBB answer = new ReconAnsKBB();

                    answer.label        = item.label;
                    answer.questionId   = item.questionId;
                    answer.questionType = item.questionType;
                    answer.tags         = item.tags;
                    if (item.value == "true")
                    {
                        answer.value = "Yes";
                    }
                    else
                    {
                        answer.value = "No";
                    }
                    answer.value = item.value;
                    answer.vehicleConditionCategory     = item.vehicleConditionCategory;
                    answer.vehicleConditionCategoryName = item.vehicleConditionCategoryName;
                    answer.vehicleSectionId             = item.vehicleSectionId;
                    answer.vehicleSectionName           = item.vehicleSectionName;
                    answer.comment = item.comment;
                    answers.Answers.Add(answer);
                }
            }
            vehicleFactoryOptions.Answer           = new AnswerWrapper();
            vehicleFactoryOptions.Answer.Answers   = new List <ReconAnsKBB>();
            vehicleFactoryOptions.Answer.VehicleID = AppDelegate.appDelegate.vehicleID;
            vehicleFactoryOptions.Answer.StoreID   = AppDelegate.appDelegate.storeId;
            vehicleFactoryOptions.Answer.InvtrID   = AppDelegate.appDelegate.invtrId;
            vehicleFactoryOptions.Answer.UserName  = "******";

            vehicleFactoryOptions.Answer.Answers        = answers.Answers;
            vehicleFactoryOptions.vehicleFactoryOptions = new VehicleFactoryOptions();
            vehicleFactoryOptions.vehicleFactoryOptions.AlternateFactoryOptionsLst = new List <AlternateFactoryOptions>();
            if (AppDelegate.appDelegate.afterMarketOptions.sonicAfterMarketList.Count == 0)
            {
                AlternateFactoryOptions vehicleFactory = new AlternateFactoryOptions();
                vehicleFactory.Description = "None";
                vehicleFactory.Is_AfterMarketOption_Select = true;
                vehicleFactory.AfterMarketOptionId         = 1;
                vehicleFactory.OptionKindId = "AMFO";
                AppDelegate.appDelegate.afterMarketOptions.sonicAfterMarketList.Add(vehicleFactory);
            }
            vehicleFactoryOptions.vehicleFactoryOptions.AlternateFactoryOptionsLst = AppDelegate.appDelegate.afterMarketOptions.sonicAfterMarketList;
            vehicleFactoryOptions.vehicleFactoryOptions.VehicleID = AppDelegate.appDelegate.vehicleID;
            vehicleFactoryOptions.vehicleFactoryOptions.StoreID   = AppDelegate.appDelegate.storeId;
            vehicleFactoryOptions.vehicleFactoryOptions.InvtrID   = AppDelegate.appDelegate.invtrId;
            vehicleFactoryOptions.vehicleFactoryOptions.UserName  = "******";
            //Logic to add the Selected Factory options

            responseStatus = ServiceFactory.getWebServiceHandle().SaveAfterMarketFactoryOptions(vehicleFactoryOptions);
            return(responseStatus);
        }
コード例 #2
0
ファイル: Evaluator.cs プロジェクト: radtek/Klokan
        /// <summary>
        /// Uses a native library to load an image and extract answers from it.
        /// Works with both image bytes as well as just an image file path.
        /// This method is unsafe.
        /// </summary>
        /// <param name="sheet">The path to the image containing answers to be extracted as a string or an array of image bytes.</param>
        /// <param name="studentNumberAnswers">This parameter will contain the student number answers extracted from the student number table.</param>
        /// <param name="extractedAnswers">This parameter will contain the answers extracted from the answer tables.</param>
        /// <returns>True if the process has succeeded and false otherwise.</returns>
        bool ExtractAnswers <T>(T sheet, out bool[,,] studentNumberAnswers, out bool[,,] extractedAnswers)
        {
            extractedAnswers     = new bool[3, 8, 5];
            studentNumberAnswers = new bool[1, 5, 10];

            // the first row and the first column of the original tables were removed as they do not contain any answers
            int studentNumberRows    = parameters.StudentTableRows - 1;
            int studentNumberColumns = parameters.StudentTableColumns - 1;
            int answerRows           = parameters.AnswerTableRows - 1;
            int answerColumns        = parameters.AnswerTableColumns - 1;

            NumberWrapper numberWrapper = new NumberWrapper();
            AnswerWrapper answerWrapper = new AnswerWrapper();
            bool          success       = false;

            unsafe
            {
                bool *numberPtr  = numberWrapper.number;
                bool *answersPtr = answerWrapper.answers;
                bool *successPtr = &success;

                string sheetFilename;
                byte[] sheetImageBytes;

                // if the sheet has been passed as a filename
                if ((sheetFilename = sheet as string) != null)
                {
                    NativeAPIWrapper.extract_answers_path_api(sheetFilename, parameters, numberPtr, answersPtr, successPtr);
                }
                // if the sheet has been passed as image bytes
                else if ((sheetImageBytes = sheet as byte[]) != null)
                {
                    // the image is saved in PNG (or another format) so we need to convert it to BMP which the library can read
                    Image sheetImage = ImageHandling.GetBitmap(sheetImageBytes);
                    int   imageRows  = sheetImage.Height;
                    int   imageCols  = sheetImage.Width;

                    byte[] sheetImageBitmapBytes = ImageHandling.GetImageBytes(sheetImage, ImageFormat.Bmp);
                    sheetImage.Dispose();

                    fixed(byte *imageBitmapBytesPtr = sheetImageBitmapBytes)
                    {
                        NativeAPIWrapper.extract_answers_image_api(imageBitmapBytesPtr, imageRows, imageCols, parameters, numberPtr, answersPtr, successPtr);
                    }
                }
                else
                {
                    return(false);
                }

                if (!success)
                {
                    return(false);
                }

                // convert the student number values from a C-style array of answers to a C# multi-dimensional array
                for (int row = 0; row < studentNumberRows; row++)
                {
                    for (int col = 0; col < studentNumberColumns; col++)
                    {
                        if (numberPtr[row * studentNumberColumns + col] == true)
                        {
                            studentNumberAnswers[0, row, col] = true;
                        }
                        else
                        {
                            studentNumberAnswers[0, row, col] = false;
                        }
                    }
                }

                // convert the answer table values from a C-style array to a C# multi-dimensional array
                for (int table = 0; table < parameters.TableCount - 1; table++)
                {
                    for (int row = 0; row < answerRows; row++)
                    {
                        for (int col = 0; col < answerColumns; col++)
                        {
                            if (answersPtr[table * answerRows * answerColumns + row * answerColumns + col] == true)
                            {
                                extractedAnswers[table, row, col] = true;
                            }
                            else
                            {
                                extractedAnswers[table, row, col] = false;
                            }
                        }
                    }
                }
            }

            return(true);
        }