public JsonResult GetAPKType(int number) { APK apk = APKContext.GetAPKList()[number]; int type = (int)apk.Type; return(Json(type, JsonRequestBehavior.AllowGet)); }
private List <int> GetAPKParametersIdForReport(APK apk) { List <int> list = new List <int>(); if (apk.Type == Types.chem) { list.Add(1); list.Add(2); list.Add(3); } else if (apk.Type == Types.gama) { list.Add(11); } else if (apk.Type == Types.gamaANDcontrol) { list.Add(9); list.Add(10); list.Add(17); } else if (apk.Type == Types.radio) { list.Add(7); list.Add(8); } else if (apk.Type == Types.meteo) { list.Add(4); list.Add(12); list.Add(13); list.Add(14); list.Add(16); list.Add(15); } else if (apk.Type == Types.gamaANDchem) { list.Add(1); list.Add(2); list.Add(3); list.Add(11); } return(list); }
public JsonResult GetAPKParametersForReport(int APKID, string day, string month, string year) { int id = APKContext.GetAPKList()[APKID].ID; APK apk = APKContext.GetAPKList()[APKID]; TempData["REPORTAPKTYPE"] = (int)apk.Type; List <List <string> > lst = APKContext.GetListOfParameterValuesReport(id, GetAPKParametersIdForReport(apk), day, month, year); return(Json(lst, JsonRequestBehavior.AllowGet)); }
public ActionResult DeleteConfirmed(int id) { APK aPK = db.APKs.Find(id); db.APKs.Remove(aPK); db.SaveChanges(); RefreshAPKCache(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "ID,Title,Version,Architecture,MinimumAPI,DPI,Size,Type,Downloads,FileID,Public,Published")] APK aPK) { if (ModelState.IsValid) { db.Entry(aPK).State = EntityState.Modified; db.SaveChanges(); RefreshAPKCache(); return(RedirectToAction("Index")); } return(View(aPK)); }
private string ExtractAPK(string apkPath) { string outPath = Path.Join(Path.GetTempPath(), Path.GetRandomFileName()); Directory.CreateDirectory(outPath); using (Stream stream = File.OpenRead(apkPath)) { APK apk = new APK(stream); ExtractDirectory(apk.RootDirectory, outPath); ExtractFileSets(apk.FileSets, outPath); } return(outPath); }
public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } APK aPK = db.APKs.Find(id); if (aPK == null) { return(HttpNotFound()); } return(View(aPK)); }
public JsonResult GenerateAPK(bool all, int id) { List <APK> lst = APKContext.GenerateAPKList(); JsonResult jr; if (all) { jr = Json(lst, JsonRequestBehavior.AllowGet); } else { APK tmp = lst.Where(apk => apk.ID == id).FirstOrDefault(); if (tmp == null) { tmp = new APK() { ID = -1 } } ; jr = Json(tmp, JsonRequestBehavior.AllowGet); } return(jr); }
public JsonResult APKSearch(int byWhom, string what) { JsonResult jr = null; List <APK> list = APKContext.GetAPKList(); if (byWhom == 0) //by number { //int i = -1; APK apk = null; //if(int.TryParse(what, out i)) apk = list.Where(item => item.Number == what).FirstOrDefault(); if (apk == null) { apk = new APK() { Number = "-1" } } ; jr = Json(apk.Number, JsonRequestBehavior.AllowGet); } else if (byWhom == 1) //by name { APK apk = list.Where(item => item.Name.ToUpper().Contains(what.ToUpper())).FirstOrDefault(); if (apk == null) { apk = new APK() { Number = "-1" } } ; jr = Json(apk.Number, JsonRequestBehavior.AllowGet); } return(jr); }
public FileResult CreateReportXLS(string hiddenAPKIDSelector, string hiddenPIB, string hiddenDateDay, string hiddenDateMonth, string hiddenDateYear) { /*string file = Path.Combine(Server.MapPath("~/Files"), "report.xls"); * Workbook workbook = Workbook.Load(file); * Worksheet worksheet = workbook.Worksheets[0]; * * worksheet.Cells[1, 1].Value = "EHUUUU"; * worksheet.Cells[0, 1] = new Cell("1, 2"); * workbook.Save(file); * return File(file, "application/vnd.ms-excel", "report.xls");*/ int apkNumber = 0; Int32.TryParse(hiddenAPKIDSelector, out apkNumber); string file = Path.Combine(Server.MapPath("~/Files"), "report" + ((int)APKContext.GetAPKList()[apkNumber].Type).ToString() + ".xlsx"); //видалимо попередній файл /*string tmp_path = (string)TempData["tmp_file"]; * if(tmp_path != null) * System.IO.File.Delete(tmp_path);*/ foreach (string files in System.IO.Directory.EnumerateFiles(Server.MapPath("~/Files/tmp_files"))) { try { string tmp = Path.Combine(Server.MapPath("~/Files/tmp_files"), files); System.IO.File.Delete(tmp); } catch (IOException ex) { } } //створимо новий файл із шаблону string tmp_file = Path.Combine(Server.MapPath("~/Files/tmp_files"), "report" + Guid.NewGuid() + ".xlsx"); System.IO.File.Copy(file, tmp_file); var xlApp = new Excel.Application(); try { xlApp.DisplayAlerts = false; Excel.Workbook xlWorkBook = xlApp.Workbooks.Open(tmp_file); int cnt = xlWorkBook.Sheets.Count; Excel.Worksheet xlWorkSheet = xlWorkBook.Sheets[1]; xlWorkSheet.Cells[1][1] = hiddenDateDay + "." + hiddenDateMonth + "." + hiddenDateYear; xlWorkSheet.Cells[17][4] = hiddenPIB; xlWorkSheet.Cells[17][4] = hiddenPIB; xlWorkSheet.Cells[1][9] = APKContext.GetAPKList()[apkNumber].Description; xlWorkSheet.Cells[1][10] = "за адресою: " + APKContext.GetAPKList()[apkNumber].Name; int id = APKContext.GetAPKList()[apkNumber].ID; APK apk = APKContext.GetAPKList()[apkNumber]; List <List <string> > lst = APKContext.GetListOfParameterValuesReport(id, GetAPKParametersIdForReport(apk), hiddenDateDay, hiddenDateMonth, hiddenDateYear); for (int i = 0; i < lst.Count; i++) { for (int j = 0; j < 24; j++) { xlWorkSheet.Cells[6 + j][15 + i] = ""; } } for (int i = 0; i < lst.Count; i++) { for (int j = 0; j < lst[i].Count; j++) { xlWorkSheet.Cells[6 + j][15 + i] = lst[i][j].ToString(); } } xlWorkBook.SaveAs(tmp_file, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, false, false, Excel.XlSaveAsAccessMode.xlNoChange, Excel.XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing); xlWorkBook.Close(true); xlApp.Quit(); Marshal.ReleaseComObject(xlApp); } catch (Exception ex) { Marshal.ReleaseComObject(xlApp); } return(File(tmp_file, "application/vnd.ms-excel", "report.xlsx")); }
public ActionResult Refresh() { var before = Global.GoogleClient.FetchedFiles; var after = Global.GoogleClient.FetchAllFiles(); var changes = Global.GoogleClient.GetChanges(before, after); foreach (var category in changes) { foreach (var change in category.Value) { switch (change.Type) { //case CHANGE_TYPE.ADD: // break; case CHANGE_TYPE.DELETE: if (db.APKs.Any(x => x.FileID.Equals(change.FileID))) { APK aPK = db.APKs.FirstOrDefault(x => x.FileID.Equals(change.FileID)); db.APKs.Remove(aPK); } break; case CHANGE_TYPE.CHANGE: if (db.APKs.Any(x => x.FileID.Equals(change.FileID))) { db.APKs.First(x => x.FileID.Equals(change.FileID)).Version = change.Version; } break; } } } // Delete all IDs from database that aren't in the Google Drive var AllIDs = after["NONROOT"].Select(x => x); AllIDs = AllIDs.Union(after["NONROOT_BETA"].Select(x => x)); AllIDs = AllIDs.Union(after["ROOT"].Select(x => x)); AllIDs = AllIDs.Union(after["ROOT_BETA"].Select(x => x)); AllIDs = AllIDs.Union(after["MAGISK"].Select(x => x)); AllIDs = AllIDs.Union(after["MAGISK_BETA"].Select(x => x)); var Ids = new HashSet <string>(AllIDs.Select(x => x.FileID)); var Versions = new HashSet <string>(AllIDs.Select(x => x.Version)); var dbFiles = db.APKs.ToList(); dbFiles.RemoveAll(p => Ids.Contains(p.FileID) && Versions.Contains(p.Version)); foreach (var item in dbFiles) { if (db.APKs.Any(x => x.FileID.Equals(item.FileID) && x.Type != APKTYPE.MICROG)) { APK aPK = db.APKs.FirstOrDefault(x => x.FileID.Equals(item.FileID)); db.APKs.Remove(aPK); } } db.SaveChanges(); Global.GoogleClient.FetchedFiles = after; return(RedirectToAction("Index")); }
// GET: APKs/Create public ActionResult Create(string title, string version, long?size, string fileId, string type, bool fast = false) { //ID,Title,Version,Architecture,MinimumAPI,DPI,Size,Type,Downloads,FileID,Public var apkType = APKTYPE.NONROOT; switch (type) { default: case "nonroot": apkType = APKTYPE.NONROOT; break; case "nonroot_beta": apkType = APKTYPE.NONROOT_BETA; break; case "root": apkType = APKTYPE.ROOT; break; case "root_beta": apkType = APKTYPE.ROOT_BETA; break; case "magisk": apkType = APKTYPE.MAGISK; break; case "magisk_beta": apkType = APKTYPE.MAGISK_BETA; break; } if (ModelState.IsValid && fast) { var apk = new APK { ID = 0, Title = ParseTheme(title), Version = version, Architecture = ParseArch(title), MinimumAPI = ParseApi(title), DPI = ParseDpi(title), Size = size ?? 0, Type = apkType, Downloads = 0, FileID = fileId, Public = false, Published = DateTime.UtcNow }; db.APKs.Add(apk); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.Data = new DriveFile { Name = ParseTheme(title), Version = version, Size = size, FileID = fileId }; ViewBag.Arch = ParseArch(title); ViewBag.API = ParseApi(title); ViewBag.Type = apkType; return(View()); }