Esempio n. 1
0
        public static string GetDivisonNames(DtoProject project, IntegrationBase integrationBase)
        {
            string result = "";

            List <DtoDivision> divisionList = integrationBase.ApiCore.Projects.GetDivisions(project.Id);

            if (divisionList != null && divisionList.Count > 0)
            {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < divisionList.Count; i++)
                {
                    DtoDivision division = divisionList[i];
                    sb.Append(division.Name);
                    if (sb.Length > 0 && i < divisionList.Count - 1)
                    {
                        sb.Append("\r\n");
                    }

                    if (divisionList.Count > 6 && i == 5)
                    {
                        sb.Append("...");
                        break;
                    }
                }

                result = sb.ToString();
            }

            return(result);
        }
Esempio n. 2
0
        private static Dictionary <DbLayer, Dictionary <Type, List <DtObject> > > GetLayerTypeObjectsDictionary(IntegrationBase integrationBase)
        {
            DtoProject project = integrationBase.ApiCore.Projects.GetDtoProject(integrationBase.CurrentProject.Id);

            Dictionary <DbLayer, Dictionary <Type, List <DtObject> > > layerTypeObjectsDictionary = new Dictionary <DbLayer, Dictionary <Type, List <DtObject> > >();

            List <DtoProjectDiscipline> disciplines = new List <DtoProjectDiscipline>();

            try
            {
                if (project.Disciplines != null && project.Disciplines.FirstOrDefault() != null)
                {
                    foreach (DtoProjectDiscipline discipline in project.Disciplines)
                    {
                        if (disciplines.FirstOrDefault(d => d.DisciplineId == discipline.DisciplineId) == null)
                        {
                            disciplines.Add(discipline);
                        }
                    }
                }

                List <DtoElementType> existingTypes = new List <DtoElementType>();
                Dictionary <Type, List <DtObject> > typeObjectDict = new Dictionary <Type, List <DtObject> >();
                layerTypeObjectsDictionary = new Dictionary <DbLayer, Dictionary <Type, List <DtObject> > >();

                using (new TraceCodeTime("Load elements", "Import types"))
                {
                    using (new TraceCodeTime("GetProjectElementTypes", "Import types"))
                    {
                        existingTypes = integrationBase.ApiCore.Projects.GetProjectElementTypes(integrationBase.CurrentProject.Id);
                    }

                    foreach (DtoElementType elementType in existingTypes)
                    {
                        Type type = DbObjectList.GetType(elementType.Type);

                        DbLayer layer = DbLayerHandler.GetLayer(DbObjectList.Discpline(elementType.Id));

                        if (!layerTypeObjectsDictionary.ContainsKey(layer))
                        {
                            layerTypeObjectsDictionary.Add(layer, new Dictionary <Type, List <DtObject> >());
                        }

                        if (!layerTypeObjectsDictionary[layer].ContainsKey(type))
                        {
                            layerTypeObjectsDictionary[layer].Add(type, new List <DtObject>());
                        }
                    }
                }
            }
            catch (Exception)
            {
            }

            return(layerTypeObjectsDictionary);
        }
        /// <summary>
        /// Load start properties.
        /// </summary>
        /// <param name="integrationBase"></param>
        /// <param name="parent"></param>
        public void LoadContent(IntegrationBase integrationBase, Window parent)
        {
            _integrationBase = integrationBase;
            _parentWindow    = parent;

            if (_integrationBase.CurrentProject != null)
            {
                DtoProject project = _integrationBase.ApiCore.Projects.GetProject(_integrationBase.CurrentProject.Id);

                ProjectModels = ExtensionsClass.GetDivisonNames(project, _integrationBase);
            }

            Dictionary <DbLayer, Dictionary <Type, List <DtObject> > > layerTypeObjectsDictionary = ExtensionsClass.ReadLayerTypeObjectsDictionary(_integrationBase);

            List <Type> types = ExtensionsClass.GetTypes(layerTypeObjectsDictionary, parent);

            if (types.Count > 0)
            {
                SelectedItem = types[0];
                HasObjects   = true;
            }

            ObjectTypes = types;
        }