예제 #1
0
        public override async Task <TEntity?> InsertAsync(IEditContext <TEntity> editContext)
        {
            var entity = await base.InsertAsync(editContext);

            UpdateJson();
            return(entity);
        }
예제 #2
0
        async Task <IEntity?> IRepository.InsertAsync(IEditContext editContext)
        {
            var data = await InsertAsync((IEditContext <TEntity>) editContext) as IEntity;

            NotifyUpdate();
            return(data);
        }
예제 #3
0
		public override void Apply(IEditContext context)
		{
			if (!AppliesTo(context))
				return;

			foreach (var edit in Edits)
				edit.Apply(context);
		}
        public override async Task <CountryCmsModel?> InsertAsync(IEditContext <CountryCmsModel> editContext)
        {
            var country = (Country)editContext.Entity;

            var entry = _dbContext.Countries.Add(country);
            await _dbContext.SaveChangesAsync();

            return(entry.Entity);
        }
        public override async Task <PersonCmsModel?> InsertAsync(IEditContext <PersonCmsModel> editContext)
        {
            var person = (Person)editContext.Entity;

            var entry = _dbContext.People.Add(person);
            await _dbContext.SaveChangesAsync();

            return(entry.Entity);
        }
예제 #6
0
        public override Task <TCmsEntity?> InsertAsync(IEditContext <TCmsEntity> editContext)
        {
            editContext.Entity.Id = new Random().Next(0, int.MaxValue).ToString();

            var entity = _converter.Convert(editContext.Entity);

            GetListForParent(editContext.Parent).Add(entity);

            return(Task.FromResult(_converter.Convert((TEntity)entity.Clone())) !);
        }
예제 #7
0
        public override async Task <TEntity?> InsertAsync(IEditContext <TEntity> editContext)
        {
            editContext.Entity.Id = new Random().Next(0, int.MaxValue).ToString();

            await HandleRelationsAsync(editContext.Entity, editContext.GetRelationContainer());

            GetListForParent(editContext.Parent).Add(editContext.Entity);

            return((TEntity)editContext.Entity.Clone());
        }
        public override async Task UpdateAsync(IEditContext <CountryCmsModel> editContext)
        {
            var country = (Country)editContext.Entity;

            var entity = await _dbContext.Countries.FirstOrDefaultAsync(x => x.Id == country.Id);

            entity.Name = country.Name;

            _dbContext.Countries.Update(entity);
            await _dbContext.SaveChangesAsync();
        }
예제 #9
0
        private void _manageCulturesMenuItem_Click(object sender, EventArgs e)
        {
            IEditContext ec = (IEditContext)Site.GetService(typeof(IEditContext));

            using (CultureManagerForm cmf = new CultureManagerForm(ec.AvailableCultures))
                if (cmf.ShowDialog(ec.DialogsOwner) == DialogResult.OK)
                {
                    ec.AvailableCultures = cmf.Cultures;
                    _propertyGrid.Refresh();
                }
        }
예제 #10
0
		public override void Apply(IEditContext context)
		{
			if (context.Excluded || !AppliesTo(context))
				return;

			foreach (var edit in Edits)
			{
				edit.Apply(context);
				if (context.Excluded)
					return;
			}
		}
        public override async Task UpdateAsync(IEditContext <PersonCmsModel> editContext)
        {
            var person = (Person)editContext.Entity;

            var entity = await _dbContext.People.FirstOrDefaultAsync(x => x.Id == person.Id);

            entity.Name     = person.Name;
            entity.ParentId = person.ParentId;

            _dbContext.People.Update(entity);
            await _dbContext.SaveChangesAsync();
        }
        public override async Task <TEntity?> InsertAsync(IEditContext <TEntity> editContext)
        {
            editContext.Entity.Id = new Random().Next(0, int.MaxValue).ToString();

            await HandleRelationsAsync(editContext.Entity, editContext.GetRelationContainer());

            GetListForParent(editContext.Parent).Add(editContext.Entity);

            _mediator.NotifyEvent(this, new MessageEventArgs(MessageType.Success, "Entity created."));

            return((TEntity)editContext.Entity);
        }
예제 #13
0
        public override Task <TCmsEntity?> InsertAsync(IEditContext <TCmsEntity> editContext)
        {
            editContext.Entity.Id = new Random().Next(0, int.MaxValue).ToString();

            var entity = _converter.Convert(editContext.Entity);

            GetListForParent(editContext.Parent).Add(entity);

            _mediator.NotifyEvent(this, new MessageEventArgs(MessageType.Success, "Entity inserted."));

            return(Task.FromResult(_converter.Convert((TEntity)entity.Clone())) !);
        }
