Example #1
0
        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();
        }
Example #2
0
        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();
        }
        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)));
        }