public static void Update (UnitySolution s, UnityProjectState update)
		{
			var existingProjects = s.GetAllProjects ();

			var toRemoves = existingProjects.Where (p => update.Islands.All(p2 => p.Name != p2.Name)).ToArray ();
			foreach (var toRemove in toRemoves)
				s.RootFolder.Items.Remove (toRemove);

			foreach (var projectUpdate in update.Islands.Where(i => i.Files.Count > 0))
			{
				var existing = existingProjects.OfType<DotNetAssemblyProject>().SingleOrDefault (p => p.Name == projectUpdate.Name);
				if (existing == null)
					existing = CreateMonoDevelopProjectFromProjectUpdate (s, projectUpdate);

				ProjectUpdater.Update (existing, projectUpdate);
			}

			s.BaseDirectory = update.BaseDirectory;
		}
Esempio n. 2
0
        public static void Update(UnitySolution s, UnityProjectState update)
        {
            var existingProjects = s.GetAllProjects();

            var toRemoves = existingProjects.Where(p => update.Islands.All(p2 => p.Name != p2.Name)).ToArray();

            foreach (var toRemove in toRemoves)
            {
                s.RootFolder.Items.Remove(toRemove);
            }

            foreach (var projectUpdate in update.Islands.Where(i => i.Files.Count > 0))
            {
                var existing = existingProjects.OfType <DotNetAssemblyProject>().SingleOrDefault(p => p.Name == projectUpdate.Name);
                if (existing == null)
                {
                    existing = CreateMonoDevelopProjectFromProjectUpdate(s, projectUpdate);
                }

                ProjectUpdater.Update(existing, projectUpdate);
            }

            s.BaseDirectory = update.BaseDirectory;
        }