예제 #1
0
    public Transformer_MessagesBodyTransformer()
    {
        this.ViewText = @"from message in results
select new {
	message = message,
	metadata = message.ProcessingAttempts != null ? (DynamicEnumerable.LastOrDefault(message.ProcessingAttempts)).MessageMetadata : message.MessageMetadata
} into this0
select new {
	MessageId = this0.metadata[""MessageId""],
	Body = this0.metadata[""Body""],
	BodySize = ((int)this0.metadata[""ContentLength""]),
	ContentType = this0.metadata[""ContentType""],
	BodyNotStored = ((bool)this0.metadata[""BodyNotStored""])
}
";
        this.TransformResultsDefinition = results =>
                                          from message in ((IEnumerable <dynamic>)results)
                                          select new {
            message  = message,
            metadata = message.ProcessingAttempts != null ? (DynamicEnumerable.LastOrDefault(message.ProcessingAttempts)).MessageMetadata : message.MessageMetadata
        } into this0
            select new {
            MessageId     = this0.metadata["MessageId"],
            Body          = this0.metadata["Body"],
            BodySize      = ((int)this0.metadata["ContentLength"]),
            ContentType   = this0.metadata["ContentType"],
            BodyNotStored = ((bool)this0.metadata["BodyNotStored"])
        };
    }
    public Index_MessagesViewIndex()
    {
        this.ViewText = @"from message in docs.ProcessedMessages
select new {
	MessageId = ((string)message.MessageMetadata[""MessageId""]),
	MessageType = ((string)message.MessageMetadata[""MessageType""]),
	IsSystemMessage = ((bool)message.MessageMetadata[""IsSystemMessage""]),
	Status = ((bool)message.MessageMetadata[""IsRetried""]) ? 4 : 3,
	TimeSent = ((DateTime)message.MessageMetadata[""TimeSent""]),
	ProcessedAt = message.ProcessedAt,
	ReceivingEndpointName = ((message.MessageMetadata[""ReceivingEndpoint""])).Name,
	CriticalTime = ((TimeSpan?)message.MessageMetadata[""CriticalTime""]),
	ProcessingTime = ((TimeSpan?)message.MessageMetadata[""ProcessingTime""]),
	DeliveryTime = ((TimeSpan?)message.MessageMetadata[""DeliveryTime""]),
	Query = Enumerable.ToArray(DynamicEnumerable.Union(message.MessageMetadata.Select(_ => _.Value.ToString()), new string[] {
		String.Join("" "", message.Headers.Select(x => x.Value))
	})),
	ConversationId = ((string)message.MessageMetadata[""ConversationId""])
}";
        this.ForEntityNames.Add("ProcessedMessages");
        this.AddMapDefinition(docs =>
                              from message in ((IEnumerable <dynamic>)docs)
                              where string.Equals(message["@metadata"]["Raven-Entity-Name"], "ProcessedMessages", System.StringComparison.InvariantCultureIgnoreCase)
                              select new {
            MessageId             = ((string)message.MessageMetadata["MessageId"]),
            MessageType           = ((string)message.MessageMetadata["MessageType"]),
            IsSystemMessage       = ((bool)message.MessageMetadata["IsSystemMessage"]),
            Status                = ((bool)message.MessageMetadata["IsRetried"]) ? 4 : 3,
            TimeSent              = ((DateTime)message.MessageMetadata["TimeSent"]),
            ProcessedAt           = message.ProcessedAt,
            ReceivingEndpointName = ((message.MessageMetadata["ReceivingEndpoint"])).Name,
            CriticalTime          = ((TimeSpan?)message.MessageMetadata["CriticalTime"]),
            ProcessingTime        = ((TimeSpan?)message.MessageMetadata["ProcessingTime"]),
            DeliveryTime          = ((TimeSpan?)message.MessageMetadata["DeliveryTime"]),
            Query = Enumerable.ToArray(DynamicEnumerable.Union(message.MessageMetadata.Select((Func <dynamic, dynamic>)(_ => _.Value.ToString())), new string[] {
                String.Join(" ", message.Headers.Select((Func <dynamic, dynamic>)(x => x.Value)))
            })),
            ConversationId = ((string)message.MessageMetadata["ConversationId"]),
            __document_id  = message.__document_id
        });
        this.AddField("MessageId");
        this.AddField("MessageType");
        this.AddField("IsSystemMessage");
        this.AddField("Status");
        this.AddField("TimeSent");
        this.AddField("ProcessedAt");
        this.AddField("ReceivingEndpointName");
        this.AddField("CriticalTime");
        this.AddField("ProcessingTime");
        this.AddField("DeliveryTime");
        this.AddField("Query");
        this.AddField("ConversationId");
        this.AddField("__document_id");
        this.AddQueryParameterForMap("ProcessedAt");
        this.AddQueryParameterForMap("Name");
        this.AddQueryParameterForMap("__document_id");
        this.AddQueryParameterForReduce("ProcessedAt");
        this.AddQueryParameterForReduce("Name");
        this.AddQueryParameterForReduce("__document_id");
    }
    public Index_FailedMessageViewIndex()
    {
        this.ViewText = @"from message in docs.FailedMessages
select new {
	message = message,
	processingAttemptsLast = DynamicEnumerable.LastOrDefault(message.ProcessingAttempts)
} into this0
select new {
	MessageId = this0.processingAttemptsLast.MessageMetadata[""MessageId""],
	MessageType = this0.processingAttemptsLast.MessageMetadata[""MessageType""],
	Status = this0.message.Status,
	TimeSent = ((DateTime)this0.processingAttemptsLast.MessageMetadata[""TimeSent""]),
	ReceivingEndpointName = ((this0.processingAttemptsLast.MessageMetadata[""ReceivingEndpoint""])).Name,
	QueueAddress = this0.processingAttemptsLast.FailureDetails.AddressOfFailingEndpoint,
	TimeOfFailure = this0.processingAttemptsLast.FailureDetails.TimeOfFailure,
	LastModified = (this0.message[""@metadata""].Value<DateTime>(""Last-Modified"")).Ticks
}";
        this.ForEntityNames.Add("FailedMessages");
        this.AddMapDefinition(docs =>
                              from message in ((IEnumerable <dynamic>)docs)
                              where string.Equals(message["@metadata"]["Raven-Entity-Name"], "FailedMessages", System.StringComparison.InvariantCultureIgnoreCase)
                              select new {
            message = message,
            processingAttemptsLast = DynamicEnumerable.LastOrDefault(message.ProcessingAttempts),
            __document_id          = message.__document_id
        } into this0
                              select new {
            MessageId             = this0.processingAttemptsLast.MessageMetadata["MessageId"],
            MessageType           = this0.processingAttemptsLast.MessageMetadata["MessageType"],
            Status                = this0.message.Status,
            TimeSent              = ((DateTime)this0.processingAttemptsLast.MessageMetadata["TimeSent"]),
            ReceivingEndpointName = ((this0.processingAttemptsLast.MessageMetadata["ReceivingEndpoint"])).Name,
            QueueAddress          = this0.processingAttemptsLast.FailureDetails.AddressOfFailingEndpoint,
            TimeOfFailure         = this0.processingAttemptsLast.FailureDetails.TimeOfFailure,
            LastModified          = (this0.message["@metadata"].Value <DateTime>("Last-Modified")).Ticks,
            __document_id         = this0.__document_id
        });
        this.AddField("MessageId");
        this.AddField("MessageType");
        this.AddField("Status");
        this.AddField("TimeSent");
        this.AddField("ReceivingEndpointName");
        this.AddField("QueueAddress");
        this.AddField("TimeOfFailure");
        this.AddField("LastModified");
        this.AddField("__document_id");
        this.AddQueryParameterForMap("__document_id");
        this.AddQueryParameterForMap("message.Status");
        this.AddQueryParameterForMap("Name");
        this.AddQueryParameterForMap("processingAttemptsLast.FailureDetails.AddressOfFailingEndpoint");
        this.AddQueryParameterForMap("processingAttemptsLast.FailureDetails.TimeOfFailure");
        this.AddQueryParameterForMap("Ticks");
        this.AddQueryParameterForReduce("__document_id");
        this.AddQueryParameterForReduce("message.Status");
        this.AddQueryParameterForReduce("Name");
        this.AddQueryParameterForReduce("processingAttemptsLast.FailureDetails.AddressOfFailingEndpoint");
        this.AddQueryParameterForReduce("processingAttemptsLast.FailureDetails.TimeOfFailure");
        this.AddQueryParameterForReduce("Ticks");
    }
