public void ClearPackages() { using (var db = new ProgramContext()) { db.Database.Delete(); } }
/// <summary> /// Add a program package to the database via Entityframework /// </summary> /// <param name="val"></param> /// <param name="db"></param> private static void AddProgramPackageToDatabase(XMLClasses.feedEntry val, ProgramContext db) { var program = new EF_Program {ProgramName = val.title.Value}; if (program.ProgramVersions == null) program.ProgramVersions = new List<EF_ProgramVersion>(); program.ProgramVersions.Add(new EF_ProgramVersion {Program = program, Version = val.properties.Version}); db.Programs.Add(program); }
public static dynamic GetProgramListAsJSON() { using (var db = new ProgramContext()) { var programs = from p in db.Programs select new { Name = p.ProgramName }; var serializer = new JavaScriptSerializer(); return serializer.Serialize(programs); } }
public void UpdatePackages() { var ser = new XmlSerializer(typeof(XMLClasses.feed)); var link = "http://chocolatey.org/api/v2/Packages"; using (var db = new ProgramContext()) { while (link != null && link.Length > 15) { XMLClasses.feed mainfeed = ReadFromMainfeed(link, ser); foreach (var item in mainfeed.Items.Where(x => x.GetType() == typeof(XMLClasses.feedEntry))) { var val = item as XMLClasses.feedEntry; if (val != null) { var queryProgram = GetStoredProgramPackagesFromDatabase(db, val); var queryProgramVersion = GetStoredProgramPackageVersionsFromDatabase(db, val); if (!queryProgram.Any()) { AddProgramPackageToDatabase(val, db); } else if (!queryProgramVersion.Any()) { AddProgramPackageVersionToDatabase(queryProgram, db, val); } db.SaveChanges(); } } var feedLink = mainfeed.Items.Last(x => x.GetType() == typeof(XMLClasses.feedLink)) as XMLClasses.feedLink; link = feedLink != null ? feedLink.href : null; } } }
private static IOrderedQueryable<EF_Program> GetStoredProgramPackagesFromDatabase(ProgramContext db, XMLClasses.feedEntry val) { var queryProgram = from p in db.Programs where p.ProgramName == val.title.Value orderby p.ProgramName select p; return queryProgram; }
/// <summary> /// Add Program Package Version To the Database via Entityframework. /// The Program package version is allways linked to a Program package. /// </summary> /// <param name="queryProgram"></param> /// <param name="db"></param> /// <param name="val"></param> private static void AddProgramPackageVersionToDatabase(IOrderedQueryable<EF_Program> queryProgram, ProgramContext db, XMLClasses.feedEntry val) { var program = queryProgram.First(); db.ProgramVersions.Add(new EF_ProgramVersion {Program = program, Version = val.properties.Version}); }
private static IQueryable<EF_ProgramVersion> GetStoredProgramPackageVersionsFromDatabase(ProgramContext db, XMLClasses.feedEntry val) { var queryProgramVersion = from p in db.ProgramVersions where p.Version == val.properties.Version select p; return queryProgramVersion; }