示例#1
0
        public Task <Result> Visit(LoadDocumentCommand loadDocumentCommand)
        {
            return(Task.Factory.StartNew <Result>(() =>
            {
                using (var conn = new SqlConnection(_connectionString))
                    using (var cmd = new SqlCommand())
                    {
                        conn.Open();
                        cmd.Connection = conn;
                        cmd.CommandType = System.Data.CommandType.StoredProcedure;
                        cmd.CommandText = "dbo.LoadDocument";

                        if (loadDocumentCommand.Id.Actual.HasValue)
                        {
                            cmd.Parameters.Add(new SqlParameter("DocumentId", loadDocumentCommand.Id.Actual.Value));
                        }

                        if (loadDocumentCommand.Id.Friendly != null)
                        {
                            cmd.Parameters.Add(new SqlParameter("FriendlyId", loadDocumentCommand.Id.Friendly));
                        }

                        if (loadDocumentCommand.Id.Revision.HasValue)
                        {
                            cmd.Parameters.Add(new SqlParameter("Revision", loadDocumentCommand.Id.Revision));
                        }

                        using (var sqlReader = cmd.ExecuteReader())
                        {
                            return MapRecord(sqlReader);
                        }
                    }
            }));
        }
示例#2
0
        public static Task <Document> LoadDocument(this IProvider provider, DocumentIdentifier id)
        {
            var command = new LoadDocumentCommand
            {
                Id = id,
            };

            return(provider
                   .ExecuteCommand(command)
                   .ContinueWith <Document>(command.HandleResult));
        }
示例#3
0
            public System.Threading.Tasks.Task <Result> Visit(LoadDocumentCommand loadDocumentCommand)
            {
                return(Task.Factory.StartNew <Result>(() =>
                {
                    var id = loadDocumentCommand.Id;

                    var doc = inMemoryProvider._docs.FirstOrDefault(d => d.Meta.Id == id.Actual.Value);

                    if (doc != null)
                    {
                        return new DocumentResult(doc);
                    }

                    return new DocumentNotFoundResult();
                }));
            }
 public virtual Task <Result> Visit(LoadDocumentCommand loadDocumentCommand)
 {
     // TODO: Need to query by ID and document reference
     throw new NotImplementedException();
 }