Beispiel #1
0
        private ExamPaperViewModel assignGradesAndSubjectsListToModel(ExamPaperViewModel examPaperViewModel)
        {
            var grades          = HttpDataProvider.GetData <List <dynamic> >("grade/all");
            var gradesListItems = new List <SelectListItem>();

            grades.ForEach(delegate(dynamic grade)
            {
                gradesListItems.Add(new SelectListItem {
                    Value = grade.Id, Text = grade.GradeName
                });
            });

            examPaperViewModel.Grades = gradesListItems;

            var subjects          = HttpDataProvider.GetData <List <dynamic> >("subject/all");
            var subjectsListItems = new List <SelectListItem>();

            subjects.ForEach(delegate(dynamic subject)
            {
                subjectsListItems.Add(new SelectListItem {
                    Value = subject.Id, Text = subject.SubjectName
                });
            });

            examPaperViewModel.Subjects = subjectsListItems;

            return(examPaperViewModel);
        }
Beispiel #2
0
        public async Task <ActionResult> UploadAsync(CancellationToken cancellationToken, ExamPaperViewModel model)
        {
            var result = await new AuthorizationCodeMvcApp(this, new AppFlowMetadata()).AuthorizeAsync(cancellationToken);

            if (result.Credential != null)
            {
                if ((TempData["isInitialPost"] != null) && (bool)TempData["isInitialPost"])
                {
                    model = (ExamPaperViewModel)TempData["examViewModel"];
                    TempData.Remove("examViewModel");
                    TempData.Remove("isInitialPost");
                }

                var service = new DriveService(new BaseClientService.Initializer
                {
                    HttpClientInitializer = result.Credential,
                    ApplicationName       = ApplicationName
                });

                var file = new File()
                {
                    Title    = model.UploadFile.FileName,
                    MimeType = model.UploadFile.ContentType
                };

                try
                {
                    FilesResource.InsertMediaUpload uploadRequest = service.Files.Insert(file, model.UploadFile.InputStream, file.MimeType);
                    uploadRequest.ChunkSize = 256 * 1024;
                    var awList = await uploadRequest.UploadAsync();

                    var uploadResponse = uploadRequest.ResponseBody;

                    var examDetails = new {
                        PaperName   = model.PaperName,
                        SubjectId   = model.SelectedSubject,
                        GradeId     = model.SelectedGrade,
                        Year        = model.Year.ToString(),
                        HasAnswers  = model.HasAnswers,
                        FileStoreId = uploadResponse.Id
                    };

                    var createFileResponse = HttpDataProvider.PostAndReturn <dynamic, dynamic>("exam/create", examDetails);
                }
                catch (Exception ex)
                {
                    // Todo: Log errors and show friendly error
                }

                model = assignGradesAndSubjectsListToModel(model);
                return(View("Index", model));
            }
            else
            {
                TempData.Add("examViewModel", model);
                TempData.Add("isInitialPost", true);
                return(new RedirectResult(result.RedirectUri));
            }
        }
