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);
        }
예제 #2
0
        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);
        }