Пример #1
0
        //
        // The following methods are derived from Safir.Dob.EntityHandlerInjection.
        //
        public void OnCreateRequest(
            Safir.Dob.EntityRequestProxy entityRequestProxy,
            Safir.Dob.ResponseSender responseSender)
        {
            bool bOk = false;

            Safir.Dob.Typesystem.InstanceId instanceId;
            Safir.Dob.Typesystem.EntityId   entityId =
                new Safir.Dob.Typesystem.EntityId();

            // Cast to known type, the vehicle entity.
            Capabilities.Vehicles.Vehicle vehicle =
                (Capabilities.Vehicles.Vehicle)entityRequestProxy.Request;

            // Identification is a mandatory member.
            if (!vehicle.Identification.IsNull())
            {
                // Generate instance number from unique value.
                instanceId =
                    new Safir.Dob.Typesystem.InstanceId(vehicle.Identification.Val);

                // Check if entity with given value already exist.
                entityId.TypeId     = Capabilities.Vehicles.Vehicle.ClassTypeId;
                entityId.InstanceId = instanceId;

                if (!m_connection.IsCreated(entityId))
                {
                    // Store object in the Dob.
                    m_connection.SetAll(
                        vehicle, instanceId, new Safir.Dob.Typesystem.HandlerId());
                    bOk = true;
                    m_iNumberOfCreatedVehicles++;
                }
            }

            if (bOk)
            {
                // Inform requestor about the instance.
                Safir.Dob.EntityIdResponse entIdResponse =
                    new Safir.Dob.EntityIdResponse();
                entIdResponse.Assigned.Val = entityId;
                responseSender.Send(entIdResponse);

                // Send notification message when the number of created vehicles
                // has reached the limit.
                if (m_iNumberOfCreatedVehicles == Capabilities.Vehicles.VehicleParameters.VehicleLimit)
                {
                    MessageSender.Instance.SendMaxNofVehicleMsg();
                }
            }
            else
            {
                Safir.Dob.ErrorResponse errorResponse =
                    new Safir.Dob.ErrorResponse();
                errorResponse.Code.Val = Safir.Dob.ResponseGeneralErrorCodes.SafirReqErr;
                responseSender.Send(errorResponse);
            }
        }
Пример #2
0
 public void OnDeleteRequest(
     Safir.Dob.EntityRequestProxy entityRequestProxy,
     Safir.Dob.ResponseSender responseSender)
 {
     if (m_connection.IsCreated(entityRequestProxy.EntityId))
     {
         m_connection.Delete(
             entityRequestProxy.EntityId,
             new Safir.Dob.Typesystem.HandlerId());
         m_iNumberOfCreatedVehicles--;
     }
     responseSender.Send(new Safir.Dob.SuccessResponse());
 }
Пример #3
0
        public void OnUpdateRequest(
            Safir.Dob.EntityRequestProxy entityRequestProxy,
            Safir.Dob.ResponseSender responseSender)
        {
            bool bOk = false;

            // Cast to known type, the vehicle entity.
            Capabilities.Vehicles.Vehicle receivedVehicle =
                (Capabilities.Vehicles.Vehicle)entityRequestProxy.Request;

            if (m_connection.IsCreated(entityRequestProxy.EntityId))
            {
                // Don't allow the identification to be updated.
                if (!receivedVehicle.Identification.IsChanged())
                {
                    // Update the stored vehicle with the received one.
                    m_connection.SetChanges(
                        receivedVehicle,
                        entityRequestProxy.InstanceId,
                        new Safir.Dob.Typesystem.HandlerId());
                    bOk = true;
                }
            }

            if (bOk)
            {
                responseSender.Send(new Safir.Dob.SuccessResponse());
            }
            else
            {
                Safir.Dob.ErrorResponse errorResponse =
                    new Safir.Dob.ErrorResponse();
                errorResponse.Code.Val = Safir.Dob.ResponseGeneralErrorCodes.SafirReqErr;
                responseSender.Send(errorResponse);
            }
        }
Пример #4
0
 public void OnDeleteRequest(Safir.Dob.EntityRequestProxy entityRequestProxy, Safir.Dob.ResponseSender responseSender)
 {
     responseSender.Send(Safir.Dob.ErrorResponse.CreateErrorResponse(Safir.Dob.ResponseGeneralErrorCodes.SafirNoPermission, ""));
 }
Пример #5
0
 void Safir.Dob.EntityRequestBase.OnUpdateRequest(Safir.Dob.EntityRequestProxy entityRequestProxy, Safir.Dob.ResponseSender responseSender)
 {
     responseSender.Send(new Safir.Dob.ErrorResponse());
 }