Beispiel #3
0
        private static void Main(CommandLineArguments args)
        {
            var cache = new LocalPackageCache(Path.GetFullPath(ConfigurationManager.AppSettings["NuGetPackagesPath"]));
            var httpDataProvider = new HttpDataProvider(new DirectoryInfo("HttpCache"));

            var sources = new IFeatureTableSource[] {
                new GeneralInfoTableSource(
                    cache,
                    httpDataProvider,
                    new LicenseResolver(httpDataProvider, new Uri(ConfigurationManager.AppSettings["LicensesJsonUrl"]))
                ),
                new NetFxSupportTableSource(cache),
                new FeatureTestTableSource(new FeatureTestRunner())
            };
            var outputs = new IResultOutput[] {
                new HtmlOutput(new DirectoryInfo(ConfigurationManager.AppSettings["HtmlTemplatesPath"])),
                new JsonOutput()
            };

            var outputDirectory = new DirectoryInfo(args.OutputPath ?? ConfigurationManager.AppSettings["OutputPath"]);
            if (!outputDirectory.Exists)
                outputDirectory.Create();

            var assemblyPaths = GetAssemblyPaths();
            var results = assemblyPaths.Select(path => {
                ConsoleEx.Write(ConsoleColor.White, "Running " + Path.GetFileName(path) + ":");
                var assembly = Assembly.LoadFrom(path);

                var tables = sources.SelectMany(s => s.GetTables(assembly)).ToArray();
                CalculateTotal(tables.Single(t => t.Key == MetadataKeys.GeneralInfoTable), tables);

                var outputNamePrefix = assembly.GetName().Name.SubstringAfter(AssemblyNamePrefix);
                var result = new ResultForAssembly(assembly, tables, outputNamePrefix);

                ConsoleEx.WriteLine(ConsoleColor.Green, " OK");
                return result;
            }).ToArray();

            Console.WriteLine();
            ConsoleEx.WriteLine(ConsoleColor.White, "Creating outputs:");
            foreach (var output in outputs) {
                output.Write(outputDirectory, results, args.WatchTemplates);
            }

            if (args.WatchTemplates) {
                Console.WriteLine();
                ConsoleEx.WriteLine(ConsoleColor.White, "Auto-updating outputs if templates change.");
                ConsoleEx.WriteLine(ConsoleColor.White, "Press [Enter] to stop.");
                Console.ReadLine();
            }

            foreach (var output in outputs) {
                output.Dispose();
            }

            Console.WriteLine();
            ConsoleEx.WriteLine(ConsoleColor.Green, "Completed.");
        }
Beispiel #4
0
        // GET: Selection
        public async Task <ActionResult> Index(CancellationToken cancellationToken)
        {
            var result = await new AuthorizationCodeMvcApp(this, new AppFlowMetadata()).AuthorizeAsync(cancellationToken);

            if (result.Credential != null)
            {
                var service = new DriveService(new BaseClientService.Initializer
                {
                    HttpClientInitializer = result.Credential,
                    ApplicationName       = ApplicationName
                });

                try
                {
                    var selectionViewModel = new SelectionViewModel();
                    var examLinksList      = new List <ExamLink>();

                    var request          = new BatchRequest(service);
                    var selectedPaperIds = string.Join(",", ((List <int>)Session["SelectedIds"]).ToArray());
                    var examPapers       = HttpDataProvider.GetData <List <dynamic> >(string.Format("exam/forids?examIds={0}", selectedPaperIds));

                    examPapers.ForEach(delegate(dynamic examPaper) {
                        string fileId = examPaper.FileStoreId;

                        request.Queue <Google.Apis.Drive.v2.Data.File>(service.Files.Get(fileId),
                                                                       (file, error, x, message) =>
                        {
                            if (error != null)
                            {
                                throw new Exception("error");
                            }
                            else
                            {
                                examLinksList.Add(new ExamLink {
                                    PaperName = examPaper.PaperName, PaperUrl = file.WebContentLink, FileId = fileId
                                });
                            }
                        });
                    });

                    await request.ExecuteAsync();

                    selectionViewModel.ExamLinks = examLinksList;
                    Session.Remove("SelectedIds");
                    return(View(selectionViewModel));
                }
                catch (Exception ex)
                {
                    // Todo: Log errors and show friendly error
                    throw ex;
                }
            }
            else
            {
                return(new RedirectResult(result.RedirectUri));
            }
        }
        public override void InitializeTest()
        {
            base.InitializeTest();
            var urlBuilder = new UrlBuilder(new UnixClock());

            DataProvider = new HttpDataProvider(urlBuilder);

            //WebRequest.RegisterPrefix("test", new TestWebRequestCreate());
            //TestWebRequestCreate.CreateTestRequest("lol?");
        }
        static async Task Test()
        {
            var dp  = new configDataSet();
            var cdp = new companyDataSet();

            //var nr = dp.Aziende.NewAziendeRow();
            //nr.Nome = "az1";
            //nr.Id = 1;
            //dp.Aziende.AddAziendeRow(nr);
            //nr.AcceptChanges();
            //nr.Delete();
            //nr.SetModified();

            //var nz = cdp.Nazioni.NewNazioniRow();
            //nz.Nome = "italia2";
            //nz.Id = 100;
            //cdp.Nazioni.AddNazioniRow(nz);

            //var nr = dp.Nazioni.NewNazioniRow();
            //nr.Nome = "italia";
            //nr.Id = 1;
            //dp.Nazioni.AddNazioniRow(nr);
            //nr.AcceptChanges();

            //dp.Aziende.PrimaryKey = new[] {dp.Aziende.IdColumn};
            //var countries = FromAmica2.ToList<Country>(dp.Nazioni);
            //var country = FromAmica.To<Country>(nr);
            var hdp = new HttpDataProvider(new DataProvider("C:\\Amica 10\\Database"), "nicola", "nicola")
            {
                LocalCompanyId = 1
            };
            //hdp.DataProvider.LoadConfigData();

            //try
            //{

            await hdp.GetAsync(cdp);

            //await hdp.UpdateAsync(cdp);
            //await hdp.GetAsync((DataSet)cdp);
            //await hdp.UpateAsync(dp);
            //await hdp.UpdateNazioniAsync(nr);
            //await hdp.UpdateAziendeAsync(nr);
            //await hdp.GetAziendeAsync(dp);
            //await hdp.GetNazioniAsync(dp);
            //}
            //catch (Exception e)
            //{
            //throw e;
            //}

            //Console.WriteLine(hdp.HttpResponse.StatusCode);
        }
