public Record GetRecord() { var record = new Record { Header = new RecordHeader(), FileRecords = new List <FileRecord>(), PasswordRecords = new List <PasswordRecord>() }; record.Header.Name = Name; record.Header.Id = Id; record.Header.Tags = Tags; var fileRecords = FileRecords.Select(x => new FileRecord() { Name = x.Name, Description = x.Description, Extention = x.Extention, FileId = x.FileRecordId, AssociatedRecordId = x.RecordId, }).ToList(); record.FileRecords.AddRange(fileRecords); var passwordRecordViewModels = PasswordRecords.ToList(); passwordRecordViewModels.RemoveAt(PasswordRecords.Count - 1); var passwordRecords = passwordRecordViewModels.Select(x => new PasswordRecord() { Name = x.Name, Value = x.Value }).ToList(); record.PasswordRecords.AddRange(passwordRecords); return(record); }
public bool Where(string Filter, out PerforceWhereRecord WhereRecord, TextWriter Log) { List <PerforceFileRecord> FileRecords; if (!RunCommand(String.Format("where \"{0}\"", Filter), out FileRecords, CommandOptions.None, Log)) { WhereRecord = null; return(false); } FileRecords.RemoveAll(x => x.Unmap); if (FileRecords.Count == 0) { Log.WriteLine("'{0}' is not mapped to workspace.", Filter); WhereRecord = null; return(false); } else if (FileRecords.Count > 1) { Log.WriteLine("File is mapped to {0} locations: {1}", FileRecords.Count, String.Join(", ", FileRecords.Select(x => x.Path))); WhereRecord = null; return(false); } WhereRecord = new PerforceWhereRecord(); WhereRecord.LocalPath = FileRecords[0].Path; WhereRecord.DepotPath = FileRecords[0].DepotPath; WhereRecord.ClientPath = FileRecords[0].ClientPath; return(true); }