/// <summary> /// Delete an existing conversation. /// </summary> public virtual IServiceResponse DeleteConversation(IServiceRequestWithData <Guid, ConversationParameters> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); CorrelationIdHelper.SetCorrelationId(serviceRequest.CorrelationId); var responseData = new ServiceResponse(); var command = new DeleteConversation { Rsn = serviceRequest.Data.ConversationRsn }; try { CommandPublisher.Publish(command); responseData.State = ServiceResponseStateType.Succeeded; } catch (Exception) { responseData.State = ServiceResponseStateType.Unknown; } // Complete the response return(CompleteResponse(responseData)); }
/// <summary> /// Update the name of an existing conversation. /// </summary> public virtual IServiceResponse UpdateConversation(IServiceRequestWithData <Guid, UpdateConversationParameters> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); CorrelationIdHelper.SetCorrelationId(serviceRequest.CorrelationId); var responseData = new ServiceResponse { State = ServiceResponseStateType.FailedValidation }; if (string.IsNullOrWhiteSpace(serviceRequest.Data.Name)) { return(CompleteResponse(responseData)); } var command = new UpdateConversation { Rsn = serviceRequest.Data.ConversationRsn, Name = serviceRequest.Data.Name }; try { CommandPublisher.Publish(command); responseData.State = ServiceResponseStateType.Succeeded; } catch (Exception) { responseData.State = ServiceResponseStateType.Unknown; } // Complete the response return(CompleteResponse(responseData)); }
public virtual IServiceResponse Deactivate(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, InventoryItemServiceDeactivateParameters> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); IServiceResponse results = null; OnDeactivate(serviceRequest, ref results); return(CompleteResponse(results)); }
public virtual IServiceResponseWithResultData <Entities.UserEntity> GetByRsn(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, UserServiceGetByRsnParameters> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); IServiceResponseWithResultData <Entities.UserEntity> results = null; OnGetByRsn(serviceRequest, ref results); return(CompleteResponse(results)); }
public virtual IServiceResponse CheckIn(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, InventoryItemServiceCheckInParameters> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); CorrelationIdHelper.SetCorrelationId(serviceRequest.CorrelationId); IServiceResponse results = null; OnCheckIn(serviceRequest, ref results); return(CompleteResponse(results)); }
partial void OnGetAll(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, UserServiceGetAllParameters> serviceRequest, ref IServiceResponseWithResultData <IEnumerable <Entities.UserEntity> > results) { // Define Query ICollectionResultQuery <UserQueryStrategy, Entities.UserEntity> query = QueryFactory.CreateNewCollectionResultQuery <UserQueryStrategy, Entities.UserEntity>(); // Retrieve Data, but remember if no items exist, the value is null query = UserRepository.Retrieve(query); IEnumerable <Entities.UserEntity> inventoryItems = query.Result; results = new ServiceResponseWithResultData <IEnumerable <Entities.UserEntity> >(inventoryItems); }
partial void OnRemove(IServiceRequestWithData <ISingleSignOnToken, InventoryItemServiceRemoveParameters> serviceRequest, ref IServiceResponse results) { UnitOfWorkService.SetCommitter(this); InventoryItemServiceRemoveParameters item = serviceRequest.Data; // The use of Guid.Empty is simply because we use ints as ids var command = new RemoveItemsFromInventoryCommand(item.rsn, item.count); CommandSender.Send(command); UnitOfWorkService.Commit(this); results = new ServiceResponse(); }
partial void OnGetByRsn(IServiceRequestWithData <ISingleSignOnToken, InventoryItemServiceGetByRsnParameters> serviceRequest, ref IServiceResponseWithResultData <InventoryItemEntity> results) { // Define Query ISingleResultQuery <InventoryItemQueryStrategy, InventoryItemEntity> query = QueryFactory.CreateNewSingleResultQuery <InventoryItemQueryStrategy, InventoryItemEntity>(); query.QueryStrategy.WithRsn(serviceRequest.Data.rsn); // Retrieve Data, but remember if no items exist, the value is null query = InventoryItemRepository.Retrieve(query); InventoryItemEntity inventoryItem = query.Result; results = new ServiceResponseWithResultData <InventoryItemEntity>(inventoryItem); }
partial void OnCreate(IServiceRequestWithData <ISingleSignOnToken, InventoryItemServiceCreateParameters> serviceRequest, ref IServiceResponse results) { UnitOfWorkService.SetCommitter(this); InventoryItemServiceCreateParameters item = serviceRequest.Data; // The use of Guid.Empty is simply because we use ints as ids var command = new CreateInventoryItemCommand(Guid.Empty, item.name); CommandSender.Send(command); UnitOfWorkService.Commit(this); results = new ServiceResponse(); }
partial void OnGetByRsn(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, UserServiceGetByRsnParameters> serviceRequest, ref IServiceResponseWithResultData <Entities.UserEntity> results) { // Define Query ISingleResultQuery <UserQueryStrategy, Entities.UserEntity> query = QueryFactory.CreateNewSingleResultQuery <UserQueryStrategy, Entities.UserEntity>(); query.QueryStrategy.WithRsn(serviceRequest.Data.rsn); // Retrieve Data, but remember if no items exist, the value is null query = UserRepository.Retrieve(query); Entities.UserEntity user = query.Result; results = new ServiceResponseWithResultData <Entities.UserEntity>(user); }
partial void OnGetAllOrders(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, OrderServiceGetAllOrdersParameters> serviceRequest, ref IServiceResponseWithResultData <IEnumerable <OrderEntity> > results) { // Define Query ICollectionResultQuery <OrderQueryStrategy, OrderEntity> query = QueryFactory.CreateNewCollectionResultQuery <OrderQueryStrategy, OrderEntity>(); // Retrieve Data query = OrderRepository.Retrieve(query); IEnumerable <OrderEntity> orders = query.Result; results = new ServiceResponseWithResultData <IEnumerable <OrderEntity> > { State = ServiceResponseStateType.Succeeded, ResultData = orders }; }
public IServiceResponseWithResultData <Entities.UserEntity> CreateUser(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, Entities.UserEntity> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); UnitOfWorkService.SetCommitter(this); Entities.UserEntity item = serviceRequest.Data; item.Rsn = Guid.NewGuid(); var command = new CreateUserCommand(item.Rsn, item.Name); OnCreateUser(serviceRequest, command); CommandSender.Send(command); OnCreatedUser(serviceRequest, command); UnitOfWorkService.Commit(this); return(CompleteResponse(new ServiceResponseWithResultData <Entities.UserEntity>(item))); }
/// <summary> /// Logically delete an existing instance of the <see cref="Entities.OrderEntity"/> /// </summary> public IServiceResponse DeleteOrder(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, Entities.OrderEntity> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); CorrelationIdHelper.SetCorrelationId(serviceRequest.CorrelationId); UnitOfWorkService.SetCommitter(this); Entities.OrderEntity item = serviceRequest.Data; var locatedItem = OrderRepository.Load(item.Rsn, false); if (locatedItem == null) { return(CompleteResponse(new ServiceResponseWithResultData <Entities.OrderEntity> { State = ServiceResponseStateType.FailedValidation })); } if (locatedItem.IsLogicallyDeleted) { return(CompleteResponse(new ServiceResponseWithResultData <Entities.OrderEntity> { State = ServiceResponseStateType.FailedValidation })); } var command = new DeleteOrderCommand(item.Rsn); ServiceResponseStateType?serviceResponseStateType = null; OnDeleteOrder(serviceRequest, ref command, locatedItem, ref serviceResponseStateType); if (serviceResponseStateType != null && serviceResponseStateType != ServiceResponseStateType.Succeeded) { return(CompleteResponse(new ServiceResponseWithResultData <Entities.OrderEntity> { State = serviceResponseStateType.Value })); } CommandSender.Send(command); OnDeletedOrder(serviceRequest, ref command, locatedItem, ref serviceResponseStateType); if (serviceResponseStateType != null && serviceResponseStateType != ServiceResponseStateType.Succeeded) { return(CompleteResponse(new ServiceResponseWithResultData <Entities.OrderEntity> { State = serviceResponseStateType.Value })); } UnitOfWorkService.Commit(this); return(CompleteResponse(new ServiceResponse())); }
/// <summary> /// Create a new instance of the <see cref="Entities.OrderEntity"/> /// </summary> public IServiceResponseWithResultData <Entities.OrderEntity> CreateOrder(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, Entities.OrderEntity> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); CorrelationIdHelper.SetCorrelationId(serviceRequest.CorrelationId); UnitOfWorkService.SetCommitter(this); Entities.OrderEntity item = serviceRequest.Data; if (item.Rsn == Guid.Empty) { item.Rsn = Guid.NewGuid(); } var command = new CreateOrderCommand(item.Rsn, item.OrderId, item.CustomerId, item.EmployeeId, item.OrderDate, item.RequiredDate, item.ShippedDate, item.ShipViaId, item.Freight, item.ShipName, item.ShipAddress, item.ShipCity, item.ShipRegion, item.ShipPostalCode, item.ShipCountry); OnCreateOrder(serviceRequest, command); CommandSender.Send(command); OnCreatedOrder(serviceRequest, command); UnitOfWorkService.Commit(this); return(CompleteResponse(new ServiceResponseWithResultData <Entities.OrderEntity>(item))); }
/// <summary> /// Update an existing instance of the <see cref="Entities.OrderEntity"/> /// </summary> public IServiceResponseWithResultData <Entities.OrderEntity> UpdateOrder(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, Entities.OrderEntity> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); CorrelationIdHelper.SetCorrelationId(serviceRequest.CorrelationId); UnitOfWorkService.SetCommitter(this); Entities.OrderEntity item = serviceRequest.Data; var locatedItem = OrderRepository.Load(item.Rsn); if (locatedItem == null) { return(CompleteResponse(new ServiceResponseWithResultData <Entities.OrderEntity> { State = ServiceResponseStateType.FailedValidation })); } var command = new UpdateOrderCommand(item.Rsn, item.OrderId, item.CustomerId, item.EmployeeId, item.OrderDate, item.RequiredDate, item.ShippedDate, item.ShipViaId, item.Freight, item.ShipName, item.ShipAddress, item.ShipCity, item.ShipRegion, item.ShipPostalCode, item.ShipCountry); ServiceResponseStateType?serviceResponseStateType = null; OnUpdateOrder(serviceRequest, ref command, locatedItem, ref serviceResponseStateType); if (serviceResponseStateType != null && serviceResponseStateType != ServiceResponseStateType.Succeeded) { return(CompleteResponse(new ServiceResponseWithResultData <Entities.OrderEntity> { State = serviceResponseStateType.Value })); } CommandSender.Send(command); OnUpdatedOrder(serviceRequest, ref command, locatedItem, ref serviceResponseStateType); if (serviceResponseStateType != null && serviceResponseStateType != ServiceResponseStateType.Succeeded) { return(CompleteResponse(new ServiceResponseWithResultData <Entities.OrderEntity> { State = serviceResponseStateType.Value })); } UnitOfWorkService.Commit(this); return(CompleteResponse(new ServiceResponseWithResultData <Entities.OrderEntity>(item))); }
/// <summary> /// Validate the provided <paramref name="serviceRequest">credentials</paramref> are valid. /// </summary> /// <param name="serviceRequest">The user credentials to validate.</param> /// <returns>The users identifier.</returns> public virtual IServiceResponseWithResultData <Guid?> Login(IServiceRequestWithData <Guid, LoginParameters> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); CorrelationIdHelper.SetCorrelationId(serviceRequest.CorrelationId); var userLogin = serviceRequest.Data; if (userLogin == null || string.IsNullOrEmpty(userLogin.EmailAddress) || string.IsNullOrEmpty(userLogin.Password)) { return(CompleteResponse(new ServiceResponseWithResultData <Guid?> { State = ServiceResponseStateType.FailedValidation })); } // Define Query ISingleResultQuery <CredentialQueryStrategy, CredentialEntity> query = QueryFactory.CreateNewSingleResultQuery <CredentialQueryStrategy, CredentialEntity>(); string hash = AuthenticationHashHelper.GenerateCredentialHash(userLogin.EmailAddress, userLogin.Password); query.QueryStrategy.WithHash(hash); // Retrieve Data query = CredentialRepository.Retrieve(query, false); CredentialEntity queryResults = query.Result; var responseData = new ServiceResponseWithResultData <Guid?> { State = queryResults == null ? ServiceResponseStateType.FailedAuthentication : ServiceResponseStateType.Succeeded, ResultData = queryResults == null ? (Guid?)null : queryResults.UserRsn }; // Complete the response ServiceResponseWithResultData <Guid?> response = CompleteResponse(responseData); return(response); }
partial void OnCreateOrder(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, Entities.OrderEntity> serviceRequest, CreateOrderCommand command);
partial void OnGetAllOrders(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, OrderServiceGetAllOrdersParameters> serviceRequest, ref IServiceResponseWithResultData <IEnumerable <Entities.OrderEntity> > results);
public virtual IServiceResponseWithResultData <IEnumerable <Entities.OrderEntity> > GetAllOrders(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, OrderServiceGetAllOrdersParameters> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); CorrelationIdHelper.SetCorrelationId(serviceRequest.CorrelationId); IServiceResponseWithResultData <IEnumerable <Entities.OrderEntity> > results = null; OnGetAllOrders(serviceRequest, ref results); return(CompleteResponse(results)); }
/// <summary> /// Executed before calling the <see cref="IEventStore{TAuthenticationToken}.Get(System.Type,System.Guid,bool,int)"/> method on <see cref="EventStore"/> /// in <see cref="GetEventData"/>. /// </summary> /// <param name="serviceRequest">The original <see cref="IServiceRequestWithData{TAuthenticationToken,Guid}"/>.</param> protected virtual void OnGetEventData(IServiceRequestWithData <TAuthenticationToken, Guid> serviceRequest) { }
/// <summary> /// Executed after calling the <see cref="IEventStore{TAuthenticationToken}.Get(System.Type,System.Guid,bool,int)"/> method on <see cref="EventStore"/> /// in <see cref="GetEventData"/>. /// </summary> /// <param name="serviceRequest">The original <see cref="IServiceRequestWithData{TAuthenticationToken,Guid}"/>.</param> /// <param name="results">The collection of <see cref="IEvent{TAuthenticationToken}">events</see> from the <see cref="EventStore"/>.</param> protected virtual IEnumerable <EventData> OnGotEventData(IServiceRequestWithData <TAuthenticationToken, Guid> serviceRequest, IEnumerable <EventData> results) { return(results); }
protected virtual void OnGetEventData(IServiceRequestWithData <TSingleSignOnToken, Guid> serviceRequest) { }
protected virtual IEnumerable <EventData> OnGotEventData(IServiceRequestWithData <TSingleSignOnToken, Guid> serviceRequest, IEnumerable <EventData> results) { return(results); }
partial void OnDeletedOrder(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, Entities.OrderEntity> serviceRequest, ref DeleteOrderCommand command, Entities.OrderEntity locatedItem, ref ServiceResponseStateType?serviceResponseStateType);
/// <summary> /// Query for all the events that match the provided CorrelationId. /// </summary> /// <param name="serviceRequest">A <see cref="IServiceRequestWithData{TAuthenticationToken,TData}">service-request</see> that contains the CorrelationId.</param> /// <returns>A collection of <see cref="EventData">event data</see></returns> protected virtual IServiceResponseWithResultData <IEnumerable <EventData> > GetEventData(IServiceRequestWithData <TSingleSignOnToken, Guid> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); CorrelationIdHelper.SetCorrelationId(serviceRequest.CorrelationId); OnGetEventData(serviceRequest); IEnumerable <EventData> results = EventStore.Get(serviceRequest.Data); results = OnGotEventData(serviceRequest, results); return(new ServiceResponseWithResultData <IEnumerable <EventData> > { State = ServiceResponseStateType.Succeeded, ResultData = results, CorrelationId = CorrelationIdHelper.GetCorrelationId() }); }
partial void OnDeactivate(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, InventoryItemServiceDeactivateParameters> serviceRequest, ref IServiceResponse results);
IServiceResponseWithResultData <IEnumerable <EventData> > IEventService <TSingleSignOnToken> .GetEventData(IServiceRequestWithData <TSingleSignOnToken, Guid> serviceRequest) { return(GetEventData(serviceRequest)); }
partial void OnGetByRsn(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, InventoryItemServiceGetByRsnParameters> serviceRequest, ref IServiceResponseWithResultData <Entities.InventoryItemEntity> results);
partial void OnGetAll(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, InventoryItemServiceGetAllParameters> serviceRequest, ref IServiceResponseWithResultData <IEnumerable <Entities.InventoryItemSummaryEntity> > results);
public virtual IServiceResponseWithResultData <IEnumerable <Entities.InventoryItemSummaryEntity> > GetAll(IServiceRequestWithData <Cqrs.Authentication.ISingleSignOnToken, InventoryItemServiceGetAllParameters> serviceRequest) { AuthenticationTokenHelper.SetAuthenticationToken(serviceRequest.AuthenticationToken); IServiceResponseWithResultData <IEnumerable <Entities.InventoryItemSummaryEntity> > results = null; OnGetAll(serviceRequest, ref results); return(CompleteResponse(results)); }