예제 #14
0
        public override void Apply(IEditContext context)
        {
            if (!AppliesTo(context))
            {
                return;
            }

            foreach (var edit in Edits)
            {
                edit.Apply(context);
            }
        }
예제 #15
0
        public async Task <IEntity?> InsertAsync(IEditContext editContext)
        {
            if (editContext is IEditContext <ModelEntity> typedEditContext)
            {
                var entity = typedEditContext.Entity;
                entity.Alias = (entity.PluralName ?? entity.Name).ToUrlFriendlyString(); // TODO: ensure uniqueness

                var response = await _insertEntityCommandHandler.HandleAsync(new InsertRequest <ModelEntity>(entity));

                return(response.Entity);
            }

            return(default);
예제 #16
0
        public override Task UpdateAsync(IEditContext <TCmsEntity> editContext)
        {
            var list = GetListForParent(editContext.Parent);

            var index = list.FindIndex(x => x.Id == editContext.Entity.Id);

            var newEntity = (TEntity)_converter.Convert(editContext.Entity).Clone();

            list.Insert(index, newEntity);
            list.RemoveAt(index + 1);

            return(Task.CompletedTask);
        }
예제 #17
0
        // using editContext overload of UpdateAsync, you can access the state of the edit form
        // with this, you can check whether fields were edited (using editContext.IsModified(..))
        public override async Task UpdateAsync(IEditContext <TEntity> editContext)
        {
            var list = GetListForParent(editContext.Parent);

            var index = list.FindIndex(x => x.Id == editContext.Entity.Id);

            var newEntity = (TEntity)editContext.Entity.Clone();

            await HandleRelationsAsync(newEntity, editContext.GetRelationContainer());

            list.Insert(index, newEntity);
            list.RemoveAt(index + 1);
        }
        public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context,
                                                                   object value, System.Attribute[] attributes)
        {
            ArrayList    props = new ArrayList(TypeDescriptor.GetProperties(value, attributes));
            IEditContext ec    = (IEditContext)context.GetService(typeof(IEditContext));

            foreach (CultureInfo ci in ec.AvailableCultures)
            {
                props.Add(new LocalePropertyDescriptor(ci));
            }
            return(new PropertyDescriptorCollection((PropertyDescriptor[])props.ToArray(
                                                        typeof(PropertyDescriptor))));
        }
예제 #19
0
파일: Main.cs 프로젝트: agrc/TrailsAddin
        private void CreateRoutePart(string segID, object routeID, int part, IEditContext context, Table routeToSegmentsTable)
        {
            using (var routeToSegBuf = routeToSegmentsTable.CreateRowBuffer())
            {
                routeToSegBuf[RouteID]   = routeID;
                routeToSegBuf[USNG_SEG]  = segID;
                routeToSegBuf[RoutePart] = part;

                using (var row = routeToSegmentsTable.CreateRow(routeToSegBuf))
                {
                    context.Invalidate(row);
                }
            }
        }
        /// <summary>
        /// Смотри <see cref="UITypeEditor.EditValue(ITypeDescriptorContext, IServiceProvider, object)"/>
        /// </summary>
        public override object EditValue(ITypeDescriptorContext context,
                                         IServiceProvider provider, object value)
        {
            IEditContext ec = (IEditContext)provider.GetService(typeof(IEditContext));

            using (ResourceEditorForm refr = new ResourceEditorForm(context.PropertyDescriptor.DisplayName))
            {
                refr.ResourceText = (string)value;
                if (refr.ShowDialog(ec.DialogsOwner) == DialogResult.OK)
                {
                    return(refr.ResourceText);
                }
            }
            return(base.EditValue(context, provider, value));
        }
예제 #21
0
        public override Task UpdateAsync(IEditContext <TCmsEntity> editContext)
        {
            var list = GetListForParent(editContext.Parent);

            var index = list.FindIndex(x => x.Id == editContext.Entity.Id);

            var newEntity = (TEntity)_converter.Convert(editContext.Entity).Clone();

            list.Insert(index, newEntity);
            list.RemoveAt(index + 1);

            _mediator.NotifyEvent(this, new MessageEventArgs(MessageType.Success, "Entity updated."));

            return(Task.CompletedTask);
        }
예제 #22
0
 private void OpenFile()
 {
     if (_openFileDialog.ShowDialog() == DialogResult.OK)
     {
         CultureInfo[] loadedCultures;
         DateTime      lwt;
         _rootCategory = Loader.Load(_openFileDialog.FileName, out loadedCultures, out lwt);
         IEditContext ec = (IEditContext)Site.GetService(typeof(IEditContext));
         ec.AvailableCultures = loadedCultures;
         _directory           = Path.GetDirectoryName(_openFileDialog.FileName);
         FakeNodeCollection fnc = new FakeNodeCollection();
         fnc.Add(_rootCategory);
         _rootCategory.TreeParent = fnc;
         ClearSelection();
         _categoryTree.Nodes = fnc;
         EnableCommandItems();
     }
 }
