public static IRequest <CreateRecordRequest, CreateRecordResponse> CreateRecords(IHrbcFieldIdResolver fieldIdResolver, IEnumerable <CreateRecordRequest.IContentBuilder> records) { return(CreateRecordRequest.Builder().Append(records.Select(builder => builder.Build())).WithFieldIdResolver(fieldIdResolver)); }
/// <summary> /// Get an equivielent request with the specified field id resolver /// </summary> public CreateRecordRequest WithFieldIdResolver(IHrbcFieldIdResolver resolver) { return(new CreateRecordRequest { GroupedData = GroupedData, References = References, FieldIdResolver = resolver }); }
public static IRequest <CreateRecordRequest, CreateRecordResponse> CreateRecords(IHrbcFieldIdResolver fieldIdResolver, IEnumerable <CreateRecordRequest.Contents> records) { return(CreateRecordRequest.Builder().Append(records).WithFieldIdResolver(fieldIdResolver)); }
public IRequest <CreateRecordRequest, CreateRecordResponse> WithFieldIdResolver(IHrbcFieldIdResolver resolver) { return(new Request <CreateRecordRequest, CreateRecordResponse>(HandlerName, new CreateRecordRequest { GroupedData = ResolveDependancies(), FieldIdResolver = resolver, References = references.ToDictionary(entry => entry.Key, entry => entry.Value) })); }
internal UpdateRecordRequest(IReadOnlyList <Contents> data, IHrbcFieldIdResolver resolver) { Data = data; FieldIdResolver = resolver; }
public IRequest <UpdateRecordRequest, UpdateRecordResponse> WithFieldIdResolver(IHrbcFieldIdResolver resolvers) { return(new Request <UpdateRecordRequest, UpdateRecordResponse>(HandlerName, new UpdateRecordRequest(content.Values.Aggregate(new List <Contents>(), (list, entry) => { list.AddRange(entry); return list; }), resolvers))); }
/// <summary> /// Create a request that is equivelent to this one, but with given mappers. /// </summary> /// <param name="resolver">The resolver to use</param> /// <returns>The request</returns> public UpdateRecordRequest WithFieldIdResolver(IHrbcFieldIdResolver resolver) { return(new UpdateRecordRequest(Data, resolver)); }
private async Task <KeyValuePair <Json.CreateRecordRequest, Dictionary <int, Dictionary <int, Guid> > > > BuildRequest(IHrbcFieldIdResolver resolver, IEnumerable <CreateRecordRequest.Contents> data, Dictionary <object, ulong> references) { var resultMapping = new Dictionary <int, Dictionary <int, Guid> >(); var fieldMapping = await resolver.IdResolver(data.SelectMany(content => content.Entries.Keys).Distinct().ToArray()); var result = new List <CreateRecordRequestData>(); foreach (var grouping in data.GroupBy( entry => entry.Resource, (key, value) => new { Resource = (int)key, Values = value.Select(content => new { Id = content.Id, Entries = content.Entries.ToDictionary(entry => fieldMapping[entry.Key], entry => ResolveValue(entry.Key, entry.Value, references)) }) })) { var contentIdMapping = new Dictionary <int, Guid>(); var entries = new List <Dictionary <ulong, object> >(); foreach (var entry in grouping.Values) { contentIdMapping[entries.Count] = entry.Id; entries.Add(entry.Entries); } resultMapping.Add(result.Count, contentIdMapping); result.Add(new CreateRecordRequestData { ResourceId = grouping.Resource, Entries = entries }); } return(new KeyValuePair <Json.CreateRecordRequest, Dictionary <int, Dictionary <int, Guid> > >(new Json.CreateRecordRequest { Data = result }, resultMapping)); }