Пример #1
0
 public static Bubble AddBuble(Participant participant, LocalProcess localProcess)
 {
     using (DaemonEntities entities = new DaemonEntities())
     {
         try
         {
             entities.Attach(participant);
             entities.Attach(localProcess);
             Bubble bubble = new Bubble
             {
                 BubbleId        = Guid.NewGuid(),
                 Participant     = participant,
                 LocalProcess    = localProcess,
                 Name            = "New Bubble",
                 Range           = 100,
                 PerceptionRange = 150,
                 Published       = false
             };
             entities.AddToBubble(bubble);
             entities.SaveChanges();
             entities.Detach(bubble);
             return(bubble);
         }
         finally
         {
             entities.Detach(participant);
             entities.Detach(localProcess);
         }
     }
 }
Пример #2
0
 public static RemoteProcess AddRemoteProcess(Participant participant, LocalProcess locaProcess)
 {
     using (DaemonEntities entities = new DaemonEntities())
     {
         try
         {
             entities.Attach(locaProcess);
             entities.Attach(participant);
             RemoteProcess remoteProcess = new RemoteProcess
             {
                 RemoteProcessId = Guid.NewGuid(),
                 LocalProcess    = locaProcess,
                 Participant     = participant,
                 Address         = "127.0.0.1",
                 HubPort         = MxpConstants.DefaultHubPort,
                 Trusted         = false
             };
             entities.AddToRemoteProcess(remoteProcess);
             entities.SaveChanges();
             entities.Detach(remoteProcess);
             return(remoteProcess);
         }
         finally
         {
             entities.Detach(locaProcess);
             entities.Detach(participant);
         }
     }
 }
Пример #3
0
 public static ObjectType AddObjectType(Participant participant)
 {
     using (DaemonEntities entities = new DaemonEntities())
     {
         try
         {
             entities.Attach(participant);
             ObjectType objectType = new ObjectType
             {
                 ObjectTypeId = Guid.NewGuid(),
                 Participant  = participant,
                 Name         = "New Object Type",
                 Radius       = 11,
                 Mass         = 10,
                 ModelUrl     = "http://",
                 ModelScale   = 10,
                 Published    = false
             };
             entities.AddToObjectType(objectType);
             entities.SaveChanges();
             entities.Detach(objectType);
             return(objectType);
         }
         finally
         {
             entities.Detach(participant);
         }
     }
 }
Пример #4
0
 public static CloudObject AddObject(Participant participant, ObjectType objectType, Bubble bubble)
 {
     using (DaemonEntities entities = new DaemonEntities())
     {
         try
         {
             entities.Attach(participant);
             entities.Attach(objectType);
             entities.Attach(bubble);
             CloudObject cloudObject = new CloudObject
             {
                 CloudObjectId = Guid.NewGuid(),
                 Participant   = participant,
                 ObjectType    = objectType,
                 Bubble        = bubble,
                 Name          = "New " + objectType.Name,
                 Radius        = objectType.Radius,
                 Mass          = objectType.Mass,
                 ModelUrl      = objectType.ModelUrl,
                 ModelScale    = objectType.ModelScale,
                 X             = 0,
                 Y             = 0,
                 Z             = 0,
                 OX            = 0,
                 OY            = 0,
                 OZ            = 0,
                 OW            = 0,
                 Created       = DateTime.Now,
                 Modified      = DateTime.Now,
                 Enabled       = false
             };
             entities.AddToCloudObject(cloudObject);
             entities.SaveChanges();
             entities.Detach(cloudObject);
             return(cloudObject);
         }
         finally
         {
             entities.Detach(participant);
             entities.Detach(objectType);
             entities.Detach(bubble);
         }
     }
 }
Пример #5
0
 public static void ClearLoginSecret(Participant participant)
 {
     using (DaemonEntities entities = new DaemonEntities())
     {
         entities.Attach(participant);
         participant.LoginSecret        = null;
         participant.LoginSecretExpires = null;
         entities.SaveChanges();
         entities.Detach(participant);
     }
 }
Пример #6
0
 public static void GetLoginSecret(Participant participant)
 {
     using (DaemonEntities entities = new DaemonEntities())
     {
         entities.Attach(participant);
         participant.LoginSecret        = Guid.NewGuid().ToString("N");
         participant.LoginSecretExpires = DateTime.Now.Add(new TimeSpan(0, 0, 0, 10));
         entities.SaveChanges();
         entities.Detach(participant);
     }
 }
Пример #7
0
 public static BubbleLink AddBubleLink(Participant participant, Bubble bubble)
 {
     using (DaemonEntities entities = new DaemonEntities())
     {
         try
         {
             entities.Attach(participant);
             entities.Attach(bubble);
             if (bubble.Participant != participant)
             {
                 throw new UnauthorizedAccessException("You are not owner of this bubble.");
             }
             BubbleLink bubbleLink = new BubbleLink
             {
                 BubbleLinkId   = Guid.NewGuid(),
                 RemoteBubbleId = Guid.Empty,
                 Bubble         = bubble,
                 Name           = "New Bubble Link",
                 Address        = "127.0.0.1",
                 Port           = MxpConstants.DefaultHubPort,
                 X       = 50,
                 Y       = 50,
                 Z       = 0,
                 Enabled = false
             };
             entities.AddToBubbleLink(bubbleLink);
             entities.SaveChanges();
             entities.Detach(bubbleLink);
             return(bubbleLink);
         }
         finally
         {
             entities.Detach(bubble);
             entities.Detach(participant);
         }
     }
 }
Пример #8
0
 public static void UpdateObject(CloudObject cloudObject)
 {
     using (DaemonEntities entities = new DaemonEntities())
     {
         try
         {
             entities.Attach(cloudObject);
             ObjectType  objectType  = QueryUtil.First <ObjectType>(from o in entities.CloudObject where o.CloudObjectId == cloudObject.CloudObjectId select o.ObjectType);
             Participant participant = QueryUtil.First <Participant>(from o in entities.CloudObject where o.CloudObjectId == cloudObject.CloudObjectId select o.Participant);
             cloudObject.Modified = DateTime.Now;
             entities.SaveChanges();
         }
         finally
         {
             entities.Detach(cloudObject);
         }
     }
 }
Пример #9
0
        public static LocalProcess ReserveLocalProcess(Participant participant, string address)
        {
            using (DaemonEntities entities = new DaemonEntities())
            {
                entities.Attach(participant);

                try
                {
                    int serverPort = MxpConstants.DefaultServerPort;
                    if ((from l in entities.LocalProcess select l).Count() > 0)
                    {
                        serverPort = (from l in entities.LocalProcess select l).Max(l => l.ServerPort) + 2;
                    }
                    int hubPort = serverPort + 1;

                    LocalProcess localProcess = new LocalProcess
                    {
                        LocalProcessId = Guid.NewGuid(),
                        Participant    = participant,
                        Name           = "(" + serverPort + "," + hubPort + ")",
                        Address        = address,
                        ServerPort     = serverPort,
                        HubPort        = hubPort,
                        Enabled        = false
                    };

                    entities.AddToLocalProcess(localProcess);
                    entities.SaveChanges();
                    entities.Detach(localProcess);

                    return(localProcess);
                }
                finally
                {
                    entities.Detach(participant);
                }
            }
        }