public void Save(Dictionary <object, string> data) { Exec(d => { var aaa = new Dictionary <object, object>(); foreach (var item in data) { var type = DbSets.FirstOrDefault(e => e.Name == item.Value); if (type != null) { var newModel = Activator.CreateInstance(type); Gods.Him.CopyTo(item.Key, newModel); d.Set(type).Add(newModel); aaa[item.Key] = newModel; } else { d.Set(item.Key.GetType()).Add(item.Key); } } d.SaveChanges(); foreach (var item in aaa) { Gods.Him.CopyTo(item.Value, item.Key); } }); }
public DbSet RegisterType(Type type) { var dbset = Set(type); DbSets.TryAdd(type, dbset); return(dbset); }
/// <summary> /// Gets preferences of the specified <typeparamref name="TPreference"/> type, /// including the associated user. /// </summary> /// <typeparam name="TPreference"></typeparam> /// <returns></returns> public virtual IQueryable <UserPreferencesModel> Execute <TPreference>() where TPreference : UserPreference { return(DbSets.Set <ApplicationUser>().Select(u => new UserPreferencesModel() { User = u, Person = u.Person, SubscriptionPreferences = u.Preferences.OfType <SubscriptionPreference>() })); }
public virtual IProjectableQuery <TItem> Execute <TItem>(string personId) where TItem : Case { var items = from item in DbSets.Set <TItem>() where item.CaseUsers.Any(c => c.Person.Id == personId) select item; return(items.AsProjectable(Mapper)); }
public string ToXML() { XNamespace ns_dal = string.Format("clr-namespace:{0};assembly={1}", DbSets.Any() ? DbSets.First().EntityType.Namespace : GetType().Namespace, DbSets.Any() ? DbSets.First().EntityType.Assembly.GetName().Name : GetType().Assembly.GetName().Name); var xElement = new XElement(NS_DATA + "Metadata", new XAttribute(XNamespace.Xmlns + "x", NS_XAML.ToString()), new XAttribute(XNamespace.Xmlns + "data", NS_DATA.ToString()), new XAttribute(XNamespace.Xmlns + "dal", ns_dal.ToString()), new XAttribute(NS_XAML + "Key", "ResourceKey"), new XElement(NS_DATA + "Metadata.DbSets", from dbset in DbSets select new XElement(NS_DATA + "DbSetInfo", new XAttribute("dbSetName", dbset.dbSetName), dbset.isTrackChanges ? new[] { new XAttribute("isTrackChanges", dbset.isTrackChanges) } : new XAttribute[0], new XAttribute("enablePaging", dbset.enablePaging), dbset.enablePaging ? new[] { new XAttribute("pageSize", dbset.pageSize) } : new XAttribute[0], new XAttribute("EntityType", string.Format("{{x:Type dal:{0}}}", dbset.EntityType.Name)), new XElement(NS_DATA + "DbSetInfo.fieldInfos", _FieldsToXElements(dbset.fieldInfos) ))), new XElement(NS_DATA + "Metadata.Associations", from assoc in Associations select new XElement(NS_DATA + "Association", new XAttribute("name", assoc.name), string.IsNullOrWhiteSpace(assoc.parentDbSetName) ? new XAttribute[0] : new[] { new XAttribute("parentDbSetName", assoc.parentDbSetName) }, string.IsNullOrWhiteSpace(assoc.childDbSetName) ? new XAttribute[0] : new[] { new XAttribute("childDbSetName", assoc.childDbSetName) }, string.IsNullOrWhiteSpace(assoc.childToParentName) ? new XAttribute[0] : new[] { new XAttribute("childToParentName", assoc.childToParentName) }, string.IsNullOrWhiteSpace(assoc.parentToChildrenName) ? new XAttribute[0] : new[] { new XAttribute("parentToChildrenName", assoc.parentToChildrenName) }, assoc.onDeleteAction == DeleteAction.NoAction ? new XAttribute[0] : new[] { new XAttribute("onDeleteAction", assoc.onDeleteAction) }, new XElement(NS_DATA + "Association.fieldRels", from fldRel in assoc.fieldRels select new XElement(NS_DATA + "FieldRel", new XAttribute("parentField", fldRel.parentField), new XAttribute("childField", fldRel.childField) ) ) )) ); var xml = xElement.ToString(); return(xml); }
public virtual IProjectableQuery <TItem> Execute <TItem>(SituationModel situationModel) where TItem : Item { var items = from item in DbSets.Set <TItem>() where item.AppliesToContexts.Any(c => situationModel.Contexts.Contains(c.Id)) && item.AppliesToLosses.Any(c => situationModel.Losses.Contains(c.Id)) && item.AppliesToRelationships.Any(c => situationModel.Relationships.Contains(c.Id)) select item; return(items.AsProjectable(Mapper)); }
public virtual IQueryable <ApplicationUser> Execute(bool?isStaff) { var query = DbSets.Set <ApplicationUser>().AsQueryable(); if (isStaff == true) { query = query.Where(u => u.Claims.Any(c => c.ClaimType == Constants.Claims.Staff)); } else if (isStaff == false) { query = query.Where(u => u.Claims.All(c => c.ClaimType != Constants.Claims.Staff)); } return(query); }
public virtual IQueryable <SubscriptionPreferenceDetails> GetSubscriptionPreferenceDetails([NotNull] string subscriptionName) { if (subscriptionName == null) { throw new ArgumentNullException(nameof(subscriptionName)); } return(DbSets.Set <SubscriptionPreference>() .Where(sp => sp.SubscriptionName == subscriptionName) .Select(sp => new SubscriptionPreferenceDetails() { UserId = sp.User.Id, EmailAddress = sp.User.Person.EmailAddress, PhoneNumber = sp.User.Person.PhoneNumber, IsSmsRequested = sp.IsSmsRequested, IsEmailRequested = sp.IsEmailRequested, })); }
public IDbSet <T> GetDbSet <T>() where T : class { return((IDbSet <T>)DbSets.FirstOrDefault(db => db.GetType().GetInterfaces().Contains(typeof(IDbSet <T>)))); }
/// <summary> /// Gets a <typeparamref name="TModel"/> (which must have a query-compatible mapping from <typeparamref name="TEntity"/>) by <paramref nam="id"/>. /// </summary> /// <param name="id"></param> /// <returns></returns> public virtual TModel Execute <TModel>(object id) => Mapper.Map <TModel>(DbSets.Set <TEntity>().Find(id));
/// <summary> /// Gets a <typeparamref name="TEntity"/> by <paramref nam="id"/>; /// </summary> /// <param name="id"></param> /// <returns></returns> public virtual TEntity Execute(object id) => DbSets.Set <TEntity>().Find(id);