Пример #1
0
        protected override object GetPropertyValue(Property property)
        {
            if (!(checkServer()))
            {
                return(null);
            }
            if (!P4EXPProgram.connected)
            {
                P4EXPProgram.Connect();
            }

            if (TargetFile != null)
            {
                try
                {
                    IList <FileMetaData> fmd =
                        P4EXPProgram.rep.GetFileMetaData(null,
                                                         new FileSpec(null, null, new LocalPath(TargetFile), null));

                    if (property.CanonicalName == "P4File.State")
                    {
                        if (fmd != null && fmd[0] != null)
                        {
                            if (fmd[0].Action != FileAction.None &&
                                fmd[0].HaveRev == fmd[0].HeadRev)
                            {
                                if (fmd[0].Action == FileAction.Add)
                                {
                                    return("Marked for add");
                                }
                                else
                                {
                                    return("Checked out");
                                }
                            }
                            else if (fmd[0].HaveRev == fmd[0].HeadRev)
                            {
                                return("Up-to-date");
                            }
                            else
                            {
                                return("Needs Update");
                            }
                        }
                        return("Not on Server");
                    }

                    if (property.CanonicalName == "P4File.Action")
                    {
                        if (fmd != null && fmd[0] != null && fmd[0].Action != FileAction.None)
                        {
                            return(fmd[0].Action.ToString());
                        }
                        return(null);
                    }

                    if (property.CanonicalName == "P4File.Rev")
                    {
                        if (fmd != null && fmd[0] != null)
                        {
                            if (fmd[0].HaveRev != -1 && fmd[0].HeadRev != -1)
                            {
                                return("#" + fmd[0].HaveRev + "/" + fmd[0].HeadRev);
                            }
                        }
                        return(null);
                    }
                }
                catch (P4Exception ex)
                {
                    if (P4EXPProgram.showP4Exception())
                    {
                        string message = ex.Message + "\n" +
                                         ex.StackTrace + "\n" +
                                         ex.TargetSite.Name;
                        Message dlg = new Message("P4Exception", message);
                        dlg.ShowDialog();
                    }
                    FileLogger.LogException("Get column value", ex);
                }
                catch (Exception ex)
                {
                    if (P4EXPProgram.showException())
                    {
                        string message = ex.Message + "\n" +
                                         ex.StackTrace + "\n" +
                                         ex.TargetSite.Name;
                        Message dlg = new Message("Exception", message);
                        dlg.ShowDialog();
                    }
                    FileLogger.LogException("Get column value", ex);
                }
            }


            return(null);
        }