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); }
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)); } }
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."); }
// 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); }
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); }
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)); }
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); } }
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)); }
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); }
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); }
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)); }
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(); }
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; }
public ControllerBase() { HttpDataProvider = new HttpDataProvider(ConfigurationManager.AppSettings["ExamApiBaseUrl"]); ApplicationName = ConfigurationManager.AppSettings["ApplicationName"]; }
public GeneralInfoTableSource(LocalPackageCache packageCache, HttpDataProvider dataProvider, LicenseResolver licenseResolver) { this.packageCache = packageCache; this.dataProvider = dataProvider; this.licenseResolver = licenseResolver; }
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."); }