Пример #1
0
        public virtual void BeforeSave()
        {
            this.UpdateDate   = DateTime.Now;
            this.UpdateUserId = Provider.User.Id;
            if (Id == 0)
            {
                this.InsertDate = DateTime.Now;
                if (this.InsertUserId == 0)
                {
                    this.InsertUserId = Provider.User.Id;
                }
            }

            #region if critical entity, log it
            if (this is ICriticalEntity && Id > 0)
            {
                Provider.Database.ClearEntityWebCache(this.GetType(), this.Id);
                IDatabaseEntity originalEntity = Provider.Database.Read(this.GetType(), this.Id);
                string          changes        = originalEntity.CompareFields(this);

                if (!string.IsNullOrWhiteSpace(changes))
                {
                    Provider.Log("EntityHistory", "Update", changes, this.GetType().Name, this.Id);
                }
            }
            #endregion
        }
Пример #2
0
 public void Update(IDatabaseEntity entityInstance)
 {
     using (NPoco.IDatabase db = GetDataBase())
     {
         db.Save <IDatabaseEntity>(entityInstance);
     }
 }
Пример #3
0
        private void newEntity()
        {
            string error = "";

            string where = context.Request["filter"] ?? "";
            string entityName = context.Request["entityName"];
            Type   entityType = Provider.GetEntityType(entityName);

            if (entityType != null)
            {
                IDatabaseEntity entity = Provider.CreateEntity(entityType);
                if (!string.IsNullOrEmpty(where))
                {
                    FilterParser filterParser = new FilterParser(where, entityName);
                    where = filterParser.GetWhere();
                    foreach (var item in filterParser.GetNameValuePairs())
                    {
                        entity.SetMemberValue(item.Key, item.Value);
                    }
                }
                context.Response.Write(@"{ success: true, data: " + entity.ToJSON() + "}");
                return;
            }
            else
            {
                error = "Entity tipi bulunamadı.";
            }

            context.Response.Write(@"{ success: false, errorMessage: " + error.ToJS() + "}");
        }
Пример #4
0
        protected override string getCellHTML(int row, int col)
        {
            string html = this.DataTemplate;

            int index = row * this.cols + col;

            if (data.Rows.Count <= index)
            {
                return(String.Empty);
            }

            dr = data.Rows[index];

            IDatabaseEntity entity = (IDatabaseEntity)Provider.Database.DataRowToEntity(Provider.GetEntityType(this.EntityName), dr);

            Interpreter engine = Provider.GetInterpreter(html, this);

            engine.SetAttribute("entity", entity);
            engine.SetAttribute("index", index + 1 + pageNo * HowManyItems);
            engine.Parse();
            engine.Execute();
            html = engine.Output;

            return(html);
        }
Пример #5
0
 public void Save(IDatabaseEntity entity)
 {
     using (NPoco.IDatabase db = GetDataBase())
     {
         db.Save(entity);
     }
 }
Пример #6
0
        private void getList()
        {
            string entityName  = context.Request["entityName"];
            string extraFilter = context.Request["extraFilter"] ?? "";

            IDatabaseEntity[] entities = Provider.GetIdNameList(entityName, extraFilter, "");
            context.Response.Write("[\n");
            context.Response.Write("[0, '" + Provider.GetResource("Select") + "']\n");
            for (int i = 0; i < entities.Length; i++)
            {
                IDatabaseEntity entity = entities[i];
                context.Response.Write(",[" + entity.Id.ToJS() + "," + entity.GetNameValue().ToJS() + "]");
                //if (i < entities.Length - 1) context.Response.Write(",");
            }
            context.Response.Write("]");
        }
Пример #7
0
        /// <summary>
        /// Activate single <see cref="MapGrid"/> at position.
        /// </summary>
        private void ActivateGrid(uint gridX, uint gridZ)
        {
            var grid = new MapGrid(gridX, gridZ);

            grids[gridZ * MapDefines.WorldGridCount + gridX] = grid;

            log.Trace($"Activated grid at X:{gridX}, Z:{gridZ}.");

            foreach (EntityModel model in entityCache.GetEntities(gridX, gridZ))
            {
                // non issue once all entities types are handled
                IDatabaseEntity entity = EntityManager.NewEntity((EntityType)model.Type) ?? EntityManager.NewEntity(EntityType.Simple);
                entity.Initialise(model);

                var vector = new Vector3(model.X, model.Y, model.Z);
                AddEntity(grid, entity as GridEntity, vector);
            }
        }
