示例#1
0
 private static string GetElementKey(Label label)
 {
     var key = label.UUID;
         if (string.IsNullOrEmpty(key))
             key = GetLabelUUID(label.Category, label.Name);
         return key;
 }
示例#2
0
        public virtual ActionResult Delete(string[] docs, string[] folders)
        {
            var data = new JsonResultData(ModelState);
            data.RunWithTry((resultData) =>
            {
                var category = ControllerContext.RequestContext.GetRequestValue("Category");

                if (docs != null)
                {
                    foreach (var uuid in docs)
                    {
                        var label = new Label() { Site = Site, UUID = uuid };
                        Remove(label);
                    }
                }

                if (folders != null)
                {
                    foreach (var c in folders)
                    {
                        Manager.RemoveCategory(Site, c);
                    }
                }

                resultData.ReloadPage = true;
            });
            return Json(data);
        }
        public void Add(Label item, bool @override)
        {
            var categoryFile = GetLabelFile(item.Site, item.Category);

            var storage = GetStorage(categoryFile);

            storage.Add(item, @override);
        }
示例#4
0
文件: LabelManager.cs 项目: Godoy/CMS
 public void Add(Site site, Label label)
 {
     if (string.IsNullOrEmpty(label.UUID))
     {
         label.UUID = Kooboo.UniqueIdGenerator.GetInstance().GetBase32UniqueId(10);
     }
     this._labelProvider.Add(label);
 }
示例#5
0
    /// <summary>
    /// compatibility reason.
    /// </summary>
    /// <param name="label">The label.</param>
    /// <returns></returns>
    private static Label ResetLabelUUID(Label label)
    {
        if (label != null)
            {
                //if (string.IsNullOrEmpty(label.UUID))
                label.UUID = GetLabelUUID(label.Category, label.Name);
            }

            return label;
    }
示例#6
0
        private void InsertOrUpdateLabel(Label @new, Label old)
        {
            var entity = _dbContext.Labels
                  .Where(it => it.SiteName == @new.Site.FullName && it.Name == @new.Name && it.Category == (@new.Category ?? ""))
                  .FirstOrDefault();
            if (entity != null)
            {
                entity.Value = @new.Value;
            }
            else
            {
                if (!string.IsNullOrEmpty(@new.Category))
                {
                    AddCategory(@new.Site, @new.Category);
                }
                entity = new LabelEntity(@new.Site.FullName, @new.Name, @new.Value, @new.Category);
                entity.UUID = @new.UUID;
                entity.UtcCreationDate = @new.UtcCreationDate;
                _dbContext.Labels.Add(entity);
            }
            entity.LastestEditor = @new.LastestEditor;
            entity.UtcLastestModificationDate = @new.UtcLastestModificationDate;

            _dbContext.SaveChanges();
        }
示例#7
0
 private IQueryable<LabelEntity> GetLabelEntity(DbSet<LabelEntity> labels, Label label)
 {
     if (!string.IsNullOrEmpty(label.Name))
     {
         return labels.Where(it => it.SiteName == label.Site.FullName && it.Name == label.Name && it.Category == (label.Category ?? ""));
     }
     else
     {
         return labels.Where(it => it.SiteName == label.Site.FullName && it.UUID == label.UUID);
     }
 }
示例#8
0
 public void Update(Label @new, Label old)
 {
     InsertOrUpdateLabel(@new, old);
 }
示例#9
0
 public void Remove(Label item)
 {
     var entity = GetLabelEntity(_dbContext.Labels, item).FirstOrDefault();
     if (entity != null)
     {
         _dbContext.Labels.Remove(entity);
         _dbContext.SaveChanges();
     }
 }
示例#10
0
 private void InsertOrUpdateLabel(Label @new, Label old)
 {
     if (!string.IsNullOrEmpty(@new.Category))
         {
             AddCategory(@new.Site, @new.Category);
         }
         @new = ResetLabelUUID(@new);
         var key = GetElementKey(@new);
         DataHelper.StoreObject(@new.Site, @new, key, ModelExtensions.LabelDataType);
 }
示例#11
0
 public void Export(string category, string[] docs, string[] folders)
 {
     var fileName = GetZipFileName();
     Response.AttachmentHeader(fileName);
     IEnumerable<Label> labels = new Label[0];
     if (docs != null)
     {
         labels = docs.Select(it => new Label(Site, it) { Category = category });
     }
     Manager.Export(Site, labels, folders, Response.OutputStream);
 }
