public Subject CreateSubject(Subject subject) { using (var database = new Core.Entity.SeedsEntities()) { var entity = subject.ToEntity(database); database.AddToSubject(entity); database.SaveChanges(); var result = new Subject(database.Subject.Execute(MergeOption.NoTracking).Single(s => s.ID == entity.ID)); result.UpdateParent(); Cache.Instance.Subjects[result.ID] = result; return result; } }
public Subject EditSubject(Subject subject) { using (var database = new Core.Entity.SeedsEntities()) { var entity = database.Subject.Single(s => s.ID == subject.ID); if (!entity.Employees.IsLoaded) { entity.Employees.Load(); } subject.ApplyChanges(database, entity); database.SaveChanges(); var result = new Subject(entity); Cache.Instance.Subjects[result.ID] = result; return result; } }
private void afterDeserialization(StreamingContext context) { Position = positionId.HasValue ? Cache.Instance.Positions[positionId.Value] : null; Subject = Cache.Instance.Subjects[subjectId]; if (Cache.Instance is ClientCache) { Subject.Employees[ID] = this; } }