Example #1
0
        public JsonResult GetAPKType(int number)
        {
            APK apk  = APKContext.GetAPKList()[number];
            int type = (int)apk.Type;

            return(Json(type, JsonRequestBehavior.AllowGet));
        }
Example #2
0
        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);
        }
Example #3
0
        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));
        }
Example #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            APK aPK = db.APKs.Find(id);

            db.APKs.Remove(aPK);
            db.SaveChanges();

            RefreshAPKCache();

            return(RedirectToAction("Index"));
        }
Example #5
0
        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));
        }
Example #6
0
        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);
        }
Example #7
0
        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));
        }
Example #8
0
        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);
        }
Example #9
0
        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);
        }
Example #10
0
        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"));
        }
Example #11
0
        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"));
        }
Example #12
0
        // 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());
        }