Пример #8
0
        public virtual void BeforeSave()
        {
            if (Id > 0)
            {
                Provider.Database.ClearEntityWebCache(this.GetType(), this.Id);
                IDatabaseEntity originalEntity = Module.Read(this.Id);
                string          changes        = originalEntity.CompareFields(this);

                if (!string.IsNullOrWhiteSpace(changes))
                {
                    var mh = new ModuleHistory();
                    originalEntity.CopyPropertiesWithSameName(mh);
                    mh.Id       = 0;
                    mh.ModuleId = originalEntity.Id;
                    mh.Details  = originalEntity.Serialize();
                    mh.Save();
                }
            }
        }
Пример #9
0
 public Aspect(string _fieldName, IDatabaseEntity _parent)
 {
     m_FieldName = _fieldName;
     m_Parent = _parent;
 }
Пример #10
0
 public PriceTableAspect(string _fieldName, IDatabaseEntity _parent) : base(_fieldName, _parent)
 {
 }
 public EntitySeoMetadataAspect(string fieldName, IDatabaseEntity parent)
 {
     m_FieldName = fieldName;
     m_Parent = parent;
 }
Пример #12
0
 private static void EnsureEntityNotNull(IDatabaseEntity entity)
 {
     Condition.Requires(entity, "entity").IsNotNull();
 }
Пример #13
0
        private DefaultSphinxDocument BuildSphinxDocument(IDatabaseEntity entity, FieldSetInfo info)
        {
            if (entity == null || info == null)
                return null;

            var sb = new StringBuilder(1024);
            info.FormatAsText(sb);
            string body = sb.ToString();

            if (string.IsNullOrWhiteSpace(body))
                return null;

            string title = string.Format("{0} / {1}", GetTitle(), info.Title);
            string url = EntityUri() + info.Url;

            return new DefaultSphinxDocument(new DocumentId(entity.id, info.Id), title, body, url, entity.ProtoName);
        }
Пример #14
0
        protected static GalleryPhotos GetPhotos(IDatabaseEntity entity, string title)
        {
            EnsureEntityNotNull(entity);

            var result = new GalleryPhotos();
            var mainPhoto =
                Meridian.Default.entity_photosStore.All()
                    .FirstOrDefault(item => item.entity_id == entity.id && item.proto_name == entity.ProtoName && item.is_main);

            if (mainPhoto != null)
                result.Photos.Add(mainPhoto);

            var photos = Meridian.Default.entity_photosStore.All()
                    .Where(item => item.entity_id == entity.id && item.proto_name == entity.ProtoName && !item.is_main)
                    .OrderBy(item => item.order_number);

            result.Photos.AddRange(photos);
            result.Title = title;

            return result;
        }
Пример #15
0
        private static FieldSetInfo BuildFieldSetInfo(fieldsets fieldset, IDatabaseEntity entity, bool announce = false)
        {
            if (fieldset == null)
                return null;

            var result = new FieldSetInfo
            {
                Id = fieldset.id,
                Title = fieldset.title,
                Url = fieldset.url,
                ShowGallery = fieldset.show_gallery,
                ShowMap = fieldset.show_map
            };

            var fields = new List<entity_fields>();
            if (announce)
            {
                fields = Meridian.Default.entity_fieldsStore.All()
                    .Where(item => item.fieldsets_items.Any(f => f.id == fieldset.id))
                    .OrderBy(item => item.announce_order).ToList();
            }
            else
            {
                var fieldsOrders = Meridian.Default.fieldset_fields_orderStore.All()
                    .Where(item => item.fieldset_id == fieldset.id)
                    .OrderBy(item => item.order_number).ToList();
                foreach (var fieldOrder in fieldsOrders)
                {
                    var item = fieldset.fieldsets_items.Find(f => f.id == fieldOrder.field_id);
                    if (item != null)
                    {
                        fields.Add(item);
                    }
                }
            }

            foreach (var field in fields)
            {
                var fieldValue = Meridian.Default.field_valuesStore.All()
                        .FirstOrDefault(item =>
                            item.proto_name == entity.ProtoName && item.field_id == field.id && item.entity_id == entity.id);

                if (fieldValue != null || (!string.IsNullOrEmpty(field.controller) && !string.IsNullOrEmpty(field.action)))
                {
                    result.Fields.Add(new FieldInfo
                    {
                        Title = field.title,
                        Value = fieldValue != null ? fieldValue.field_value : string.Empty,
                        Controller = field.controller,
                        Action = field.action
                    });
                }
            }

            return result;
        }
