Exemple #1
0
 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>()
     }));
 }
Exemple #4
0
        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));
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        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>))));
 }
Exemple #10
0
 /// <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));
Exemple #11
0
 /// <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);