Beispiel #7
0
        private static List <SelectListItem> getGradesList()
        {
            var grades          = HttpDataProvider.GetData <List <dynamic> >("grade/all");
            var gradesListItems = new List <SelectListItem>();

            grades.ForEach(delegate(dynamic grade)
            {
                gradesListItems.Add(new SelectListItem {
                    Value = grade.Id, Text = grade.GradeName
                });
            });
            return(gradesListItems);
        }
Beispiel #8
0
        public ActionResult Subject(SubjectViewModel model)
        {
            try
            {
                var subjectDetails    = new { SubjectName = model.SubjectName };
                var saveGradeResponse = HttpDataProvider.PostAndReturn <dynamic, dynamic>("subject/create", subjectDetails);
            }
            catch (Exception ex)
            {
            }

            return(View(model));
        }
Beispiel #9
0
        public static void Main(string[] args)
        {
            var uri          = new Uri("https://httpbin.org/delay/5");
            var dataProvider = new HttpDataProvider();
            var logger       = new ConsoleLogger();
            var dataSource   = new DataSource("testDevice.testData", logger, dataProvider);
            var dataPoller   = new HttpDataPoller(uri, 10000, "testDevice.testData", new HttpClientImpl(), dataProvider, logger);

            while (true)
            {
                Thread.Sleep(500);
            }
        }
Beispiel #10
0
        public ActionResult Grade(GradeViewModel model)
        {
            try
            {
                var gradeDetails      = new { GradeName = model.GradeName };
                var saveGradeResponse = HttpDataProvider.PostAndReturn <dynamic, dynamic>("grade/create", gradeDetails);
            }
            catch (Exception ex)
            {
            }

            return(View(model));
        }
Beispiel #11
0
        private List <SelectListItem> getSubjectsList()
        {
            var subjectsListItems = new List <SelectListItem>();

            if (Session["Subjects"] == null)
            {
                Session["Subjects"] = HttpDataProvider.GetData <List <dynamic> >("subject/all");
            }

            ((List <dynamic>) Session["Subjects"]).ForEach(delegate(dynamic subject)
            {
                subjectsListItems.Add(new SelectListItem {
                    Value = subject.Id, Text = subject.SubjectName
                });
            });

            return(subjectsListItems);
        }
Beispiel #12
0
        private List <SelectListItem> getGradesList()
        {
            var gradesListItems = new List <SelectListItem>();

            if (Session["Grades"] == null)
            {
                Session["Grades"] = HttpDataProvider.GetData <List <dynamic> >("grade/all");
            }

            ((List <dynamic>) Session["Grades"]).ForEach(delegate(dynamic grade)
            {
                gradesListItems.Add(new SelectListItem {
                    Value = grade.Id, Text = grade.GradeName
                });
            });

            return(gradesListItems);
        }