Пример #16
0
 public FieldsetMediator(IDatabaseEntity parent, fieldsets fieldSet)
 {
     m_Parent = parent;
     m_Fieldsets = fieldSet;
 }
Пример #17
0
        protected static MenuLinks GetMenuLinks(IDatabaseEntity entity, string baseUrl, string currentUrl)
        {
            EnsureEntityNotNull(entity);

            var result = new MenuLinks
            {
                CurrentUrl = currentUrl
            };

            var fieldsets = Meridian.Default.fieldsetsStore.All()
                .Where(item => item.proto_name == entity.ProtoName && !item.show_in_anounce)
                .OrderBy(item => item.order_number);

            foreach (var fieldset in fieldsets)
            {
                var linkInfo = new LinkInfo
                {
                    Title = fieldset.title,
                    FullUrl = baseUrl + fieldset.url,
                    Url = fieldset.url
                };

                var fields = new List<entity_fields>();
                var fieldsOrder = Meridian.Default.fieldset_fields_orderStore.All()
                    .Where(item => item.fieldset_id == fieldset.id).OrderBy(item => item.order_number)
                    .ToList();
                foreach (var fOrder in fieldsOrder)
                {
                    var item = fieldset.fieldsets_items.Find(f => f.id == fOrder.field_id);
                    if (item != null)
                    {
                        fields.Add(item);
                    }
                }

                foreach (var field in fields)
                {
                    var hasValue = Meridian.Default.field_valuesStore.All()
                            .Any(item => item.proto_name == entity.ProtoName && item.field_id == field.id && item.entity_id == entity.id);

                    if (hasValue || !string.IsNullOrEmpty(field.controller) && !string.IsNullOrEmpty(field.action))
                    {
                        result.Links.Add(linkInfo);
                        break;
                    }
                }
            }

            return result;
        }
Пример #18
0
 public static IDatabaseEntity Translate(IDatabaseEntity entity)
 {
     IDatabaseEntity[] list = new IDatabaseEntity[1];
     list[0] = entity;
     return Translate(list)[0];
 }
Пример #19
0
 public LookupAspect(string _fieldName, IDatabaseEntity _parent, Func<IEnumerable<ILookupValue>> _getAll ) : base(_fieldName, _parent)
 {
     m_getAll = _getAll;
 }
Пример #20
0
 public AttachedPhotoAspect(string fieldName, IDatabaseEntity parent, string dataFolder) : base(fieldName, parent)
 {
     this.dataFolder = dataFolder;
 }
Пример #21
0
 public EntityFieldsetAspect(string fieldName, IDatabaseEntity parent)
 {
     m_FieldName = fieldName;
     m_Parent = parent;
 }
