public static Icon Put(TextureRegion2D region, [CallerLineNumber] int id = 0, bool isAbsoluteId = false) { // 1. Check if Icon with id already exists. // a. If already exists. Get it. // b If not, create it. // 4. Ping it. id = GuiHelper.CurrentIMGUI.CreateId(id, isAbsoluteId); GuiHelper.CurrentIMGUI.TryGetValue(id, out IComponent c); Icon a; if (c is Icon) { a = (Icon)c; a.Region = region; } else { a = new Icon(id, region); } IParent?parent = GuiHelper.CurrentIMGUI.GrabParent(a); if (a.LastPing != InputHelper.CurrentFrame) { a.LastPing = InputHelper.CurrentFrame; if (parent != null) { a.Index = parent.NextIndex(); } } return(a); }
public override Task <PersonCmsModel> NewAsync(IParent?parent, Type?variantType = null) { return(Task.FromResult(new PersonCmsModel { ParentId = parent?.Entity.Id })); }
public override Task ReorderAsync(string?beforeId, string id, IParent?parent) { var parentId = parent?.Entity.Id ?? string.Empty; var entity = _data[parentId].FirstOrDefault(x => x.Id == id); if (entity == null) { return(Task.CompletedTask); } _data[parentId].Remove(entity); if (string.IsNullOrWhiteSpace(beforeId)) { _data[parentId].Add(entity); } else { var index = _data[parentId].FindIndex(x => x.Id == beforeId); _data[parentId].Insert(index, entity); } _mediator.NotifyEvent(this, new MessageEventArgs(MessageType.Success, "Entities reordered.")); return(Task.CompletedTask); }
async Task <IEntity?> IRepository.InternalInsertAsync(IParent?parent, IEntity entity, IRelationContainer?relations) { var data = (await InsertAsync(parent, (TEntity)entity, relations)) as IEntity; NotifyUpdate(); return(data); }
public Task SetEntityAsync(FormEditContext editContext, IParent?parent) { _editContext = editContext; _parent = parent; var data = _relatedElementsGetter?.Getter(_property.Getter(_editContext.Entity)) ?? _property.Getter(_editContext.Entity); if (data is IEnumerable <IEntity> entityCollection) { _relatedIds = entityCollection.Select(x => (object)x.Id !).ToList(); } else if (data is IEnumerable <object> objectCollection) { _relatedIds = objectCollection.ToList(); } else if (data is IEnumerable enumerable && data is not string) { var list = new List <object>(); foreach (var element in enumerable) { if (element != null) { list.Add(element); } } _relatedIds = list; } return(Task.CompletedTask); }
public IEditContext GetEditContextWrapper( UsageType usageType, EntityState entityState, IEntity updatedEntity, IEntity referenceEntity, IParent?parent, IEnumerable <(string propertyName, string typeName, IEnumerable <object> elements)> relations)
public override Task <IEnumerable <TEntity> > GetAllAsync(IParent?parent, IView <TEntity> view) { var dataQuery = GetListForParent(parent).AsQueryable(); dataQuery = view.ApplyDataView(dataQuery); if (view.SearchTerm != null) { var stringProperties = typeof(TEntity).GetProperties().Where(x => x.PropertyType == typeof(string)).ToList(); // this is not a very fast or sensible search function, but it's just an example that works for all entities dataQuery = dataQuery .Where(x => stringProperties .Any(property => (property.GetValue(x) as string) != null ? ((string)property.GetValue(x) !).Contains(view.SearchTerm, StringComparison.InvariantCultureIgnoreCase) : false)); } dataQuery = view.ApplyOrder(dataQuery); var dataQueryResult = dataQuery .Skip(view.Skip) .Take(view.Take + 1) .ToList(); var data = dataQueryResult .Take(view.Take); view.HasMoreData(dataQueryResult.Count > view.Take); return(Task.FromResult(data)); }
public override Task <IEnumerable <TEntity> > GetAllAsync(IParent?parent, IQuery <TEntity> query) { var dataQuery = GetListForParent(parent).AsQueryable(); if (query.DataViewExpression != null) { dataQuery = dataQuery.Where(query.DataViewExpression); } if (query.SearchTerm != null) { // this is not a very useful search function, but it's just an example dataQuery = dataQuery.Where(x => x.Id.Contains(query.SearchTerm)); } dataQuery = query.ApplyOrder(dataQuery); var data = dataQuery .Skip(query.Skip) .Take(query.Take) .ToList() .Select(x => (TEntity)x.Clone()); query.HasMoreData(GetListForParent(parent).Count > (query.Skip + query.Take)); return(Task.FromResult(data)); }
public override Task <IEnumerable <BlobContainerCmsModel> > GetAllAsync(IParent?parent, IQuery <BlobContainerCmsModel> query) { var containers = _client.ListContainers(query.SearchTerm); return(Task.FromResult(containers.Skip(query.Skip).Take(query.Take).Select(x => new BlobContainerCmsModel { Name = x.Name }))); }
internal EditContext(string collectionAlias, IEntity entity, IParent?parent, UsageType usageType, IServiceProvider serviceProvider) { CollectionAlias = collectionAlias; Entity = entity ?? throw new ArgumentNullException(nameof(entity)); Parent = parent; UsageType = usageType; _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); }
public override Task DeleteAsync(string id, IParent?parent) { GetListForParent(parent).RemoveAll(x => x.Id == id); _mediator.NotifyEvent(this, new MessageEventArgs(MessageType.Success, "Entity deleted.")); return(Task.CompletedTask); }
public Task <IEditContext> GetEditContextWrapperAsync( UsageType usageType, EntityState entityState, Type repositoryEntityType, IEntity updatedEntity, IEntity referenceEntity, IParent?parent, IEnumerable <(string propertyName, string typeName, IEnumerable <object> elements)> relations)
public override async Task DeleteAsync(string id, IParent?parent) { int.TryParse(id, out var entityId); var country = await _dbContext.Countries.FirstOrDefaultAsync(x => x.Id == entityId); _dbContext.Countries.Remove(country); await _dbContext.SaveChangesAsync(); }
public override async Task DeleteAsync(string id, IParent?parent) { int.TryParse(id, out var entityId); var person = await _dbContext.People.FirstOrDefaultAsync(x => x.Id == entityId); _dbContext.People.Remove(person); await _dbContext.SaveChangesAsync(); }
public static NavigationRequest NavigateToCollection(string collectionAlias, IParent?parent) { return(new NavigationRequest(collectionAlias) { ParentPath = parent?.GetParentPath(), IsEdit = true, IsList = true }); }
public override async Task DeleteAsync(string id, IParent?parent) { if (!(parent.GetRootParent()?.Entity is BlobContainerCmsModel container)) { throw new InvalidOperationException(); } await _client.GetContainerReference(container.Name).GetBlockBlobReference(id).DeleteIfExistsAsync(); }
public override Task <TEntity> NewAsync(IParent?parent, Type?variantType = null) { if (variantType != null) { return(Task.FromResult((TEntity)Activator.CreateInstance(variantType) !)); } return(Task.FromResult(new TEntity())); }
public ListContext(string collectionAlias, FormEditContext protoEditContext, IParent?parent, UsageType usageType, List <FormEditContext>?editContexts, IServiceProvider serviceProvider) { CollectionAlias = collectionAlias ?? throw new ArgumentNullException(nameof(collectionAlias)); ProtoEditContext = protoEditContext ?? throw new ArgumentNullException(nameof(protoEditContext)); Parent = parent; UsageType = usageType; EditContexts = editContexts ?? new List <FormEditContext>(); ServiceProvider = serviceProvider; }
public ReorderModel(string?beforeId, string id, IParent?parent) { BeforeId = beforeId; Subject = new EntityDescriptorModel { Id = id, ParentPath = parent?.GetParentPath()?.ToPathString() }; }
public override Task <IEnumerable <BlobItemCmsModel> > GetAllAsync(IParent?parent, IQuery <BlobItemCmsModel> query) { if (!(parent.GetRootParent()?.Entity is BlobContainerCmsModel container)) { throw new InvalidOperationException(); } var parentBlob = parent?.Entity as BlobItemCmsModel; var blobs = _client.GetContainerReference(container.Name).ListBlobsSegmented(parentBlob?.Name, false, BlobListingDetails.None, default, default, default, default);
public override async Task <TEntity?> InsertAsync(IParent?parent, TEntity entity, IRelationContainer?relations) { entity.Id = new Random().Next(0, int.MaxValue).ToString(); await HandleRelationsAsync(entity, relations); GetListForParent(parent).Add(entity); return((TEntity)entity.Clone()); }
public override Task <TCmsEntity?> GetByIdAsync(string id, IParent?parent) { var entity = (TEntity?)GetListForParent(parent).FirstOrDefault(x => x.Id == id)?.Clone(); if (entity == null) { return(Task.FromResult(default(TCmsEntity))); } return(Task.FromResult(_converter.Convert(entity)) !); }
private List <TEntity> GetListForParent(IParent?parent) { var pId = parent?.Entity.Id ?? string.Empty; if (!_data.ContainsKey(pId)) { _data[pId] = new List <TEntity>(); } return(_data[pId]); }
public override async Task <TEntity?> GetByIdAsync(string id, IParent?parent) { var entity = (TEntity?)GetListForParent(parent).FirstOrDefault(x => x.Id == id); if (entity == null) { entity = (TEntity?)(await NewAsync(parent, default)); entity !.Id = id; } return(entity); }
public override async Task <IEnumerable <TEntity> > GetAllAsync(IParent?parent, IQuery <TEntity> query) { var results = await _apiRepositoryHelper.DoRequestAsync <EntitiesModel <TEntity> >(_apiRepositoryHelper.CreateRequest(HttpMethod.Post, "all", new ParentQueryModel(parent, query))); if (results == default) { return(Enumerable.Empty <TEntity>()); } query.HasMoreData(results.MoreDataAvailable); return(results.Entities.Select(x => x.Entity)); }
public override async Task <BlobContainerCmsModel?> GetByIdAsync(string id, IParent?parent) { var container = _client.GetContainerReference(id); if (await container.ExistsAsync()) { return(new BlobContainerCmsModel { Name = container.Name }); } else { return(default);
public override async Task UpdateAsync(string id, IParent?parent, TEntity entity, IRelationContainer?relations) { var list = GetListForParent(parent); var index = list.FindIndex(x => x.Id == id); var newEntity = (TEntity)entity.Clone(); await HandleRelationsAsync(newEntity, relations); list.Insert(index, newEntity); list.RemoveAt(index + 1); }
public ParentQueryModel(IParent?parent, IQuery query) : this(parent) { Skip = query.Skip; Take = query.Take; SearchTerm = query.SearchTerm; ActiveTab = query.ActiveTab; CollectionAlias = query.CollectionAlias ?? throw new ArgumentNullException(nameof(CollectionAlias)); OrderBys = query.ActiveOrderBys .Select(x => new OrderModel { PropertyName = x.OrderByExpression.PropertyName, Fingerprint = x.OrderByExpression.Fingerprint, OrderByType = x.OrderByType }); }
public ApiEditContextWrapper( UsageType usageType, EntityState entityState, TEntity entity, TEntity referenceEntity, IParent?parent, IRelationContainer relationContainer, IServiceProvider serviceProvider) { UsageType = usageType; EntityState = entityState; Entity = entity; Parent = parent; _relationContainer = relationContainer; _formState = new FormState(entity, serviceProvider); _formState.PopulatePropertyStatesUsingReferenceEntity(referenceEntity); }
internal FormEditContext( string collectionAlias, string repositoryAlias, string entityVariantAlias, IEntity entity, IParent?parent, UsageType usageType, IServiceProvider serviceProvider) { CollectionAlias = collectionAlias ?? throw new ArgumentNullException(nameof(collectionAlias)); RepositoryAlias = repositoryAlias ?? throw new ArgumentNullException(nameof(repositoryAlias)); EntityVariantAlias = entityVariantAlias ?? throw new ArgumentNullException(nameof(entityVariantAlias)); Entity = entity ?? throw new ArgumentNullException(nameof(entity)); Parent = parent; UsageType = usageType; FormState = new FormState(Entity, serviceProvider); }