Beispiel #13
0
        public ActionResult GetExams(PaperCartViewModel model)
        {
            var apiUrl   = string.Format("exam/{0}/forgrade", model.SelectedGrade);
            var examList = HttpDataProvider.GetData <List <dynamic> >(apiUrl);

            model.GradePapers = new List <GradeExamPaper>();

            // Todo: Add this into cache
            model.Grades = getGradesList();

            examList.ForEach(delegate(dynamic exam)
            {
                model.GradePapers.Add(new GradeExamPaper {
                    PaperId = exam.Id, PaperName = exam.PaperName
                });
            });

            return(View("Index", model));
        }
Beispiel #14
0
        public ActionResult Upload(string fileId)
        {
            var successList          = new List <Tuple <string, string> >();
            var failList             = new List <Tuple <string, string> >();
            var internalDataProvider = new HttpDataProvider(ConfigurationManager.AppSettings["InternalApiBaseUrl"]);
            var customers            = internalDataProvider.GetData <List <CustomerEntry> >("api/upload");

            if (customers.Any())
            {
                var externalDataProvider = new HttpDataProvider(ConfigurationManager.AppSettings["ExternalApiBaseUrl"]);
                var fileName             = Path.GetFileName(ConfigurationManager.AppSettings[fileId]);

                customers.ForEach(delegate(CustomerEntry customer)
                {
                    dynamic customerJson =
                        new
                    {
                        property = "Anushan",
                        customer = customer.FullName,
                        action   = "order created",
                        value    = customer.Value,
                        file     = fileName
                    };

                    var resultJson = externalDataProvider.PostAndReturn <dynamic, dynamic>("upload", customerJson);

                    if (resultJson.added == "true")
                    {
                        var addedCustomerEntry = externalDataProvider.GetData <dynamic>(string.Format("check?hash={0}", resultJson.hash));
                        successList.Add(new Tuple <string, string>(string.Format("Hash: {0}", addedCustomerEntry.hash), string.Format("Customer: {0}", addedCustomerEntry.customer)));
                    }
                    else
                    {
                        failList.Add(new Tuple <string, string>(customer.FullName, resultJson.errors));
                    }
                });
            }

            ViewBag.SuccessList = successList;
            ViewBag.FailList    = failList;

            return(View());
        }
        public ActionResult Upload(string fileId)
        {
            var successList = new List<Tuple<string, string>>();
            var failList = new List<Tuple<string, string>>();
            var internalDataProvider = new HttpDataProvider(ConfigurationManager.AppSettings["InternalApiBaseUrl"]);
            var customers = internalDataProvider.GetData<List<CustomerEntry>>("api/upload");

            if (customers.Any())
            {
                var externalDataProvider = new HttpDataProvider(ConfigurationManager.AppSettings["ExternalApiBaseUrl"]);
                var fileName = Path.GetFileName(ConfigurationManager.AppSettings[fileId]);

                customers.ForEach(delegate(CustomerEntry customer)
                {
                    dynamic customerJson =
                        new
                        {
                            property = "Anushan",
                            customer = customer.FullName,
                            action = "order created",
                            value = customer.Value,
                            file = fileName
                        };

                    var resultJson = externalDataProvider.PostAndReturn<dynamic, dynamic>("upload", customerJson);

                    if (resultJson.added == "true")
                    {
                        var addedCustomerEntry = externalDataProvider.GetData<dynamic>(string.Format("check?hash={0}", resultJson.hash));
                        successList.Add(new Tuple<string, string>(string.Format("Hash: {0}", addedCustomerEntry.hash), string.Format("Customer: {0}", addedCustomerEntry.customer)));
                    }
                    else
                        failList.Add(new Tuple<string, string>(customer.FullName, resultJson.errors));
                });
            }

            ViewBag.SuccessList = successList;
            ViewBag.FailList = failList;

            return View();
        }
