private void ObjectPicker() { EnablePopButtons = false; CSMigrationWrapper mw = ((IntroViewModel)ViewModelPtrs[(int)ViewType.INTRO]).mw; string[] users = mw.GetListFromObjectPicker(); if (users != null) { // FBS rewrite -- bug 71646 -- 3/26/12 for (int i = 0; i < users.Length; i++) { string[] tokens = users[i].Split('~'); if (tokens.Length < 5) { MessageBox.Show("Object picker returned insufficient data", "Zimbra Migration", MessageBoxButton.OK, MessageBoxImage.Error); EnablePopButtons = true; return; } string uname = "", displayname = "", givenname = "", sn = "", zfp = ""; for (int j = 0; j < tokens.Length; j += 5) { uname = tokens.GetValue(j).ToString(); displayname = tokens.GetValue(j + 1).ToString(); givenname = tokens.GetValue(j + 2).ToString(); sn = tokens.GetValue(j + 3).ToString(); zfp = tokens.GetValue(j + 4).ToString(); } if (uname.IndexOf("@") != -1) { uname = uname.Substring(0, uname.IndexOf("@")); } PublicfoldersViewModel uvm; if (uname.CompareTo(displayname) == 0) { uvm = new PublicfoldersViewModel(displayname, uname); } else { uvm = new PublicfoldersViewModel(uname, uname); } //uvm.AddOPInfo(new ObjectPickerInfo(displayname, givenname, sn, zfp)); UsersBKList.Add(uvm); ScheduleViewModel scheduleViewModel = ((ScheduleViewModel)ViewModelPtrs[(int)ViewType.SCHED]); scheduleViewModel.SchedList.Add(new SchedUser(Username, false)); scheduleViewModel.EnableMigrate = (scheduleViewModel.SchedList.Count > 0); scheduleViewModel.EnablePreview = scheduleViewModel.EnableMigrate; EnableNext = (UsersList.Count > 0); } } EnablePopButtons = true; }
private void Add(object value) { var name = value as string; UsersBKList.Add(new PublicfoldersViewModel("", "")); EnableNext = (UsersList.Count > 0); ScheduleViewModel scheduleViewModel = ((ScheduleViewModel)ViewModelPtrs[(int)ViewType.SCHED]); scheduleViewModel.SchedList.Add(new SchedUser(name, false)); scheduleViewModel.EnableMigrate = (scheduleViewModel.SchedList.Count > 0); scheduleViewModel.EnablePreview = scheduleViewModel.EnableMigrate; }
private void Remove() { OptionsViewModel ovm = ((OptionsViewModel)ViewModelPtrs[(int)ViewType.OPTIONS]); ovm.IsSkipFolders = true; folderstoskip += UsersBKList[CurrentFolderSelection].MappedName.ToString(); folderstoskip += ","; ovm.FoldersToSkip = folderstoskip; UsersBKList.RemoveAt(CurrentFolderSelection); EnableNext = (UsersBKList.Count > 0); ScheduleViewModel scheduleViewModel = ((ScheduleViewModel)ViewModelPtrs[(int)ViewType.SCHED]); scheduleViewModel.EnableMigrate = (scheduleViewModel.SchedList.Count > 0); scheduleViewModel.EnablePreview = scheduleViewModel.EnableMigrate; }
private void PublicFolders() { CSMigrationWrapper mw = ((IntroViewModel)ViewModelPtrs[(int)ViewType.INTRO]).mw; MigrationAccount Acct = new MigrationAccount(); ConfigViewModelS eparams = ((ConfigViewModelS)ViewModelPtrs[(int)ViewType.SVRSRC]); Acct.ProfileName = eparams.OutlookProfile; // ---------------------------------------------------- // User must enter target zimbra account first // ---------------------------------------------------- if (ZimbraAccountName == null) { MessageBox.Show("Please specify a zimbra account name", "Zimbra Migration", MessageBoxButton.OK, MessageBoxImage.Warning); EnableNext = false; return; } string acctName = ZimbraAccountName + '@' + this.ZimbraDomain; Acct.AccountName = acctName; // ---------------------------------------------------- // Get PFs from C++ layer - takes extended time // ---------------------------------------------------- Mouse.OverrideCursor = System.Windows.Input.Cursors.Wait; // Set hourglass try { string[] folders = mw.GetPublicFolders(Acct); if (folders != null) { // FBS rewrite -- bug 71646 -- 3/26/12 UsersViewModel userm; userm = new UsersViewModel(ZimbraAccountName, ZimbraAccountName); for (int i = 0; i < folders.Length; i++) { string uname = "", displayname = "", givenname = "", sn = "", zfp = ""; uname = folders.GetValue(i).ToString(); displayname = folders.GetValue(i).ToString(); givenname = folders.GetValue(i).ToString(); sn = folders.GetValue(i).ToString(); zfp = folders.GetValue(i).ToString(); PublicfoldersViewModel uvm; if (uname.CompareTo(displayname) == 0) { uvm = new PublicfoldersViewModel(displayname, uname); } else { uvm = new PublicfoldersViewModel(uname, uname); } uvm.ZimbraAccountName = ZimbraAccountName; UsersBKList.Add(uvm); UsersList.Add(userm); ScheduleViewModel scheduleViewModel = ((ScheduleViewModel)ViewModelPtrs[(int)ViewType.SCHED]); PlusEnabled = false; //Username = ZimbraAccountName; scheduleViewModel.SchedList.Add(new SchedUser(ZimbraAccountName, false)); scheduleViewModel.SchedfolderList.Add(new SchedUser(ZimbraAccountName, false)); scheduleViewModel.EnableMigrate = (scheduleViewModel.SchedfolderList.Count > 0); scheduleViewModel.EnablePreview = scheduleViewModel.EnableMigrate; EnableNext = (UsersList.Count > 0); } UsersViewModel usersViewModel = ((UsersViewModel)ViewModelPtrs[(int)ViewType.USERS]); usersViewModel.ZimbraDomain = this.ZimbraDomain; usersViewModel.UsersList.Add(userm); } } finally { Mouse.OverrideCursor = null; }; }
private void PublicFolders() { EnablePopButtons = false; CSMigrationWrapper mw = ((IntroViewModel)ViewModelPtrs[(int)ViewType.INTRO]).mw; MigrationAccount Acct = new MigrationAccount(); /* string userName = (UsersList[0].MappedName.Length > 0) ? UsersList[0].MappedName : * UsersList[0].Username; * string acctName = userName + '@' + this.ZimbraDomain; * Acct.AccountName = acctName; * Acct.ProfileName = acctName;*/ ConfigViewModelS eparams = ((ConfigViewModelS)ViewModelPtrs[(int)ViewType.SVRSRC]); Acct.ProfileName = eparams.OutlookProfile; if (ZimbraAccountName == null) { MessageBox.Show("Please specify a zimbra account name", "Zimbra Migration", MessageBoxButton.OK, MessageBoxImage.Warning); EnableNext = false; return; } string acctName = ZimbraAccountName + '@' + this.ZimbraDomain; Acct.AccountName = acctName; //Acct.ProfileName = acctName; string[] folders = mw.GetPublicFolders(Acct, LogLevel.Trace); if (folders != null) { // FBS rewrite -- bug 71646 -- 3/26/12 UsersViewModel userm; userm = new UsersViewModel(ZimbraAccountName, ZimbraAccountName); for (int i = 0; i < folders.Length; i++) { /*string[] tokens = users[i].Split('~'); * if (tokens.Length < 5) * { * MessageBox.Show("Object picker returned insufficient data", "Zimbra Migration", MessageBoxButton.OK, MessageBoxImage.Error); * EnablePopButtons = true; * return; * }*/ string uname = "", displayname = "", givenname = "", sn = "", zfp = ""; /* for (int j = 0; j < tokens.Length; j += 5) * { * uname = tokens.GetValue(j).ToString(); * displayname = tokens.GetValue(j + 1).ToString(); * givenname = tokens.GetValue(j + 2).ToString(); * sn = tokens.GetValue(j + 3).ToString(); * zfp = tokens.GetValue(j + 4).ToString(); * }*/ uname = folders.GetValue(i).ToString(); displayname = folders.GetValue(i).ToString(); givenname = folders.GetValue(i).ToString(); sn = folders.GetValue(i).ToString(); zfp = folders.GetValue(i).ToString(); /*if (uname.IndexOf("@") != -1) * { * uname = uname.Substring(0, uname.IndexOf("@")); * }*/ PublicfoldersViewModel uvm; if (uname.CompareTo(displayname) == 0) { uvm = new PublicfoldersViewModel(displayname, uname); } else { uvm = new PublicfoldersViewModel(uname, uname); } //uvm.AddOPInfo(new ObjectPickerInfo(displayname, givenname, sn, zfp)); uvm.ZimbraAccountName = ZimbraAccountName; UsersBKList.Add(uvm); UsersList.Add(userm); ScheduleViewModel scheduleViewModel = ((ScheduleViewModel)ViewModelPtrs[(int)ViewType.SCHED]); PlusEnabled = false; //Username = ZimbraAccountName; scheduleViewModel.SchedList.Add(new SchedUser(ZimbraAccountName, false)); scheduleViewModel.SchedfolderList.Add(new SchedUser(ZimbraAccountName, false)); scheduleViewModel.EnableMigrate = (scheduleViewModel.SchedfolderList.Count > 0); scheduleViewModel.EnablePreview = scheduleViewModel.EnableMigrate; EnableNext = (UsersList.Count > 0); } UsersViewModel usersViewModel = ((UsersViewModel)ViewModelPtrs[(int)ViewType.USERS]); usersViewModel.ZimbraDomain = this.ZimbraDomain; usersViewModel.UsersList.Add(userm); } EnablePopButtons = true; }
private void UserMap() { ScheduleViewModel scheduleViewModel = ((ScheduleViewModel)ViewModelPtrs[(int)ViewType.SCHED]); bool bCSV = false; Microsoft.Win32.OpenFileDialog fDialog = new Microsoft.Win32.OpenFileDialog(); fDialog.Filter = "User Map Files|*.xml;*.csv"; fDialog.CheckFileExists = true; fDialog.Multiselect = false; // string delimiter = ","; // / // Domain information is stored in the xml and not in the usermap. // will have to revisit System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(Config)); if (File.Exists(scheduleViewModel.GetConfigFile())) { System.IO.StreamReader fileRead = new System.IO.StreamReader( scheduleViewModel.GetConfigFile()); Config Z11 = new Config(); Z11 = (Config)reader.Deserialize(fileRead); fileRead.Close(); CSVDelimiter = Z11.AdvancedImportOptions.CSVDelimiter; if (CSVDelimiter == null) { CSVDelimiter = ","; } ZimbraDomain = Z11.UserProvision.DestinationDomain; if (DomainList.Count > 0) { CurrentDomainSelection = (ZimbraDomain == null) ? 0 : DomainList.IndexOf(ZimbraDomain); } else { DomainList.Add(ZimbraDomain); } } if (fDialog.ShowDialog() == true) { int lastDot = fDialog.FileName.LastIndexOf("."); if (lastDot != -1) { string substr = fDialog.FileName.Substring(lastDot, 4); if (substr == ".csv") { bCSV = true; /*try * { * string names = File.ReadAllText(fDialog.FileName); * string[] nameTokens = names.Split(','); * foreach (string name in nameTokens) * { * UsersList.Add(name); * scheduleViewModel.SchedList.Add(name); * } * } * catch (IOException ex) * { * MessageBox.Show(ex.Message, "Zimbra Migration", MessageBoxButton.OK, MessageBoxImage.Exclamation); * }*/ List <string[]> parsedData = new List <string[]>(); try { if (File.Exists(fDialog.FileName)) { using (StreamReader readFile = new StreamReader(fDialog.FileName)) { string line; string[] row; while ((line = readFile.ReadLine()) != null) { row = line.Split(CSVDelimiter.ToCharArray()); //row = line.Split(','); parsedData.Add(row); } readFile.Close(); } } else { MessageBox.Show( "There is no user information stored.Please enter some user info", "Zimbra Migration", MessageBoxButton.OK, MessageBoxImage.Error); } } catch (Exception e) { string message = e.Message; } // for (int i = 1; i < parsedData.Count; i++) { string[] strres = new string[parsedData.Count]; Users tempuser = new Users(); try { for (int j = 0; j < parsedData.Count; j++) { bool bFoundSharp = false; strres = parsedData[j]; int num = strres.Count(); for (int k = 0; k < num; k++) { if (strres[k].Contains("#")) { bFoundSharp = true; break; } } if (!bFoundSharp) // FBS bug 71933 -- 3/21/12 { tempuser.UserName = strres[0]; tempuser.MappedName = strres[1]; tempuser.ChangePWD = Convert.ToBoolean(strres[2]); // tempuser.PWDdefault = strres[3]; // string result = tempuser.UserName + "," + tempuser.MappedName +"," + tempuser.ChangePWD + "," + tempuser.PWDdefault; string result = tempuser.Username + CSVDelimiter /*","*/ + tempuser.MappedName; Username = strres[0]; MappedName = strres[1]; PublicfoldersViewModel uvm = new PublicfoldersViewModel(Username, MappedName); uvm.MustChangePassword = tempuser.ChangePWD; UsersBKList.Add(uvm); scheduleViewModel.SchedList.Add(new SchedUser(Username, false)); } } } catch (Exception) { MessageBox.Show("Incorrect .csv file format", "Zimbra Migration", MessageBoxButton.OK, MessageBoxImage.Error); return; } EnableNext = (UsersList.Count > 0); } scheduleViewModel.EnableMigrate = (scheduleViewModel.SchedList.Count > 0); scheduleViewModel.EnablePreview = scheduleViewModel.EnableMigrate; // / // Domain information is stored in the xml and not in the usermap. // will have to revisit /* System.Xml.Serialization.XmlSerializer reader = * new System.Xml.Serialization.XmlSerializer(typeof (Config)); * if (File.Exists(scheduleViewModel.GetConfigFile())) * { * System.IO.StreamReader fileRead = new System.IO.StreamReader( * scheduleViewModel.GetConfigFile()); * * Config Z11 = new Config(); * * Z11 = (Config)reader.Deserialize(fileRead); * fileRead.Close(); * }*/ /* { * ZimbraDomain = Z11.UserProvision.DestinationDomain; * if (DomainList.Count > 0) * CurrentDomainSelection = (ZimbraDomain == null) ? 0 : * DomainList.IndexOf(ZimbraDomain); * * else * DomainList.Add(ZimbraDomain); * }*/ scheduleViewModel.SetUsermapFile(fDialog.FileName); } } if (!bCSV) { MessageBox.Show("Only CSV files are supported", "Zimbra Migration", MessageBoxButton.OK, MessageBoxImage.Exclamation); } } }