protected SelectReferencePresenterBase(ISelectReferenceView view, IObjectBaseToObjectBaseDTOMapper objectBaseDTOMapper, IMoBiContext context, IUserSettings userSettings, IObjectBaseToDummyMoleculeDTOMapper objectBaseToDummyMoleculeDTOMapper, IParameterToDummyParameterDTOMapper dummyParameterDTOMapper, IObjectBaseDTOToReferenceNodeMapper referenceMapper, IObjectPathCreator objectPathCreator, Localisations localisation) : base(view) { _objectPathCreator = objectPathCreator; _localisation = localisation; _dummyParameterDTOMapper = dummyParameterDTOMapper; _referenceMapper = referenceMapper; _dummyMoleculeDTOMapper = objectBaseToDummyMoleculeDTOMapper; _userSettings = userSettings; _context = context; _objectBaseDTOMapper = objectBaseDTOMapper; _objectPathFactory = _context.ObjectPathFactory; _view.ObjectPathType = _userSettings.ObjectPathType; _referenceMapper.Initialize(GetChildObjects); SelectionPredicate = parameter => true; }
public virtual IEntity Select(Localisations localisation) { _localisation = localisation; var spatialStructures = _context.CurrentProject.SpatialStructureCollection; _view.Show(spatialStructures.Select(createSpatialStuctureDTOFrom).ToList()); if (!_modalPresenter.Show()) { return(null); } var dto = _view.Selected; var selectedEntity = getSelectedEntity(dto); return(isUsableLocalisation(selectedEntity) ? selectedEntity : null); }
static bool LoadCSV(byte[] bytes, bool isMasterFile = false) { try { using (var rdr = new StreamReader(new MemoryStream(bytes))) { bool isHeader = true; int[] columnLanguageMapping = new int[0]; foreach (IList <string> columns in FromReader(rdr)) { // first row is the header if (isHeader) { // sanity check if (columns.Count < 2) { Debug.Log("File should contain at least 2 columns (KEY,<Language>"); return(false); } // find what languages are new and update references for existing ones columnLanguageMapping = new int[columns.Count]; // mapping from new columns to languages array var newLanguageCount = columns.Count - 1; // the number of languages in the file (1 less for 'KEY') for (var column = 1; column < columns.Count; ++column) { columnLanguageMapping[column] = -1; // default to not found // check all languages for a match and update if found. for (var j = 0; j < Languages.Length; ++j) { if (Languages[j] == columns[column]) { columnLanguageMapping[column] = j; newLanguageCount--; if (!isMasterFile && _defaultUserLanguage == null) { _defaultUserLanguage = Languages[j]; } break; } } } // resize the languages array Array.Resize(ref _languages, Languages.Length + newLanguageCount); // copy new languages to the end and update mapping references int maxLanguageColumn = Languages.Length - newLanguageCount; for (int i = 1; i < columns.Count; ++i) { if (columnLanguageMapping[i] == -1) { columnLanguageMapping[i] = maxLanguageColumn; Languages[maxLanguageColumn++] = columns[i]; } } isHeader = false; } else { bool isNewValue = true; string key = columns[0]; string[] oldValues; string[] values = new string[Languages.Length]; // get reference to existing list if any and copy old values over if (Localisations.TryGetValue(key, out oldValues)) { isNewValue = false; Array.Copy(oldValues, values, oldValues.Length); } // copy in new values for (int i = 1; i < columns.Count; ++i) { values[columnLanguageMapping[i]] = columns[i]; } if (isNewValue) { Localisations.Add(key, values); } else { Localisations[key] = values; } } } } } catch (Exception) { return(false); } return(true); }
public static bool Is(this Localisations localisations, Localisations typeToCompare) { return((localisations & typeToCompare) != 0); }