Beispiel #16
0
        public ActionResult AddDrivePapersList(BulkViewModel model)
        {
            var examPapers = (List <dynamic>)Session["ICASPapers"];

            if (examPapers != null && examPapers.Count > 0)
            {
                try
                {
                    var createExamsListResponse = HttpDataProvider.PostAndReturn <List <dynamic>, List <int> >("exam/createlist", examPapers);
                    Session.Remove("ICASPapers");
                    return(RedirectToAction("Index"));
                }
                catch (Exception ex)
                {
                    // Todo: error handling
                }
            }
            // Todo: Error handling

            return(View("Index", model));
        }
        public LicenseResolver(HttpDataProvider httpProvider, Uri licensesJsonUrl) {
            this.httpProvider = httpProvider;

            var licensesJson = this.httpProvider.GetStringAsync(licensesJsonUrl).Result;
            this.licenses = JsonConvert.DeserializeObject<LicenseRoot>(licensesJson).Licenses;
        }
 public AutoSelectingDataPovider(HttpDataProvider httpDataProvider, FallBackDataProvider fallBackProvider)
 {
     _httpDataProvider     = httpDataProvider;
     _fallBackDataProvider = fallBackDataProvider;
 }
Beispiel #19
0
 public ControllerBase()
 {
     HttpDataProvider = new HttpDataProvider(ConfigurationManager.AppSettings["ExamApiBaseUrl"]);
     ApplicationName  = ConfigurationManager.AppSettings["ApplicationName"];
 }
Beispiel #20
0
 public GeneralInfoTableSource(LocalPackageCache packageCache, HttpDataProvider dataProvider, LicenseResolver licenseResolver)
 {
     this.packageCache    = packageCache;
     this.dataProvider    = dataProvider;
     this.licenseResolver = licenseResolver;
 }
Beispiel #21
0
        private static void Main(CommandLineArguments args)
        {
            var cache            = new LocalPackageCache(Path.GetFullPath(ConfigurationManager.AppSettings["NuGetPackagesPath"]));
            var httpDataProvider = new HttpDataProvider(new DirectoryInfo("HttpCache"));

            var attributeCleaner = new AttributeTextCleaner();
            var sources          = new IFeatureTableSource[] {
                new GeneralInfoTableSource(
                    cache,
                    httpDataProvider,
                    new LicenseResolver(httpDataProvider, new Uri(ConfigurationManager.AppSettings["LicensesJsonUrl"]))
                    ),
                new NetFxSupportTableSource(cache),
                new FeatureTestTableSource(new FeatureTestRunner(attributeCleaner), attributeCleaner, new ExceptionNormalizer())
            };
            var outputs = new IResultOutput[] {
                new HtmlOutput(new DirectoryInfo(ConfigurationManager.AppSettings["HtmlTemplatesPath"])),
                new JsonOutput()
            };

            var outputDirectory = new DirectoryInfo(args.OutputPath ?? ConfigurationManager.AppSettings["OutputPath"]);

            if (!outputDirectory.Exists)
            {
                outputDirectory.Create();
            }

            var assemblyPaths = GetAssemblyPaths();
            var results       = assemblyPaths.Select(path => {
                console.White.Text("Running " + Path.GetFileName(path) + ":");
                try {
                    var assembly = Assembly.LoadFrom(path);

                    var tables = sources.SelectMany(s => s.GetTables(assembly)).ToArray();
                    CalculateTotal(tables.Single(t => t.Key == MetadataKeys.GeneralInfoTable), tables);

                    var outputNamePrefix = assembly.GetName().Name.SubstringAfter(AssemblyNamePrefix);
                    var result           = new ResultForAssembly(assembly, tables, outputNamePrefix);

                    console.Green.Line(" OK");
                    return(result);
                }
                catch (Exception) {
                    console.Red.Line(" FAIL");
                    throw;
                }
            }).ToArray();

            console.NewLine();
            console.White.Line("Creating outputs:");
            foreach (var output in outputs)
            {
                output.Write(outputDirectory, results, args.WatchTemplates);
            }

            if (args.WatchTemplates)
            {
                console.NewLine()
                .White
                .Line("Auto-updating outputs if templates change.")
                .Line("Press [Enter] to stop.");
                Console.ReadLine();
            }

            foreach (var output in outputs)
            {
                output.Dispose();
            }

            Console.WriteLine();
            console.Green.Line("Completed.");
        }