Пример #22
0
        public static IDatabaseEntity[] Translate(IDatabaseEntity[] entities)
        {
            if (Provider.CurrentLanguage.Id == Configuration.DefaultLang || entities == null || entities.Length == 0)
                return entities; //*** aynı dil çevirmeye gerek yok.

            string entityName = entities[0].GetType().Name;

            if (Provider.Database.Tables[entityName + "Lang"] == null)
                return entities; //*** dil tablosu yok

            int langId = (int)Provider.Database.GetValue("select Id from Lang where Code like {0}", CurrentCulture+"%");
            ArrayList alIds = new ArrayList();
            Array.ForEach<IDatabaseEntity>(entities, delegate(IDatabaseEntity ent) { alIds.Add(ent.Id.ToString()); });
            string ids = String.Join(",", (string[])alIds.ToArray(typeof(string)));

            DataTable dtLang = Provider.Database.GetDataTable("select * from " + entityName + "Lang where " + entityName + "Id in (" + ids + ") and LangId={0}", langId);

            foreach (DataRow drLang in dtLang.Rows)
            {
                IDatabaseEntity relatedEntity = Array.Find<IDatabaseEntity>(entities, delegate(IDatabaseEntity ent) { return drLang[entityName + "Id"].Equals(ent.Id); });
                if (relatedEntity == null)
                    continue; //***
                foreach (DataColumn dc in dtLang.Columns)
                    if (dc.DataType == typeof(string))
                    {
                        PropertyInfo pi = relatedEntity.GetType().GetProperty(dc.ColumnName);
                        if (pi == null || drLang.IsNull(dc) || drLang[dc].ToString() == "")
                            continue; //***
                        pi.SetValue(relatedEntity, drLang[dc], null);
                    }
            }

            return entities;
        }
Пример #23
0
        protected static FieldSetInfo GetFieldset(IDatabaseEntity entity, string url, bool announce = false)
        {
            EnsureEntityNotNull(entity);

            var q = Meridian.Default.fieldsetsStore.All().Where(item => item.proto_name == entity.ProtoName);

            if (announce)
            {
                q = q.Where(item => item.show_in_anounce);
            }

            if (url != null)
            {
                url = url.ToLower();
                q = q.Where(item => item.url.ToLower() == url);
            }

            return BuildFieldSetInfo(q.FirstOrDefault(), entity, announce);
        }
Пример #24
0
        private void getEntity()
        {
            string error      = "";
            string entityName = context.Request["entityName"];
            Type   entityType = Provider.GetEntityType(entityName);

            if (entityType != null)
            {
                int id = 0;
                int.TryParse(context.Request["id"], out id);
                if (id > 0)
                {
                    IDatabaseEntity entity = Provider.Database.Read(entityType, id);
                    if (entity != null)
                    {
                        Hashtable ht             = Provider.Database.EntityToHashtable(entity);
                        Type      langEntityType = Provider.GetEntityType(entityName + "Lang");
                        if (langEntityType != null)
                        {
                            List <IDatabaseEntity> listLang = new List <IDatabaseEntity>(Provider.Database.ReadList(langEntityType, "select * from " + langEntityType.Name + " where " + entityName + "Id = {0}", id).SafeCastToArray <IDatabaseEntity>());
                            foreach (Lang l in Provider.Database.ReadList(typeof(Lang), "select * from Lang where Id<>{0}", Provider.Configuration.DefaultLang))
                            {
                                var langEntity = listLang.Count == 0 ? null : listLang.FirstOrDefault(e => l.Id.Equals(e.GetMemberValue("LangId")));
                                if (langEntity == null)
                                {
                                    langEntity = Provider.CreateEntity(langEntityType);
                                    langEntity.SetMemberValue("LangId", l.Id);
                                    langEntity.SetMemberValue(entityName + "Id", entity.Id);
                                    listLang.Add(langEntity);
                                }
                            }
                            foreach (var langEntity in listLang)
                            {
                                Hashtable langHt = Provider.Database.EntityToHashtable(langEntity);
                                foreach (var key in langHt.Keys)
                                {
                                    ht[key + "_lang_" + langEntity.GetMemberValue("LangId")] = langHt[key];
                                }
                            }
                        }

                        // entitiye özel muameleler
                        if (entityType == typeof(User))
                        {
                            ht["Password2"] = "";
                        }

                        context.Response.Write(@"{ success: true, data: " + ht.ToJSON() + "}");
                        return;
                    }
                    error = "Entity bulunamadı.";
                }
                else
                {
                    error = "Id geçersiz!";
                }
            }
            else
            {
                error = "Entity tipi bulunamadı.";
            }

            context.Response.Write(@"{ success: false, errorMessage: " + error.ToJS() + "}");
        }