예제 #4
0
    public Transformer_FailedMessageViewTransformer()
    {
        this.ViewText = @"from failure in results
select new {
	failure = failure,
	rec = DynamicEnumerable.LastOrDefault(failure.ProcessingAttempts)
} into this0
select new {
	this0 = this0,
	edited = this0.rec.Headers[""ServiceControl.EditOf""] != null
} into this1
select new {
	Id = this1.this0.failure.UniqueMessageId,
	MessageType = this1.this0.rec.MessageMetadata[""MessageType""],
	IsSystemMessage = ((bool)this1.this0.rec.MessageMetadata[""IsSystemMessage""]),
	SendingEndpoint = this1.this0.rec.MessageMetadata[""SendingEndpoint""],
	ReceivingEndpoint = this1.this0.rec.MessageMetadata[""ReceivingEndpoint""],
	TimeSent = ((DateTime?)this1.this0.rec.MessageMetadata[""TimeSent""]),
	MessageId = this1.this0.rec.MessageMetadata[""MessageId""],
	Exception = this1.this0.rec.FailureDetails.Exception,
	QueueAddress = this1.this0.rec.FailureDetails.AddressOfFailingEndpoint,
	NumberOfProcessingAttempts = this1.this0.failure.ProcessingAttempts.Count,
	Status = this1.this0.failure.Status,
	TimeOfFailure = this1.this0.rec.FailureDetails.TimeOfFailure,
	LastModified = this1.this0.failure[""@metadata""][""Last-Modified""].Value<DateTime>(),
	Edited = this1.edited,
	EditOf = this1.edited ? this1.this0.rec.Headers[""ServiceControl.EditOf""] : """"
}
";
        this.TransformResultsDefinition = results =>
                                          from failure in ((IEnumerable <dynamic>)results)
                                          select new {
            failure = failure,
            rec     = DynamicEnumerable.LastOrDefault(failure.ProcessingAttempts)
        } into this0
            select new {
            this0  = this0,
            edited = this0.rec.Headers["ServiceControl.EditOf"] != null
        } into this1
            select new {
            Id                         = this1.this0.failure.UniqueMessageId,
            MessageType                = this1.this0.rec.MessageMetadata["MessageType"],
            IsSystemMessage            = ((bool)this1.this0.rec.MessageMetadata["IsSystemMessage"]),
            SendingEndpoint            = this1.this0.rec.MessageMetadata["SendingEndpoint"],
            ReceivingEndpoint          = this1.this0.rec.MessageMetadata["ReceivingEndpoint"],
            TimeSent                   = ((DateTime?)this1.this0.rec.MessageMetadata["TimeSent"]),
            MessageId                  = this1.this0.rec.MessageMetadata["MessageId"],
            Exception                  = this1.this0.rec.FailureDetails.Exception,
            QueueAddress               = this1.this0.rec.FailureDetails.AddressOfFailingEndpoint,
            NumberOfProcessingAttempts = this1.this0.failure.ProcessingAttempts.Count,
            Status                     = this1.this0.failure.Status,
            TimeOfFailure              = this1.this0.rec.FailureDetails.TimeOfFailure,
            LastModified               = this1.this0.failure["@metadata"]["Last-Modified"].Value <DateTime>(),
            Edited                     = this1.edited,
            EditOf                     = this1.edited ? this1.this0.rec.Headers["ServiceControl.EditOf"] : ""
        };
    }
예제 #5
0
    public Index_QueueAddressIndex()
    {
        this.ViewText = @"from message in docs.FailedMessages
select new {
	message = message,
	processingAttemptsLast = DynamicEnumerable.LastOrDefault(message.ProcessingAttempts)
} into this0
select new {
	PhysicalAddress = this0.processingAttemptsLast.FailureDetails.AddressOfFailingEndpoint,
	FailedMessageCount = 1
}
from result in results
group result by result.PhysicalAddress into g
select new {
	PhysicalAddress = g.Key,
	FailedMessageCount = Enumerable.Sum(g, m => ((int)m.FailedMessageCount))
}";
        this.ForEntityNames.Add("FailedMessages");
        this.AddMapDefinition(docs =>
                              from message in ((IEnumerable <dynamic>)docs)
                              where string.Equals(message["@metadata"]["Raven-Entity-Name"], "FailedMessages", System.StringComparison.InvariantCultureIgnoreCase)
                              select new {
            message = message,
            processingAttemptsLast = DynamicEnumerable.LastOrDefault(message.ProcessingAttempts),
            __document_id          = message.__document_id
        } into this0
                              select new {
            PhysicalAddress    = this0.processingAttemptsLast.FailureDetails.AddressOfFailingEndpoint,
            FailedMessageCount = 1,
            __document_id      = this0.__document_id
        });
        this.ReduceDefinition = results =>
                                from result in results
                                group result by result.PhysicalAddress into g
                                select new {
            PhysicalAddress    = g.Key,
            FailedMessageCount = Enumerable.Sum(g, (Func <dynamic, int>)(m => ((int)m.FailedMessageCount)))
        };

        this.GroupByExtraction = result => result.PhysicalAddress;
        this.AddField("PhysicalAddress");
        this.AddField("FailedMessageCount");
        this.AddQueryParameterForMap("__document_id");
        this.AddQueryParameterForMap("processingAttemptsLast.FailureDetails.AddressOfFailingEndpoint");
        this.AddQueryParameterForReduce("__document_id");
        this.AddQueryParameterForReduce("processingAttemptsLast.FailureDetails.AddressOfFailingEndpoint");
    }
예제 #6
0
    public Index_FailedMessageFacetsIndex()
    {
        this.ViewText = @"from failure in docs.FailedMessages
where failure.Status == 1
select new {
	failure = failure,
	t = ((DynamicEnumerable.LastOrDefault(failure.ProcessingAttempts)).MessageMetadata[""ReceivingEndpoint""])
} into this0
select new {
	Name = this0.t.Name,
	Host = this0.t.Host,
	MessageType = (DynamicEnumerable.LastOrDefault(this0.failure.ProcessingAttempts)).MessageMetadata[""MessageType""]
}";
        this.ForEntityNames.Add("FailedMessages");
        this.AddMapDefinition(docs =>
                              from failure in ((IEnumerable <dynamic>)docs)
                              where string.Equals(failure["@metadata"]["Raven-Entity-Name"], "FailedMessages", System.StringComparison.InvariantCultureIgnoreCase)
                              where failure.Status == 1
                              select new {
            failure       = failure,
            t             = ((DynamicEnumerable.LastOrDefault(failure.ProcessingAttempts)).MessageMetadata["ReceivingEndpoint"]),
            __document_id = failure.__document_id
        } into this0
                              select new {
            Name          = this0.t.Name,
            Host          = this0.t.Host,
            MessageType   = (DynamicEnumerable.LastOrDefault(this0.failure.ProcessingAttempts)).MessageMetadata["MessageType"],
            __document_id = this0.__document_id
        });
        this.AddField("Name");
        this.AddField("Host");
        this.AddField("MessageType");
        this.AddField("__document_id");
        this.AddQueryParameterForMap("__document_id");
        this.AddQueryParameterForMap("t.Name");
        this.AddQueryParameterForMap("t.Host");
        this.AddQueryParameterForReduce("__document_id");
        this.AddQueryParameterForReduce("t.Name");
        this.AddQueryParameterForReduce("t.Host");
    }
    public Index_EndpointsIndex()
    {
        this.ViewText = @"from message in docs.ProcessedMessages
select new {
	message = message,
	sending = (message.MessageMetadata[""SendingEndpoint""])
} into this0
select new {
	this0 = this0,
	receiving = (this0.message.MessageMetadata[""ReceivingEndpoint""])
} into this1
from endpoint in new[] {
	this1.this0.sending,
	this1.receiving
}
select new {
	this1 = this1,
	endpoint = endpoint
} into this2
where this2.endpoint != null
select new {
	Host = this2.endpoint.Host,
	HostId = this2.endpoint.HostId,
	Name = this2.endpoint.Name
}
from result in results
group result by new {
	Name = result.Name,
	HostId = result.HostId
} into grouped
select new {
	grouped = grouped,
	first = DynamicEnumerable.FirstOrDefault(grouped)
} into this0
select new {
	Host = this0.first.Host,
	HostId = this0.first.HostId,
	Name = this0.first.Name
}";
        this.ForEntityNames.Add("ProcessedMessages");
        this.AddMapDefinition(docs =>
                              from message in ((IEnumerable <dynamic>)docs)
                              where string.Equals(message["@metadata"]["Raven-Entity-Name"], "ProcessedMessages", System.StringComparison.InvariantCultureIgnoreCase)
                              select new {
            message       = message,
            sending       = (message.MessageMetadata["SendingEndpoint"]),
            __document_id = message.__document_id
        } into this0
                              select new {
            this0         = this0,
            receiving     = (this0.message.MessageMetadata["ReceivingEndpoint"]),
            __document_id = this0.__document_id
        } into this1
                              from endpoint in ((IEnumerable <dynamic>) new[] {
            this1.this0.sending,
            this1.receiving
        })
                              select new {
            this1         = this1,
            endpoint      = endpoint,
            __document_id = this1.__document_id
        } into this2
                              where this2.endpoint != null
                              select new {
            Host          = this2.endpoint.Host,
            HostId        = this2.endpoint.HostId,
            Name          = this2.endpoint.Name,
            __document_id = this2.__document_id
        });
        this.ReduceDefinition = results =>
                                from result in results
                                group result by new {
            Name   = result.Name,
            HostId = result.HostId
        } into grouped
            select new {
            grouped = grouped,
            first   = DynamicEnumerable.FirstOrDefault(grouped)
        } into this0
            select new {
            Host   = this0.first.Host,
            HostId = this0.first.HostId,
            Name   = this0.first.Name
        };

        this.GroupByExtraction = result => new {
            Name   = result.Name,
            HostId = result.HostId
        };
        this.AddField("Host");
        this.AddField("HostId");
        this.AddField("Name");
        this.AddQueryParameterForMap("__document_id");
        this.AddQueryParameterForMap("endpoint.Host");
        this.AddQueryParameterForMap("endpoint.HostId");
        this.AddQueryParameterForMap("endpoint.Name");
        this.AddQueryParameterForReduce("__document_id");
        this.AddQueryParameterForReduce("endpoint.Host");
        this.AddQueryParameterForReduce("endpoint.HostId");
        this.AddQueryParameterForReduce("endpoint.Name");
    }
    public Index_FailedMessages_ByGroup()
    {
        this.ViewText = @"from doc in docs.FailedMessages
select new {
	doc = doc,
	processingAttemptsLast = DynamicEnumerable.LastOrDefault(doc.ProcessingAttempts)
} into this0
from failureGroup in this0.doc.FailureGroups
select new {
	Id = this0.doc.__document_id,
	MessageId = this0.doc.UniqueMessageId,
	FailureGroupId = failureGroup.Id,
	FailureGroupName = failureGroup.Title,
	Status = this0.doc.Status,
	MessageType = ((string)this0.processingAttemptsLast.MessageMetadata[""MessageType""]),
	TimeSent = ((DateTime)this0.processingAttemptsLast.MessageMetadata[""TimeSent""]),
	TimeOfFailure = this0.processingAttemptsLast.FailureDetails.TimeOfFailure,
	LastModified = (this0.doc[""@metadata""].Value<DateTime>(""Last-Modified"")).Ticks
}";
        this.ForEntityNames.Add("FailedMessages");
        this.AddMapDefinition(docs =>
                              from doc in ((IEnumerable <dynamic>)docs)
                              where string.Equals(doc["@metadata"]["Raven-Entity-Name"], "FailedMessages", System.StringComparison.InvariantCultureIgnoreCase)
                              select new {
            doc = doc,
            processingAttemptsLast = DynamicEnumerable.LastOrDefault(doc.ProcessingAttempts),
            __document_id          = doc.__document_id
        } into this0
                              from failureGroup in ((IEnumerable <dynamic>)this0.doc.FailureGroups)
                              select new {
            Id               = this0.doc.__document_id,
            MessageId        = this0.doc.UniqueMessageId,
            FailureGroupId   = failureGroup.Id,
            FailureGroupName = failureGroup.Title,
            Status           = this0.doc.Status,
            MessageType      = ((string)this0.processingAttemptsLast.MessageMetadata["MessageType"]),
            TimeSent         = ((DateTime)this0.processingAttemptsLast.MessageMetadata["TimeSent"]),
            TimeOfFailure    = this0.processingAttemptsLast.FailureDetails.TimeOfFailure,
            LastModified     = (this0.doc["@metadata"].Value <DateTime>("Last-Modified")).Ticks,
            __document_id    = this0.__document_id
        });
        this.AddField("Id");
        this.AddField("MessageId");
        this.AddField("FailureGroupId");
        this.AddField("FailureGroupName");
        this.AddField("Status");
        this.AddField("MessageType");
        this.AddField("TimeSent");
        this.AddField("TimeOfFailure");
        this.AddField("LastModified");
        this.AddField("__document_id");
        this.AddQueryParameterForMap("__document_id");
        this.AddQueryParameterForMap("doc.__document_id");
        this.AddQueryParameterForMap("doc.UniqueMessageId");
        this.AddQueryParameterForMap("Id");
        this.AddQueryParameterForMap("Title");
        this.AddQueryParameterForMap("doc.Status");
        this.AddQueryParameterForMap("processingAttemptsLast.FailureDetails.TimeOfFailure");
        this.AddQueryParameterForMap("Ticks");
        this.AddQueryParameterForReduce("__document_id");
        this.AddQueryParameterForReduce("doc.__document_id");
        this.AddQueryParameterForReduce("doc.UniqueMessageId");
        this.AddQueryParameterForReduce("Id");
        this.AddQueryParameterForReduce("Title");
        this.AddQueryParameterForReduce("doc.Status");
        this.AddQueryParameterForReduce("processingAttemptsLast.FailureDetails.TimeOfFailure");
        this.AddQueryParameterForReduce("Ticks");
    }
    public Transformer_MessagesViewTransformer()
    {
        this.ViewText = @"from message in results
select new {
	message = message,
	metadata = message.ProcessingAttempts != null ? (DynamicEnumerable.LastOrDefault(message.ProcessingAttempts)).MessageMetadata : message.MessageMetadata
} into this0
select new {
	this0 = this0,
	headers = this0.message.ProcessingAttempts != null ? (DynamicEnumerable.LastOrDefault(this0.message.ProcessingAttempts)).Headers : this0.message.Headers
} into this1
select new {
	this1 = this1,
	processedAt = this1.this0.message.ProcessingAttempts != null ? (DynamicEnumerable.LastOrDefault(this1.this0.message.ProcessingAttempts)).AttemptedAt : this1.this0.message.ProcessedAt
} into this2
select new {
	this2 = this2,
	status = this2.this1.this0.message.ProcessingAttempts == null ? (!((bool)(this2.this1.this0.message.MessageMetadata[""IsRetried""])) ? 3 : 4) : (this2.this1.this0.message.Status == 3 ? 6 : (this2.this1.this0.message.Status == 4 ? 5 : (this2.this1.this0.message.ProcessingAttempts.Count == 1 ? 1 : 2)))
} into this3
select new {
	Id = this3.this2.this1.this0.message.UniqueMessageId,
	MessageId = this3.this2.this1.this0.metadata[""MessageId""],
	MessageType = this3.this2.this1.this0.metadata[""MessageType""],
	SendingEndpoint = this3.this2.this1.this0.metadata[""SendingEndpoint""],
	ReceivingEndpoint = this3.this2.this1.this0.metadata[""ReceivingEndpoint""],
	TimeSent = ((DateTime?)this3.this2.this1.this0.metadata[""TimeSent""]),
	ProcessedAt = this3.this2.processedAt,
	CriticalTime = ((TimeSpan)this3.this2.this1.this0.metadata[""CriticalTime""]),
	ProcessingTime = ((TimeSpan)this3.this2.this1.this0.metadata[""ProcessingTime""]),
	DeliveryTime = ((TimeSpan)this3.this2.this1.this0.metadata[""DeliveryTime""]),
	IsSystemMessage = ((bool)this3.this2.this1.this0.metadata[""IsSystemMessage""]),
	ConversationId = this3.this2.this1.this0.metadata[""ConversationId""],
	Headers = this3.this2.this1.headers.Select(header => new System.Collections.Generic.KeyValuePair<string, object>(header.Key, header.Value)),
	Status = this3.status,
	MessageIntent = this3.this2.this1.this0.metadata[""MessageIntent""],
	BodyUrl = this3.this2.this1.this0.metadata[""BodyUrl""],
	BodySize = ((int)this3.this2.this1.this0.metadata[""ContentLength""]),
	InvokedSagas = this3.this2.this1.this0.metadata[""InvokedSagas""],
	OriginatesFromSaga = this3.this2.this1.this0.metadata[""OriginatesFromSaga""]
}
";
        this.TransformResultsDefinition = results =>
                                          from message in ((IEnumerable <dynamic>)results)
                                          select new {
            message  = message,
            metadata = message.ProcessingAttempts != null ? (DynamicEnumerable.LastOrDefault(message.ProcessingAttempts)).MessageMetadata : message.MessageMetadata
        } into this0
            select new {
            this0   = this0,
            headers = this0.message.ProcessingAttempts != null ? (DynamicEnumerable.LastOrDefault(this0.message.ProcessingAttempts)).Headers : this0.message.Headers
        } into this1
            select new {
            this1       = this1,
            processedAt = this1.this0.message.ProcessingAttempts != null ? (DynamicEnumerable.LastOrDefault(this1.this0.message.ProcessingAttempts)).AttemptedAt : this1.this0.message.ProcessedAt
        } into this2
            select new {
            this2  = this2,
            status = this2.this1.this0.message.ProcessingAttempts == null ? (!((bool)(this2.this1.this0.message.MessageMetadata["IsRetried"])) ? 3 : 4) : (this2.this1.this0.message.Status == 3 ? 6 : (this2.this1.this0.message.Status == 4 ? 5 : (this2.this1.this0.message.ProcessingAttempts.Count == 1 ? 1 : 2)))
        } into this3
            select new {
            Id                 = this3.this2.this1.this0.message.UniqueMessageId,
            MessageId          = this3.this2.this1.this0.metadata["MessageId"],
            MessageType        = this3.this2.this1.this0.metadata["MessageType"],
            SendingEndpoint    = this3.this2.this1.this0.metadata["SendingEndpoint"],
            ReceivingEndpoint  = this3.this2.this1.this0.metadata["ReceivingEndpoint"],
            TimeSent           = ((DateTime?)this3.this2.this1.this0.metadata["TimeSent"]),
            ProcessedAt        = this3.this2.processedAt,
            CriticalTime       = ((TimeSpan)this3.this2.this1.this0.metadata["CriticalTime"]),
            ProcessingTime     = ((TimeSpan)this3.this2.this1.this0.metadata["ProcessingTime"]),
            DeliveryTime       = ((TimeSpan)this3.this2.this1.this0.metadata["DeliveryTime"]),
            IsSystemMessage    = ((bool)this3.this2.this1.this0.metadata["IsSystemMessage"]),
            ConversationId     = this3.this2.this1.this0.metadata["ConversationId"],
            Headers            = this3.this2.this1.headers.Select((Func <dynamic, dynamic>)(header => new System.Collections.Generic.KeyValuePair <string, object>(header.Key, header.Value))),
            Status             = this3.status,
            MessageIntent      = this3.this2.this1.this0.metadata["MessageIntent"],
            BodyUrl            = this3.this2.this1.this0.metadata["BodyUrl"],
            BodySize           = ((int)this3.this2.this1.this0.metadata["ContentLength"]),
            InvokedSagas       = this3.this2.this1.this0.metadata["InvokedSagas"],
            OriginatesFromSaga = this3.this2.this1.this0.metadata["OriginatesFromSaga"]
        };
    }
예제 #10
0
 public static dynamic Min(this IGrouping <dynamic, dynamic> self)
 {
     return(DynamicEnumerable.Min(self));
 }
예제 #11
0
 public static dynamic SingleOrDefault(this IGrouping <dynamic, dynamic> self)
 {
     return(DynamicEnumerable.SingleOrDefault(self));
 }
예제 #12
0
 public static dynamic Last(this IGrouping <dynamic, dynamic> self, Func <dynamic, bool> predicate)
 {
     return(DynamicEnumerable.Last(self, predicate));
 }
예제 #13
0
 public static dynamic Last(this IGrouping <dynamic, dynamic> self)
 {
     return(DynamicEnumerable.Last(self));
 }
    public Index_SagaListIndex()
    {
        this.ViewText = @"from doc in docs.SagaSnapshots
select new {
	Id = doc.SagaId,
	Uri = ""api/sagas/"" + doc.SagaId,
	SagaType = doc.SagaType
}
from doc in docs.SagaHistories
select new {
	Id = doc.SagaId,
	Uri = ""api/sagas/"" + doc.SagaId,
	SagaType = doc.SagaType
}
from result in results
group result by result.Id into g
select new {
	g = g,
	first = DynamicEnumerable.FirstOrDefault(g)
} into this0
select new {
	Id = this0.g.Key,
	Uri = this0.first.Uri,
	SagaType = this0.first.SagaType
}";
        this.ForEntityNames.Add("SagaSnapshots");
        this.AddMapDefinition(docs =>
                              from doc in ((IEnumerable <dynamic>)docs)
                              where string.Equals(doc["@metadata"]["Raven-Entity-Name"], "SagaSnapshots", System.StringComparison.InvariantCultureIgnoreCase)
                              select new {
            Id            = doc.SagaId,
            Uri           = "api/sagas/" + doc.SagaId,
            SagaType      = doc.SagaType,
            __document_id = doc.__document_id
        });
        this.ForEntityNames.Add("SagaHistories");
        this.AddMapDefinition(docs =>
                              from doc in ((IEnumerable <dynamic>)docs)
                              where string.Equals(doc["@metadata"]["Raven-Entity-Name"], "SagaHistories", System.StringComparison.InvariantCultureIgnoreCase)
                              select new {
            Id            = doc.SagaId,
            Uri           = "api/sagas/" + doc.SagaId,
            SagaType      = doc.SagaType,
            __document_id = doc.__document_id
        });
        this.ReduceDefinition = results =>
                                from result in results
                                group result by result.Id into g
                                select new {
            g     = g,
            first = DynamicEnumerable.FirstOrDefault(g)
        } into this0
            select new {
            Id       = this0.g.Key,
            Uri      = this0.first.Uri,
            SagaType = this0.first.SagaType
        };

        this.GroupByExtraction = result => result.Id;
        this.AddField("Id");
        this.AddField("Uri");
        this.AddField("SagaType");
        this.AddQueryParameterForMap("SagaId");
        this.AddQueryParameterForMap("SagaType");
        this.AddQueryParameterForMap("__document_id");
        this.AddQueryParameterForReduce("SagaId");
        this.AddQueryParameterForReduce("SagaType");
        this.AddQueryParameterForReduce("__document_id");
    }
예제 #15
0
    public Index_SagaDetailsIndex()
    {
        this.ViewText = @"from doc in docs.SagaSnapshots
select new {
	SagaId = doc.SagaId,
	Id = doc.SagaId,
	SagaType = doc.SagaType,
	Changes = new[] {
		new {
			Endpoint = doc.Endpoint,
			FinishTime = doc.FinishTime,
			InitiatingMessage = doc.InitiatingMessage,
			OutgoingMessages = doc.OutgoingMessages,
			StartTime = doc.StartTime,
			StateAfterChange = doc.StateAfterChange,
			Status = doc.Status
		}
	}
}
from doc in docs.SagaHistories
select new {
	SagaId = doc.SagaId,
	Id = doc.SagaId,
	SagaType = doc.SagaType,
	Changes = doc.Changes
}
from result in results
group result by result.SagaId into g
select new {
	g = g,
	first = DynamicEnumerable.FirstOrDefault(g)
} into this0
select new {
	Id = this0.first.SagaId,
	SagaId = this0.first.SagaId,
	SagaType = this0.first.SagaType,
	Changes = Enumerable.ToList(this0.g.SelectMany(x => x.Changes).OrderByDescending(x0 => x0.FinishTime))
}";
        this.ForEntityNames.Add("SagaSnapshots");
        this.AddMapDefinition(docs =>
                              from doc in ((IEnumerable <dynamic>)docs)
                              where string.Equals(doc["@metadata"]["Raven-Entity-Name"], "SagaSnapshots", System.StringComparison.InvariantCultureIgnoreCase)
                              select new {
            SagaId   = doc.SagaId,
            Id       = doc.SagaId,
            SagaType = doc.SagaType,
            Changes  = new[] {
                new {
                    Endpoint          = doc.Endpoint,
                    FinishTime        = doc.FinishTime,
                    InitiatingMessage = doc.InitiatingMessage,
                    OutgoingMessages  = doc.OutgoingMessages,
                    StartTime         = doc.StartTime,
                    StateAfterChange  = doc.StateAfterChange,
                    Status            = doc.Status
                }
            },
            __document_id = doc.__document_id
        });
        this.ForEntityNames.Add("SagaHistories");
        this.AddMapDefinition(docs =>
                              from doc in ((IEnumerable <dynamic>)docs)
                              where string.Equals(doc["@metadata"]["Raven-Entity-Name"], "SagaHistories", System.StringComparison.InvariantCultureIgnoreCase)
                              select new {
            SagaId        = doc.SagaId,
            Id            = doc.SagaId,
            SagaType      = doc.SagaType,
            Changes       = doc.Changes,
            __document_id = doc.__document_id
        });
        this.ReduceDefinition = results =>
                                from result in results
                                group result by result.SagaId into g
                                select new {
            g     = g,
            first = DynamicEnumerable.FirstOrDefault(g)
        } into this0
            select new {
            Id       = this0.first.SagaId,
            SagaId   = this0.first.SagaId,
            SagaType = this0.first.SagaType,
            Changes  = Enumerable.ToList(this0.g.SelectMany((Func <dynamic, IEnumerable <dynamic> >)(x => (IEnumerable <dynamic>)(x.Changes))).OrderByDescending((Func <dynamic, dynamic>)(x0 => x0.FinishTime)))
        };

        this.GroupByExtraction = result => result.SagaId;
        this.AddField("Id");
        this.AddField("SagaId");
        this.AddField("SagaType");
        this.AddField("Changes");
        this.AddQueryParameterForMap("SagaId");
        this.AddQueryParameterForMap("SagaType");
        this.AddQueryParameterForMap("__document_id");
        this.AddQueryParameterForMap("Changes");
        this.AddQueryParameterForReduce("SagaId");
        this.AddQueryParameterForReduce("SagaType");
        this.AddQueryParameterForReduce("__document_id");
        this.AddQueryParameterForReduce("Changes");
    }
    public Index_FailureGroupsViewIndex()
    {
        this.ViewText = @"from doc in docs.FailedMessages
where doc.Status == 1
select new {
	doc = doc,
	failureTimes = doc.ProcessingAttempts.Select(x => x.FailureDetails.TimeOfFailure)
} into this0
from failureGroup in this0.doc.FailureGroups
select new {
	Id = failureGroup.Id,
	Title = failureGroup.Title,
	Count = 1,
	First = DynamicEnumerable.Min(this0.failureTimes),
	Last = DynamicEnumerable.Max(this0.failureTimes),
	Type = failureGroup.Type
}
from result in results
group result by new {
	Id = result.Id,
	Title = result.Title,
	Type = result.Type
} into g
select new {
	Id = g.Key.Id,
	Title = g.Key.Title,
	Count = Enumerable.Sum(g, x => ((int)x.Count)),
	First = DynamicEnumerable.Min(g, x0 => ((DateTime)x0.First)),
	Last = DynamicEnumerable.Max(g, x1 => ((DateTime)x1.Last)),
	Type = g.Key.Type
}";
        this.ForEntityNames.Add("FailedMessages");
        this.AddMapDefinition(docs =>
                              from doc in ((IEnumerable <dynamic>)docs)
                              where string.Equals(doc["@metadata"]["Raven-Entity-Name"], "FailedMessages", System.StringComparison.InvariantCultureIgnoreCase)
                              where doc.Status == 1
                              select new {
            doc           = doc,
            failureTimes  = doc.ProcessingAttempts.Select((Func <dynamic, dynamic>)(x => x.FailureDetails.TimeOfFailure)),
            __document_id = doc.__document_id
        } into this0
                              from failureGroup in ((IEnumerable <dynamic>)this0.doc.FailureGroups)
                              select new {
            Id            = failureGroup.Id,
            Title         = failureGroup.Title,
            Count         = 1,
            First         = DynamicEnumerable.Min(this0.failureTimes),
            Last          = DynamicEnumerable.Max(this0.failureTimes),
            Type          = failureGroup.Type,
            __document_id = this0.__document_id
        });
        this.ReduceDefinition = results =>
                                from result in results
                                group result by new {
            Id    = result.Id,
            Title = result.Title,
            Type  = result.Type
        } into g
            select new {
            Id    = g.Key.Id,
            Title = g.Key.Title,
            Count = Enumerable.Sum(g, (Func <dynamic, int>)(x => ((int)x.Count))),
            First = DynamicEnumerable.Min(g, (Func <dynamic, DateTime>)(x0 => ((DateTime)x0.First))),
            Last  = DynamicEnumerable.Max(g, (Func <dynamic, DateTime>)(x1 => ((DateTime)x1.Last))),
            Type  = g.Key.Type
        };

        this.GroupByExtraction = result => new {
            Id    = result.Id,
            Title = result.Title,
            Type  = result.Type
        };
        this.AddField("Id");
        this.AddField("Title");
        this.AddField("Count");
        this.AddField("First");
        this.AddField("Last");
        this.AddField("Type");
        this.AddQueryParameterForMap("__document_id");
        this.AddQueryParameterForMap("Id");
        this.AddQueryParameterForMap("Title");
        this.AddQueryParameterForMap("Type");
        this.AddQueryParameterForReduce("__document_id");
        this.AddQueryParameterForReduce("Id");
        this.AddQueryParameterForReduce("Title");
        this.AddQueryParameterForReduce("Type");
    }
예제 #17
0
 public static dynamic SingleOrDefault(this IGrouping <dynamic, dynamic> self, Func <dynamic, bool> predicate)
 {
     return(DynamicEnumerable.SingleOrDefault(self, predicate));
 }
예제 #18
0
 public static dynamic ElementAtOrDefault(this IGrouping <dynamic, dynamic> self, int index)
 {
     return(DynamicEnumerable.ElementAtOrDefault(self, index));
 }
    public Index_RetryBatches_ByStatus_ReduceInitialBatchSize()
    {
        this.ViewText = @"from doc in docs.RetryBatches
select new {
	RequestId = doc.RequestId,
	RetryType = doc.RetryType,
	HasStagingBatches = doc.Status == 2,
	HasForwardingBatches = doc.Status == 3,
	InitialBatchSize = doc.InitialBatchSize,
	Originator = doc.Originator,
	Classifier = doc.Classifier,
	StartTime = doc.StartTime,
	Last = doc.Last
}
from result in results
group result by new {
	RequestId = result.RequestId,
	RetryType = result.RetryType
} into g
select new {
	RequestId = g.Key.RequestId,
	RetryType = g.Key.RetryType,
	Originator = (DynamicEnumerable.FirstOrDefault(g)).Originator,
	HasStagingBatches = Enumerable.Any(g, x => x.HasStagingBatches),
	HasForwardingBatches = Enumerable.Any(g, x0 => x0.HasForwardingBatches),
	InitialBatchSize = Enumerable.Sum(g, x1 => ((int)x1.InitialBatchSize)),
	StartTime = (DynamicEnumerable.FirstOrDefault(g)).StartTime,
	Last = DynamicEnumerable.Max(g, x2 => ((DateTime)x2.Last)),
	Classifier = (DynamicEnumerable.FirstOrDefault(g)).Classifier
}";
        this.ForEntityNames.Add("RetryBatches");
        this.AddMapDefinition(docs =>
                              from doc in ((IEnumerable <dynamic>)docs)
                              where string.Equals(doc["@metadata"]["Raven-Entity-Name"], "RetryBatches", System.StringComparison.InvariantCultureIgnoreCase)
                              select new {
            RequestId            = doc.RequestId,
            RetryType            = doc.RetryType,
            HasStagingBatches    = doc.Status == 2,
            HasForwardingBatches = doc.Status == 3,
            InitialBatchSize     = doc.InitialBatchSize,
            Originator           = doc.Originator,
            Classifier           = doc.Classifier,
            StartTime            = doc.StartTime,
            Last          = doc.Last,
            __document_id = doc.__document_id
        });
        this.ReduceDefinition = results =>
                                from result in results
                                group result by new {
            RequestId = result.RequestId,
            RetryType = result.RetryType
        } into g
            select new {
            RequestId            = g.Key.RequestId,
            RetryType            = g.Key.RetryType,
            Originator           = (DynamicEnumerable.FirstOrDefault(g)).Originator,
            HasStagingBatches    = Enumerable.Any(g, (Func <dynamic, bool>)(x => x.HasStagingBatches)),
            HasForwardingBatches = Enumerable.Any(g, (Func <dynamic, bool>)(x0 => x0.HasForwardingBatches)),
            InitialBatchSize     = Enumerable.Sum(g, (Func <dynamic, int>)(x1 => ((int)x1.InitialBatchSize))),
            StartTime            = (DynamicEnumerable.FirstOrDefault(g)).StartTime,
            Last       = DynamicEnumerable.Max(g, (Func <dynamic, DateTime>)(x2 => ((DateTime)x2.Last))),
            Classifier = (DynamicEnumerable.FirstOrDefault(g)).Classifier
        };

        this.GroupByExtraction = result => new {
            RequestId = result.RequestId,
            RetryType = result.RetryType
        };
        this.AddField("RequestId");
        this.AddField("RetryType");
        this.AddField("Originator");
        this.AddField("HasStagingBatches");
        this.AddField("HasForwardingBatches");
        this.AddField("InitialBatchSize");
        this.AddField("StartTime");
        this.AddField("Last");
        this.AddField("Classifier");
        this.AddQueryParameterForMap("RequestId");
        this.AddQueryParameterForMap("RetryType");
        this.AddQueryParameterForMap("InitialBatchSize");
        this.AddQueryParameterForMap("Originator");
        this.AddQueryParameterForMap("Classifier");
        this.AddQueryParameterForMap("StartTime");
        this.AddQueryParameterForMap("Last");
        this.AddQueryParameterForMap("__document_id");
        this.AddQueryParameterForReduce("RequestId");
        this.AddQueryParameterForReduce("RetryType");
        this.AddQueryParameterForReduce("InitialBatchSize");
        this.AddQueryParameterForReduce("Originator");
        this.AddQueryParameterForReduce("Classifier");
        this.AddQueryParameterForReduce("StartTime");
        this.AddQueryParameterForReduce("Last");
        this.AddQueryParameterForReduce("__document_id");
    }