public virtual void Assimilate(DataPacket item) { item.Items.Clear(); item.Items = this.Items; switch (item.ModelAction) { case ModelActionOption.None: break; case ModelActionOption.Delete: break; case ModelActionOption.Post: case ModelActionOption.Put: case ModelActionOption.Get: if (this.Content != null && this.Content.Count >= 1 && this.Content[0] != null) { item.Buffer = GenericSerializer.ItemToByteArray(Content[0]); } break; case ModelActionOption.GetAll: case ModelActionOption.GetAllProjections: if (this.Content != null) { item.Buffer = GenericSerializer.ItemToByteArray(this.Content); } break; case ModelActionOption.ExecuteAction: break; case ModelActionOption.ExecuteCommand: item.Tables = new DataSet(); if (this.Data != null && this.Data.Tables.Count > 0) { item.Tables = this.Data; } break; default: break; } }
private IResponse <T, U> ExecuteRpc <T, U>(T model, ICriterion criterion) where T : class, new() { ICriterion c = criterion ?? new Criterion(); DataPacket packetRequest = _Serializer.Serialize <T>(Context, ModelActionOption.ExecuteAction, c.Items); packetRequest.Buffer = GenericSerializer.ItemToByteArray(model); //object o = GenericSerializer.Deserialize<T>(packetRequest.Buffer); //object oo = GenericSerializer.ByteArrayToItem(packetRequest.Buffer,typeof(T)); string s = Activator.CreateInstance <U>().GetType().AssemblyQualifiedName; packetRequest.Criteria.Add(XFConstants.Application.ActionResultModelType, s); DataPacket packetResponse = _DataPacketService.ExecuteRpc(packetRequest); IResponse <T, U> response = _Serializer.Deserialize <T, U>(packetResponse); return(response); }