public static bool InsertUpdateEntity <T>(T entity) where T : class { bool result = false; using (var context = new HWContext()) { var saved = false; while (!saved) { try { var entType = entity.GetType(); int id = (int)entType.GetProperty("ID").GetValue(entity); if (id == 0) { context.Set <T>().Add(entity); } else { context.Entry <T>(entity).State = System.Data.Entity.EntityState.Modified; } context.SaveChanges(); saved = true; } catch (DbUpdateConcurrencyException ex) { foreach (var entry in ex.Entries) { if (entry.Entity is T) { var proposedValues = entry.CurrentValues; var databaseValues = entry.GetDatabaseValues(); foreach (var property in proposedValues.PropertyNames) { var proposedValue = proposedValues[property]; var databaseValue = databaseValues[property]; // TODO: decide which value should be written to database proposedValues[property] = databaseValue; } // Refresh original values to bypass next concurrency check entry.OriginalValues.SetValues(databaseValues); } else { throw new NotSupportedException( "Неможливо опрацювати конфлікт даних " + entry); } } } } } return(result); }
public XtdModelFileBundle(IFileHierarchyFile xtdFile, IFileHierarchyFile xttFile, HWContext context) { this.XtdFile = xtdFile; this.XttFile = xttFile; this.Context = context; }
public IModelDirectory <IHaloWarsModelFileBundle>?GatherModelFileBundles( bool assert) { var haloWarsSteamDirectory = SteamUtils.GetGameDirectory("HaloWarsDE", assert); if (haloWarsSteamDirectory == null) { return(null); } var scratchDirectory = DirectoryConstants.ROMS_DIRECTORY .GetSubdir("halo_wars", true); var context = new HWContext(haloWarsSteamDirectory.FullName, scratchDirectory.FullName); // Expand all compressed/encrypted game files. This also handles the .xmb -> .xml conversion context.ExpandAllEraFiles(); var fileHierarchy = new FileHierarchy(scratchDirectory); var rootNode = new ModelDirectory <IHaloWarsModelFileBundle>("halo_wars"); var mapDirectories = fileHierarchy.Root .TryToGetSubdir("scenario/skirmish/design") .Subdirs; foreach (var srcMapDirectory in mapDirectories) { var xtdFile = srcMapDirectory.FilesWithExtension(".xtd").Single(); var xttFile = srcMapDirectory.FilesWithExtension(".xtt").Single(); rootNode.AddFileBundleRelative( new XtdModelFileBundle(xtdFile, xttFile, context)); } var artDirectory = fileHierarchy.Root.TryToGetSubdir("art"); var artSubdirQueue = new FinQueue <IFileHierarchyDirectory>(artDirectory); // TODO: Switch to DFS instead, it's more intuitive as a user while (artSubdirQueue.TryDequeue(out var artSubdir)) { // TODO: Skip a file if it's already been extracted // TODO: Parse UGX files instead, as long as they specify their own animations var visFiles = artSubdir.FilesWithExtension(".vis"); foreach (var visFile in visFiles) { rootNode.AddFileBundleRelative(new VisModelFileBundle(visFile, context)); } artSubdirQueue.Enqueue(artSubdir.Subdirs); } return(rootNode); }
public HelloService(HWContext context) { //temp until db connection established context.Worlds.Add(new World { Name = "World" }); _context = context; _context.SaveChanges(); }
public static List <EnumValue> GetValueList(int typeCode) { List <EnumValue> result = null; using (var db = new HWContext()) { result = db.EnumValues.Where(x => x.EnumTypeID == typeCode).ToList(); } return(result); }
public static List <T> GetLookUpList <T>() where T : class { List <T> result = null; using (var context = new HWContext()) { context.Set <T>().Load(); result = context.Set <T>().Local.ToList(); } return(result); }
public static void DeleteEntity(ContactInfo entity) { using (var context = new HWContext()) { try { context.ContactInfo.Remove(entity); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
private void RefreshTimeTable(int id = 0) { using (var context = new HWContext()) { context.TimeTable.Include(x => x.Subject).Load(); List <HWDBase.Repository.TimeTableStruct> listItems = new List <HWDBase.Repository.TimeTableStruct>(); for (byte i = 1; i < 10; i++) { HWDBase.Repository.TimeTableStruct item = new HWDBase.Repository.TimeTableStruct(); item.LessonNumber = i; for (int n = 0; n < 6; n++) { var entity = context.TimeTable.Local.Where(x => x.DayOfWeek == n && x.LessonNumber == i).FirstOrDefault(); switch (n) { case 1: item.D1 = entity.Subject; break; case 2: item.D2 = entity.Subject; break; case 3: item.D3 = entity.Subject; break; case 4: item.D4 = entity.Subject; break; case 5: item.D5 = entity.Subject; break; default: break; } } listItems.Add(item); } TimeTableItems = CollectionViewSource.GetDefaultView(listItems); } }
public ContactInfoEditViewModel(int owner, int id = 0) { if (id == 0) { Entity = new ContactInfo(); Entity.PersonID = owner; } else { using (var context = new HWContext()) { Entity = context.Set <ContactInfo>().Where(w => w.ID == id).FirstOrDefault(); } } }
private void RefreshView() { HWListView.Items.Clear(); hwContext = hwController.GetDbContext(); var hardwareInfos = hwContext.HWEntities.AsEnumerable(); foreach (HWEntity hardwareInfo in hardwareInfos) { ListViewItem listViewItem = new ListViewItem(); listViewItem.Text = hardwareInfo.HWID.ToString(); listViewItem.SubItems.Add(hardwareInfo.Hardware_Name); listViewItem.SubItems.Add(hardwareInfo.Hardware_Brand); listViewItem.SubItems.Add(hardwareInfo.Hardware_Model); listViewItem.SubItems.Add(hardwareInfo.Hardware_Type); listViewItem.SubItems.Add(hardwareInfo.Hardware_Status); listViewItem.SubItems.Add(hardwareInfo.Hardware_Price.ToString()); HWListView.Items.Add(listViewItem); } }
public static new HWSc3Resource FromFile(HWContext context, string filename) { return(GetOrCreateFromFile(context, filename, HWResourceType.Sc3) as HWSc3Resource); }
public HWController(CSharpHWForm cSharpHWForm) { this.cSharpHWForm = cSharpHWForm; db = new HWContext(); }
public VisModelFileBundle(IFileHierarchyFile visFile, HWContext context) { this.VisFile = visFile; this.Context = context; }
public DBLogger(IConfiguration configuration) { _configuration = configuration; _HWContext = new HWContext(_configuration); }