/// <summary> /// Implement to provide data to the collection. /// </summary> protected sealed override void Update() { var endpoint = EndpointFactory.Build(_updateRequestType, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = JsonRepository.Execute <List <IJsonMember> >(Auth, endpoint, _additionalParameters); Items.Clear(); Items.AddRange(newData.Select(jm => { var member = jm.GetFromCache <Member>(Auth); member.Json = jm; return(member); })); }
public void Init() { this.TestFilePath = $"{AppDomain.CurrentDomain.BaseDirectory.Replace(@"bin\Debug", "TestFiles")}\\Destiny\\"; this.TestContext = new LinkerSharpContext(); var TestFactory = new EndpointFactory <IProducer>(); this.TestProducer = TestFactory.GetFrom($"file->{this.TestFilePath}", this.TestContext); this.TestMessage = new TransmissionMessageDTO() { Content = "this is a test file.", Name = "Testfile.txt", Destiny = this.TestFilePath }; }
/// <summary> /// Implement to provide data to the collection. /// </summary> protected sealed override void Update() { var endpoint = EndpointFactory.Build(EntityRequestType.Card_Read_CheckLists, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = JsonRepository.Execute <List <IJsonCheckList> >(Auth, endpoint); Items.Clear(); Items.AddRange(newData.Select(jc => { var checkList = jc.GetFromCache <CheckList>(Auth); checkList.Json = jc; return(checkList); })); }
/// <summary> /// Implement to provide data to the collection. /// </summary> protected sealed override void Update() { var endpoint = EndpointFactory.Build(EntityRequestType.Board_Read_Labels, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = JsonRepository.Execute <List <IJsonLabel> >(Auth, endpoint); Items.Clear(); Items.AddRange(newData.Select(jb => { var board = jb.GetFromCache <Label>(Auth); board.Json = jb; return(board); })); }
/// <summary> /// Removes a member from a board. /// </summary> /// <param name="member">The member to remove.</param> public void Remove(Member member) { var error = NotNullRule <Member> .Instance.Validate(null, member); if (error != null) { throw new ValidationException <Member>(member, new[] { error }); } var endpoint = EndpointFactory.Build(EntityRequestType.Board_Write_RemoveMember, new Dictionary <string, object> { { "_id", OwnerId }, { "_memberId", member.Id } }); JsonRepository.Execute(Auth, endpoint); }
public void add(EndpointFactory factory) { lock (this) { for (int i = 0; i < _factories.Count; i++) { EndpointFactory f = (EndpointFactory)_factories[i]; if (f.type() == factory.type()) { Debug.Assert(false); } } _factories.Add(factory); } }
protected override async Task SubmitData(IJsonCustomField json, CancellationToken ct) { var parameter = TrelloConfiguration.JsonFactory.Create <IJsonParameter>(); parameter.Object = json; json.Type = Data.Type; var endpoint = EndpointFactory.Build(EntityRequestType.CustomField_Write_Update, new Dictionary <string, object> { { "_cardId", _ownerId }, { "_id", Data.Definition.Id }, }); var newData = await JsonRepository.Execute <IJsonParameter, IJsonCustomField>(Auth, endpoint, parameter, ct); Merge(newData); }
public void AddressScheme_NoMatch_CaseSensitive() { // Arrange var endpoint = EndpointFactory.CreateRouteEndpoint( "/a", metadata: new object[] { new EndpointNameMetadata("name1"), new SuppressLinkGenerationMetadata(), }); var addressScheme = CreateAddressScheme(endpoint); // Act var endpoints = addressScheme.FindEndpoints("NAME1"); // Assert Assert.Empty(endpoints); }
/// <summary> /// Implement to provide data to the collection. /// </summary> protected sealed override void Update() { var endpoint = EndpointFactory.Build(EntityRequestType.Card_Read_Attachments, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = JsonRepository.Execute <List <IJsonAttachment> >(Auth, endpoint); Items.Clear(); Items.AddRange(newData.Select(ja => { var attachment = TrelloConfiguration.Cache.Find <Attachment>(a => a.Id == ja.Id) ?? new Attachment(ja, OwnerId, Auth); attachment.Json = ja; return(attachment); })); }
public EndpointFactory get(short type) { lock (this) { for (int i = 0; i < _factories.Count; i++) { EndpointFactory f = (EndpointFactory)_factories[i]; if (f.type() == type) { return(f); } } return(null); } }
/// <summary> /// Manually updates the collection's data. /// </summary> /// <param name="ct">(Optional) A cancellation token for async processing.</param> public sealed override async Task Refresh(CancellationToken ct = default(CancellationToken)) { var endpoint = EndpointFactory.Build(_requestType, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonPowerUpData> >(Auth, endpoint, ct); Items.Clear(); Items.AddRange(newData.Select(jn => { var powerUp = jn.GetFromCache <PowerUpData, IJsonPowerUpData>(Auth); powerUp.Json = jn; return(powerUp); })); }
public async Task Delete(CancellationToken ct) { if (_deleted) { return; } CancelUpdate(); var endpoint = EndpointFactory.Build(EntityRequestType.Label_Write_Delete, new Dictionary <string, object> { { "_id", Data.Id } }); await JsonRepository.Execute(Auth, endpoint, ct); _deleted = true; }
public void add(EndpointFactory factory) { lock(this) { for(int i = 0; i < _factories.Count; i++) { EndpointFactory f = (EndpointFactory)_factories[i]; if(f.type() == factory.type()) { Debug.Assert(false); } } _factories.Add(factory); } }
/// <summary> /// Implement to provide data to the collection. /// </summary> protected override void Update() { var endpoint = EndpointFactory.Build(_requestType, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = JsonRepository.Execute <List <IJsonPowerUpData> >(Auth, endpoint); Items.Clear(); Items.AddRange(newData.Select(jn => { var powerUp = jn.GetFromCache <PowerUpData>(Auth); powerUp.Json = jn; return(powerUp); })); }
/// <summary> /// Implement to provide data to the collection. /// </summary> protected sealed override void Update() { IncorporateLimit(_additionalParameters); var endpoint = EndpointFactory.Build(_updateRequestType, _requestParameters); var newData = JsonRepository.Execute <List <IJsonCard> >(Auth, endpoint, _additionalParameters); Items.Clear(); Items.AddRange(newData.Select(jc => { var card = jc.GetFromCache <Card>(Auth); card.Json = jc; return(card); })); }
public void AddressScheme_UnsuppressedEndpoint_IsUsed() { // Arrange var endpoint = EndpointFactory.CreateRouteEndpoint( "/a", metadata: new object[] { new SuppressLinkGenerationMetadata(), new EncourageLinkGenerationMetadata(), new RouteNameMetadata("a"), }); // Act var addressScheme = CreateAddressScheme(endpoint); // Assert var allMatches = GetMatchesWithRequiredValuesPlusNamedMatches(addressScheme); Assert.Same(endpoint, Assert.Single(allMatches).Entry.Data); }
/// <summary> /// Adds a label to the collection. /// </summary> /// <param name="name">The name of the label.</param> /// <param name="color">The color of the label to add.</param> /// <returns>The <see cref="Label"/> generated by Trello.</returns> public Label Add(string name, LabelColor?color) { var json = TrelloConfiguration.JsonFactory.Create <IJsonLabel>(); json.Name = name ?? string.Empty; json.Color = color; json.ForceNullColor = !color.HasValue; json.Board = TrelloConfiguration.JsonFactory.Create <IJsonBoard>(); json.Board.Id = OwnerId; var endpoint = EndpointFactory.Build(EntityRequestType.Board_Write_AddLabel); var newData = JsonRepository.Execute(Auth, endpoint, json); return(new Label(newData, Auth)); }
/// <summary> /// Implement to provide data to the collection. /// </summary> protected sealed override void Update() { var endpoint = EndpointFactory.Build(EntityRequestType.Organization_Read_Memberships, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = JsonRepository.Execute <List <IJsonOrganizationMembership> >(Auth, endpoint, _additionalParameters); Items.Clear(); Items.AddRange(newData.Select(jom => { var membership = TrelloConfiguration.Cache.Find <OrganizationMembership>(c => c.Id == jom.Id) ?? new OrganizationMembership(jom, OwnerId, Auth); membership.Json = jom; return(membership); })); }
internal sealed override async Task PerformRefresh(bool force, CancellationToken ct) { var endpoint = EndpointFactory.Build(EntityRequestType.Organization_Read_Memberships, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonOrganizationMembership> >(Auth, endpoint, ct, AdditionalParameters); Items.Clear(); Items.AddRange(newData.Select(jom => { var membership = TrelloConfiguration.Cache.Find <OrganizationMembership>(jom.Id) ?? new OrganizationMembership(jom, OwnerId, Auth); membership.Json = jom; return(membership); })); }
public void GetPathByRouteValues_UsesFirstTemplateThatSucceeds(string[] routeNames, string[] routeValues, string expectedPath) { // Arrange var endpointControllerAction = EndpointFactory.CreateRouteEndpoint( "Home/Index", order: 3, defaults: new { controller = "Home", action = "Index", }, requiredValues: new { controller = "Home", action = "Index", }); var endpointController = EndpointFactory.CreateRouteEndpoint( "Home", order: 2, defaults: new { controller = "Home", action = "Index", }, requiredValues: new { controller = "Home", action = "Index", }); var endpointEmpty = EndpointFactory.CreateRouteEndpoint( "", order: 1, defaults: new { controller = "Home", action = "Index", }, requiredValues: new { controller = "Home", action = "Index", }); // This endpoint should be used to generate the link when an id is present var endpointControllerActionParameter = EndpointFactory.CreateRouteEndpoint( "Home/Index/{id}", order: 0, defaults: new { controller = "Home", action = "Index", }, requiredValues: new { controller = "Home", action = "Index", }); var linkGenerator = CreateLinkGenerator(endpointControllerAction, endpointController, endpointEmpty, endpointControllerActionParameter); var httpContext = CreateHttpContext(); httpContext.Request.RouteValues = new RouteValueDictionary(new { controller = "Home", action = "Index" }); var values = new RouteValueDictionary(); for (int i = 0; i < routeNames.Length; i++) { values[routeNames[i]] = routeValues[i]; } // Act var generatedPath = linkGenerator.GetPathByRouteValues( httpContext, routeName: null, values: values); // Assert Assert.Equal(expectedPath, generatedPath); }
public void Init() { this.TestFilePath = $"{AppDomain.CurrentDomain.BaseDirectory.Replace(@"bin\Debug", "TestFiles")}\\Destiny\\"; this.TestContext = new LinkerSharpContext(); var TestFactory = new EndpointFactory <IProducer>(); this.TestProducer = new FTPProducer($"ftp->{this.TestFilePath}", this.TestContext, new FTPConnectorMock(FTPConnectorMock.Behaviour.SUCCESS)); this.TestMessage = new TransmissionMessageDTO() { Content = "This is a test file.", Name = "Testfile.txt", Destiny = this.TestFilePath }; }
internal sealed override async Task PerformRefresh(bool force, CancellationToken ct) { var endpoint = EndpointFactory.Build(EntityRequestType.Board_Read_CustomFields, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonCustomFieldDefinition> >(Auth, endpoint, ct, AdditionalParameters); Items.Clear(); Items.AddRange(newData.Select(ja => { var field = TrelloConfiguration.Cache.Find <CustomFieldDefinition>(ja.Id) ?? new CustomFieldDefinition(ja, Auth); field.Json = ja; return(field); })); }
protected override void SubmitData(IJsonCheckItem json) { // Checklist should be downloaded already since CheckItem ctor is internal, // but allow for the case where it has not been anyway. var checkList = TrelloConfiguration.Cache.Find <CheckList>(cl => cl.Id == _ownerId) ?? new CheckList(_ownerId); // This may make a call to get the card, but it can't be avoided. We need its ID. var endpoint = EndpointFactory.Build(EntityRequestType.CheckItem_Write_Update, new Dictionary <string, object> { { "_cardId", checkList.Card.Id }, { "_checklistId", _ownerId }, { "_id", Data.Id }, }); var newData = JsonRepository.Execute(Auth, endpoint, json); Merge(newData); }
/// <summary> /// Removes a member from the collection. /// </summary> /// <param name="ct">(Optional) A cancellation token for async processing.</param> /// <param name="member">The member to remove.</param> public async Task Remove(IMember member, CancellationToken ct = default(CancellationToken)) { var error = NotNullRule <IMember> .Instance.Validate(null, member); if (error != null) { throw new ValidationException <IMember>(member, new[] { error }); } var endpoint = EndpointFactory.Build(EntityRequestType.Card_Write_RemoveMember, new Dictionary <string, object> { { "_id", OwnerId }, { "_memberId", member.Id } }); await JsonRepository.Execute(Auth, endpoint, ct); Items.Remove(member); }
private static string GetId() { var endpoint = EndpointFactory.Build(EntityRequestType.Service_Read_Me); _myJson = JsonRepository.Execute <IJsonMember>(TrelloAuthorization.Default, endpoint); // If this object exists in the cache already as a regular Member, it needs to be replaced. var meAsMember = TrelloConfiguration.Cache.Find <Member>(m => m.Id == _myJson.Id); if (meAsMember != null) { TrelloConfiguration.Cache.Remove(meAsMember); } return(_myJson.Id); }
public void Delete() { if (_deleted) { return; } CancelUpdate(); var endpoint = EndpointFactory.Build(EntityRequestType.Organization_Write_Delete, new Dictionary <string, object> { { "_id", Data.Id } }); JsonRepository.Execute(Auth, endpoint); _deleted = true; }
/// <summary> /// Manually updates the collection's data. /// </summary> /// <param name="ct">(Optional) A cancellation token for async processing.</param> public sealed override async Task Refresh(CancellationToken ct = default(CancellationToken)) { IncorporateLimit(_additionalParameters); _requestParameters["_id"] = OwnerId; var endpoint = EndpointFactory.Build(_updateRequestType, _requestParameters); var newData = await JsonRepository.Execute <List <IJsonCard> >(Auth, endpoint, ct, _additionalParameters); Items.Clear(); Items.AddRange(newData.Select(jc => { var card = jc.GetFromCache <Card, IJsonCard>(Auth); card.Json = jc; return(card); })); }
/// <summary> /// Manually updates the collection's data. /// </summary> /// <param name="ct">(Optional) A cancellation token for async processing.</param> public sealed override async Task Refresh(CancellationToken ct = default(CancellationToken)) { var endpoint = EndpointFactory.Build(EntityRequestType.CustomFieldDefinition_Read_Options, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonCustomDropDownOption> >(Auth, endpoint, ct); Items.Clear(); Items.AddRange(newData.Select(jb => { var option = jb.GetFromCache <DropDownOption, IJsonCustomDropDownOption>(Auth); option.Json = jb; return(option); })); }
internal sealed override async Task PerformRefresh(bool force, CancellationToken ct) { var endpoint = EndpointFactory.Build(EntityRequestType.Card_Read_Labels, new Dictionary <string, object> { { "_id", OwnerId } }); var newData = await JsonRepository.Execute <List <IJsonLabel> >(Auth, endpoint, ct, AdditionalParameters); Items.Clear(); Items.AddRange(newData.Select(ja => { var label = ja.GetFromCache <Label, IJsonLabel>(Auth); label.Json = ja; return(label); })); }
public void GetTemplateBinder_CanCache() { // Arrange var endpoint1 = EndpointFactory.CreateRouteEndpoint("{controller}/{action}/{id}", metadata: new object[] { new IntMetadata(1), }); var dataSource = new DynamicEndpointDataSource(endpoint1); var linkGenerator = CreateLinkGenerator(dataSources: new[] { dataSource }); var expected = linkGenerator.GetTemplateBinder(endpoint1); // Act var actual = linkGenerator.GetTemplateBinder(endpoint1); // Assert Assert.Same(expected, actual); }
internal static async Task <string> GetId(TrelloAuthorization auth, CancellationToken ct) { var endpoint = EndpointFactory.Build(EntityRequestType.Service_Read_Me); _myJson = await JsonRepository.Execute <IJsonMember>(auth, endpoint, ct); // If this object exists in the cache already as a regular Member, it needs to be replaced. var meAsMember = TrelloConfiguration.Cache.Find <Member>(_myJson.Id); if (meAsMember != null) { TrelloConfiguration.Cache.Remove(meAsMember); } return(_myJson.Id); }
public WSEndpointFactory(ProtocolInstance instance, EndpointFactory del) { _instance = instance; _delegate = del; }
public EndpointFactory clone(ProtocolInstance instance, EndpointFactory del) { return new TcpEndpointFactory(instance); }
// // Register an EndpointFactory. // public void addEndpointFactory(EndpointFactory factory) { _instance.endpointFactoryManager().add(factory); }
public IEndpointFactory Build() { var endpointFactory = new EndpointFactory(_transportFactories, _endpointBuilders, _defaults); return endpointFactory; }