예제 #23
0
        public EditContextModel(IEditContext <TEntity> editContext)
        {
            Entity     = editContext.Entity;
            ParentPath = editContext.Parent?.GetParentPath()?.ToPathString();

            var container = editContext.GetRelationContainer();

            RelationContainer = new RelationContainerModel
            {
                Relations = container.Relations.Select(relation =>
                {
                    return(new RelationModel
                    {
                        Elements = relation.RelatedElements.Select(el => el.Id),
                        PropertyName = relation.Property.PropertyName,
                        RelatedTypeName = relation.RelatedEntity.AssemblyQualifiedName
                    });
                })
            };
        }
예제 #24
0
        public EditContextModel(IEditContext <TEntity> editContext)
        {
            EntityModel = ApiBridge.EntityModel.Create(editContext.Entity);
            ParentPath  = editContext.Parent?.GetParentPath()?.ToPathString();

            var container = editContext.GetRelationContainer();

            RelationContainer = new RelationContainerModel
            {
                Relations = container.Relations.Select(relation =>
                {
                    return(new RelationModel
                    {
                        Elements = relation.RelatedElements.Select(el => el.Id),
                        PropertyName = relation.Property.PropertyName,
                        VariantAlias = AliasHelper.GetEntityVariantAlias(relation.RelatedEntityType)
                    });
                })
            };
        }
        // using editContext overload of UpdateAsync, you can access the state of the edit form
        // with this, you can check whether fields were edited (using editContext.IsModified(..))
        public override async Task UpdateAsync(IEditContext <TEntity> editContext)
        {
            var list = GetListForParent(editContext.Parent);

            var newEntity = (TEntity)editContext.Entity;

            var index = list.FindIndex(x => x.Id == editContext.Entity.Id);

            if (index == -1)
            {
                list.Add(newEntity);
            }
            else
            {
                list.Insert(index, newEntity);
                list.RemoveAt(index + 1);
            }

            await HandleRelationsAsync(newEntity, editContext.GetRelationContainer());

            _mediator.NotifyEvent(this, new MessageEventArgs(MessageType.Success, "Entity updated."));
        }
예제 #26
0
 /// <summary>
 /// Default ctor
 /// </summary>
 public ContextMenuBuilder(IPackage package, IEditContext context)
 {
     this.package = package;
     this.context = context;
 }
예제 #27
0
 public override Task UpdateAsync(IEditContext <TEntity> editContext)
 => DoRequestAsync(CreateRequest(HttpMethod.Put, $"entity/{editContext.Entity.Id}", new EditContextModel <TEntity>(editContext)));
예제 #28
0
 public override Task <TEntity?> InsertAsync(IEditContext <TEntity> editContext)
 => DoRequestAsync <TEntity>(CreateRequest(HttpMethod.Post, "entity", new EditContextModel <TEntity>(editContext)));
예제 #29
0
 public override async Task <TEntity?> InsertAsync(IEditContext <TEntity> editContext)
 => (await _apiRepositoryHelper.DoRequestAsync <EntityModel <TEntity> >(_apiRepositoryHelper.CreateRequest(HttpMethod.Post, "entity", new EditContextModel <TEntity>(editContext))))?.Entity;
예제 #30
0
		public abstract void Apply(IEditContext context);
예제 #31
0
 /// <summary>
 /// This method updates an existing entity in the database.
 ///
 /// The editContext parameter contains the state of the form at the time of saving, allowing to check which property was edited.
 ///
 /// The relations parameter contains all the relations that are set to this entity.
 /// </summary>
 /// <param name="editContext"></param>
 /// <returns></returns>
 public abstract Task UpdateAsync(IEditContext <TEntity> editContext);
예제 #32
0
		public virtual bool AppliesTo(IEditContext context)
		{
			return Condition == null || Condition.IsMatch(context.DataSet);
		}
예제 #33
0
 public override Task UpdateAsync(IEditContext <TEntity> editContext)
 => _apiRepositoryHelper.DoRequestAsync(_apiRepositoryHelper.CreateRequest(HttpMethod.Put, $"entity/{editContext.Entity.Id}", new EditContextModel <TEntity>(editContext)));
예제 #34
0
 /// <summary>
 /// This method inserts a new entity in the database.
 ///
 /// The editContext parameter contains the state of the form at the time of saving, allowing to check which property was edited.
 ///
 /// The relations parameter contains all the relations that are set to this entity.
 /// </summary>
 /// <param name="editContext"></param>
 /// <returns></returns>
 public abstract Task <TEntity?> InsertAsync(IEditContext <TEntity> editContext);