private IResponse <T> ExecuteCommand <T>(DataSet ds, ICriterion criterion) where T : class, new() { IResponse <T> response = null; IRequest <T> request = new Message <T>(Context, ModelActionOption.ExecuteCommand) { Criterion = criterion }; if (eXtensibleConfig.CaptureMetrics) { ((Message <T>)request).Items.Add(new TypedItem(XFConstants.Metrics.Scope.ModelRequestService.Begin, DateTime.Now)); } response = Service.ExecuteCommand <T>(request); if (eXtensibleConfig.CaptureMetrics) { ((Message <T>)request).Items.Add(new TypedItem(XFConstants.Context.RequestEnd, DateTime.Now)); ((Message <T>)request).Items.Add(new TypedItem(XFConstants.Metrics.StatusCode, response.Status.Code)); ((Message <T>)request).Items.Add(new TypedItem(XFConstants.Metrics.StatusDesc, response.Status.Description)); eXMetric metric = response.ToMetric(); EventWriter.WriteMetric(metric); } return(response); }
private IResponse <T> Post <T>(T model) where T : class, new() { IResponse <T> response = null; IRequest <T> request = new Message <T>(Context, ModelActionOption.Post) { }; request.Model = model; response = Service.Post <T>(request); if (eXtensibleConfig.CaptureMetrics && !typeof(T).IsSubclassOf(typeof(eXBase))) { ((Message <T>)request).Items.Add(new TypedItem(XFConstants.Context.RequestEnd, DateTime.Now)); ((Message <T>)request).Items.Add(new TypedItem(XFConstants.Metrics.StatusCode, response.Status.Code)); ((Message <T>)request).Items.Add(new TypedItem(XFConstants.Metrics.StatusDesc, response.Status.Description)); eXMetric metric = response.ToMetric(); EventWriter.WriteMetric(metric); } return(response); }
private IResponse <T, U> ExecuteMany <T, U>(IEnumerable <T> list, ICriterion criterion) where T : class, new() { IResponse <T, U> response = null; IRequest <T> request = new Message <T, U>(Context, ModelActionOption.ExecuteMany) { Criterion = criterion }; //request.Model = list; request.Content = list; response = Service.ExecuteMany <T, U>(request); if (eXtensibleConfig.CaptureMetrics) { ((Message <T>)request).Items.Add(new TypedItem(XFConstants.Context.RequestEnd, DateTime.Now)); ((Message <T>)request).Items.Add(new TypedItem(XFConstants.Metrics.StatusCode, response.Status.Code)); ((Message <T>)request).Items.Add(new TypedItem(XFConstants.Metrics.StatusDesc, response.Status.Description)); eXMetric metric = response.ToMetric(); EventWriter.WriteMetric(metric); } return(response); }