示例#12
0
 public void Remove(Label item)
 {
     var key = GetElementKey(item);
         DataHelper.DeleteItemByKey(item.Site, ModelExtensions.GetBucketDocumentKey(ModelExtensions.LabelDataType, key));
 }
示例#13
0
 protected virtual void Remove(Label model)
 {
     Manager.Remove(Site, model);
 }
示例#14
0
 public void Add(Label item)
 {
     InsertOrUpdateLabel(item, item);
 }
示例#15
0
 public void Add(Label item)
 {
     Add(item, true);
 }
示例#16
0
        public void Update(Label @new, Label old)
        {
            var categoryFile = GetLabelFile(@new.Site, @new.Category);

            var storage = GetStorage(categoryFile);

            storage.Update(@new, old);
        }
示例#17
0
        public void Remove(Label item)
        {
            var categoryFile = GetLabelFile(item.Site, item.Category);

            var storage = GetStorage(categoryFile);

            storage.Remove(item);
        }
示例#18
0
文件: SiteLabel.cs 项目: Godoy/CMS
        private static string LabelValue(string defaultValue, string key, string category, Site site)
        {
            if (string.IsNullOrEmpty(key) && string.IsNullOrEmpty(category))
            {
                return defaultValue;
            }

            string editor = null;

            if (HttpContext.Current != null)
            {
                editor = HttpContext.Current.User.Identity.Name;
            }

            var labelManager = ServiceFactory.LabelManager;

            var label = labelManager.Get(site, category, key);

            string value = defaultValue;
            if (label == null)
            {
                label = new Label(site, category, key, defaultValue) { UtcCreationDate = DateTime.UtcNow, LastestEditor = editor };
                labelManager.Add(site, label);
            }
            else
            {
                value = label.Value;
            }
            return value;
        }
示例#19
0
        public Label Get(Label dummy)
        {
            var labelEntity = GetLabelEntity(_dbContext.Labels, dummy)
                .FirstOrDefault();

            if (labelEntity != null)
            {
                return labelEntity.ToLabel(dummy);
            }

            return null;
        }
示例#20
0
        public Label Get(Label dummy)
        {
            var categoryFile = GetLabelFile(dummy.Site, dummy.Category);

            var storage = GetStorage(categoryFile);

            return storage.Get(dummy);
        }
示例#21
0
 protected virtual void Update(Label model)
 {
     var newModel = Manager.Get(Site, model.Category, model.Name);
     newModel.UtcLastestModificationDate = DateTime.UtcNow;
     newModel.LastestEditor = User.Identity.Name;
     newModel.Value = model.Value;
     Manager.Update(Site, newModel, newModel);
 }
示例#22
0
文件: LabelManager.cs 项目: Godoy/CMS
 public virtual void Remove(Site site, Label label)
 {
     this._labelProvider.Remove(label);
 }
示例#23
0
 public virtual ActionResult Edit(Label model, string @return)
 {
     var data = new JsonResultData(ModelState);
     data.RunWithTry((resultData) =>
     {
         Update(model);
         resultData.RedirectUrl = @return;
     });
     return Json(data);
 }
示例#24
0
文件: LabelManager.cs 项目: Godoy/CMS
 public virtual void Update(Site site, Label @new, Label old)
 {
     if (@new.Site == null)
     {
         @new.Site = site;
     }
     //renew the UUID when UUID is null
     if (string.IsNullOrEmpty(@new.UUID))
     {
         @new.UUID = Kooboo.UniqueIdGenerator.GetInstance().GetBase32UniqueId(10);
     }
     this._labelProvider.Update(@new, old);
 }
示例#25
0
文件: LabelEntity.cs 项目: Godoy/CMS
        public Label ToLabel(Label dummy)
        {
            var label = new Label()
            {
                UUID = this.UUID,
                Name = this.Name,
                Category = this.Category,
                Value = this.Value,
                UtcCreationDate = this.UtcCreationDate,
                UtcLastestModificationDate = this.UtcLastestModificationDate,
                LastestEditor = this.LastestEditor
            };
            ((IPersistable)label).Init(dummy);

            return label;
        }
示例#26
0
    public Label Get(Label dummy)
    {
        var key = GetElementKey(dummy);

            key = ModelExtensions.GetBucketDocumentKey(ModelExtensions.LabelDataType, key);

            return ResetLabelUUID(DataHelper.QueryByKey<Label>(dummy.Site, key, createModel));
    }