Example #1
0
 private static void ProcessMessage(AgentUpdateMessage message)
 {
     using (AgentsMonitorContext context = new AgentsMonitorContext())
     {
         Server existingServer = GetExistingServer(context, message);
         UpdateServerFields(existingServer, message, context);
         context.SaveChanges();
     }
 }
Example #2
0
 private static Server GetExistingServer(AgentsMonitorContext context, AgentUpdateMessage agentUpdateMessage)
 {
     Server existingServer = context.Servers.FirstOrDefault(server => server.MacAddress == agentUpdateMessage.MacAddress);
     if (existingServer == null)
     {
         existingServer = context.Servers.Create();
         context.Servers.Add(existingServer);
     }
     return existingServer;
 }
 private void UpdateServerFields(
     Server existingServer,
     AgentUpdateMessage agentUpdateMessage,
     UsersManager userManager)
 {
     existingServer.MacAddress = agentUpdateMessage.MacAddress;
     existingServer.Name = agentUpdateMessage.Name;
     existingServer.FreeSpace = agentUpdateMessage.FreeSpace;
     existingServer.UsedSpace = agentUpdateMessage.UsedSpace;
     existingServer.User = userManager.FindById(agentUpdateMessage.UserId);
 }
Example #4
0
        private static void UpdateServerFields(
            Server existingServer,
            AgentUpdateMessage agentUpdateMessage,
            AgentsMonitorContext context)
        {
            existingServer.MacAddress = agentUpdateMessage.MacAddress;
            existingServer.Name = agentUpdateMessage.Name;
            existingServer.FreeSpace = agentUpdateMessage.FreeSpace;
            existingServer.UsedSpace = agentUpdateMessage.UsedSpace;

            User user = context.Users.Find(agentUpdateMessage.UserId);
            existingServer.User = user;
        }
        private static AgentUpdateInfo GetAgentUpdateInfo(AgentUpdateMessage message, Server existingServer)
        {
            bool isNew = existingServer.Id == default(int);

            bool spaceIsUpdated = existingServer.FreeSpace != message.FreeSpace
                                  || existingServer.UsedSpace != message.UsedSpace;

            if (!isNew && !spaceIsUpdated)
            {
                return null;
            }

            return new AgentUpdateInfo { IsNew = isNew, Server = existingServer, UserId = message.UserId };
        }
        private void ProcessMessage(AgentUpdateMessage message)
        {
            using (UnitOfWorkService unitOfWork = new UnitOfWorkService())
            {
                Server existingServer = unitOfWork.ServersRepository.GetServerByMacAddress(message.MacAddress)
                                        ?? new Server();
                AgentUpdateInfo agentUpdateInfo = GetAgentUpdateInfo(message, existingServer);

                this.UpdateServerFields(existingServer, message, unitOfWork.UsersManager);

                unitOfWork.ServersRepository.Save(existingServer);

                if (agentUpdateInfo != null)
                {
                    this.ServerInfoUpdated?.Invoke(this, agentUpdateInfo);
                }
            }
        }