public void ChangeTrackingDefaultValue_ChangeTrack()
        {
            ChangeTrack change;

            change = new ChangeTrack();
            Assert.AreEqual(0, change.Revisions.Count, "Revisions count is incorrect.");
        }
예제 #2
0
        public void XliffWriter_ChangeTrack()
        {
            ChangeTrack        change;
            Item               item;
            RevisionsContainer container;
            Revision           revision;
            string             actualValue;

            change = new ChangeTrack();

            container                = new RevisionsContainer();
            container.AppliesTo      = "source";
            container.Reference      = "1";
            container.CurrentVersion = "ver1";
            change.Revisions.Add(container);

            revision            = new Revision();
            revision.Author     = "author";
            revision.ChangeDate = new DateTime(2015, 1, 2, 3, 4, 5);
            revision.Version    = "ver1";
            container.Revisions.Add(revision);

            item          = new Item();
            item.Property = "content";
            item.Text     = "text";
            revision.Items.Add(item);

            this._document.Files.Add(new File("f1"));
            this._document.Files[0].Changes = change;

            actualValue = this.Serialize();
            Assert.AreEqual(TestUtilities.GetFileContents(TestData.FileWithChangeTrack), actualValue);
        }
예제 #3
0
        public void XlfWithModules()
        {
            JliffBuilder  bldr = new JliffBuilder("en-US", "it-IT");
            Xliff20Filter fltr = new Xliff20Filter();

            fltr.XlfRootEvent            += bldr.XlfRoot;
            fltr.XlfFileEvent            += bldr.File;
            fltr.XlfUnitEvent            += bldr.Unit;
            fltr.XlfGroupEvent           += bldr.Group;
            fltr.XlfSegmentEvent         += bldr.Segment;
            fltr.XlfSourceEvent          += bldr.Source;
            fltr.XlfTargetEvent          += bldr.Target;
            fltr.XlfIgnorableEvent       += bldr.Ignorable;
            fltr.XlfPhElementEvent       += bldr.PhElement;
            fltr.XlfSkeletonEvent        += bldr.Skeleton;
            fltr.XlfTextEvent            += bldr.Text;
            fltr.XlfSmElementEvent       += bldr.SmElement;
            fltr.XlfEmElementEvent       += bldr.EmElement;
            fltr.XlfScElementEvent       += bldr.ScElement;
            fltr.XlfEcElementEvent       += bldr.EcElement;
            fltr.XlfOriginalDataEvent    += bldr.OriginalData;
            fltr.ModItsLocQualityIssues  += bldr.LocQualityIssues;
            fltr.ModItsLocQualityIssue   += bldr.LocQualityIssue;
            fltr.ModMetadataEvent        += bldr.Metadata;
            fltr.ModMetaGroupEvent       += bldr.MetaGroup;
            fltr.ModMetaitemEvent        += bldr.Metaitem;
            fltr.ModResResourceDataEvent += bldr.ResourceData;
            fltr.ModResResourceItemEvent += bldr.ResourceItem;
            fltr.ModResSourceEvent       += bldr.ResourceSource;
            fltr.ModGlsEntryEvent        += bldr.GlossaryEntry;
            fltr.ModGlsDefinitionEvent   += bldr.Definition;
            fltr.ModGlsTermEvent         += bldr.Term;
            fltr.ModGlsTranslationEvent  += bldr.Translation;
            fltr.ModTransCandMatchEvent  += bldr.Match;
            fltr.ModCtrChangeTrackEvent  += bldr.ChangeTrack;
            fltr.ModCtrRevisionsEvent    += bldr.Revisions;
            fltr.ModCtrRevisionEvent     += bldr.Revision;
            fltr.ModCtrRevisionItemEvent += bldr.RevisionItem;
            fltr.Filter(new StreamReader(Path.Combine(XlfFiles, "Ocelot.xlf")));
            bldr.Serialize(Path.Combine(XlfFiles, "Ocelot.json"));
            JsonSchema schema  = JsonSchema.Parse(schemaDef);
            var        obGraph = JObject.FromObject(bldr.Jliff);

            Assert.IsTrue(obGraph.IsValid(schema));

            JliffDocument jd  = Converter.Deserialize(new FileInfo(Path.Combine(XlfFiles, "Ocelot.json")));
            Group         grp = jd.Files[0].Subfiles[1] as Group;
            Unit          u   = grp.Subgroups[1] as Unit;
            ChangeTrack   ct  = u.ChangeTrack;

            Assert.IsNotNull(ct);
            Assert.IsTrue(ct.Revisions.Items[1].Author.Equals("phil"));
            Assert.IsTrue(ct.Revisions.Items[1].Item.Text.StartsWith("Quando un segmento è selezionato nella Vista segmento"));
        }
예제 #4
0
 public void ChangeTrack(XlfEventArgs args)
 {
     if (args.IsEndElement)
     {
         stack.Pop();
     }
     else
     {
         object parent = stack.Peek();
         switch (parent)
         {
         case Unit u:
             ChangeTrack ct = mapper.Map <ChangeTrack>(args);
             u.ChangeTrack = ct;
             stack.Push(ct);
             break;
         }
     }
 }
예제 #5
0
 public void ChangeSong(ChangeTrack changeTrack)
 {
     if (speakers.Length > 0 && tracks.Length > 0)
     {
         if (changeTrack == ChangeTrack.PreviousTrack)
         {
             if (currentTrackNumber > 0)
             {
                 currentTrackNumber--;
             }
             else
             {
                 currentTrackNumber = tracks.Length - 1;
             }
         }
         else if (changeTrack == ChangeTrack.NextTrack)
         {
             if (currentTrackNumber < tracks.Length - 1)
             {
                 currentTrackNumber++;
             }
             else
             {
                 currentTrackNumber = 0;
             }
         }
         foreach (AudioSource audioSource in speakers)
         {
             audioSource.clip   = tracks[currentTrackNumber].GetAudioClip();
             audioSource.volume = tracks[currentTrackNumber].GetVolume();
         }
         foreach (AudioSource audioSource in speakers)
         {
             audioSource.Play();
         }
         foreach (ParticleSystem particle in particles)
         {
             particle.Play();
         }
         isPlaying = true;
     }
 }
예제 #6
0
 public void TestInitialize()
 {
     this.element  = new ChangeTrack();
     this.provider = this.element;
 }
예제 #7
0
        protected List <ChangeTrack> performAuditSetup(ChangeTracker tracker, bool withInlineAudit, bool withAuditStamp)
        {
            List <ChangeTrack> modLst = new List <ChangeTrack>();

            if (withInlineAudit || withAuditStamp)
            {
                //Log the modified objects before updating them.  This is logged here and audited
                //later since SaveChanges will change all the identity id values and FK properties



                foreach (EntityEntry entry in tracker.Entries())
                {
                    //Verify modified and not DBAudit entry, relationships are not handled as
                    //many to many is not supported
                    if (!(entry.Entity is DBAudit) &&
                        (entry.State == EntityState.Added ||
                         entry.State == EntityState.Deleted ||
                         entry.State == EntityState.Modified))
                    {
                        //Handle IAuditable (note these changes are made after DetectChanges,
                        //so while they will be saved they will not be audited inline)
                        if (withAuditStamp && entry.Entity is IAuditStamp)
                        {
                            var table = entry.Entity as IAuditStamp;
                            if (entry.State == EntityState.Added)
                            {
                                table.createDt   = DateTime.Now;
                                table.createUser = getUserName();
                            }
                            if (entry.State == EntityState.Modified || entry.State == EntityState.Added)
                            {
                                table.lastUpdDt   = DateTime.Now;
                                table.lastUpdUser = getUserName();
                            }
                        }

                        //Handle inline auditing
                        if (withInlineAudit)
                        {
                            var track = new ChangeTrack();
                            track.entry = entry;
                            track.state = entry.State;
                            if (entry.State == EntityState.Modified)
                            {
                                track.modifiedProp = entry.Properties.Where(q => q.IsModified == true).Select(r => r.Metadata.Name).ToList();
                            }

                            //Setup the auditable record
                            track.audit      = new DBAudit();
                            track.audit.date = DateTime.Now;
                            track.audit.user = getUserName();

                            //Find the entity name minus the proxy wrapper if wrapped (if you name
                            //your class hierarchry [name]_[othername] and you inherit from this
                            //with [name] then pass in a non-proxied instance of [name] this will
                            //break) There was no other apparent way to find the non-proxied name.
                            var eproxy = entry.Entity.GetType();
                            var ename  = eproxy.FullName;
                            if (eproxy.FullName.StartsWith("System.Data.Entity.DynamicProxies"))
                            {
                                ename = eproxy.BaseType.FullName;
                            }
                            track.audit.recordTypeName = ename;

                            if (entry.State == EntityState.Added)
                            {
                                track.audit.action = "C";
                            }
                            if (entry.State == EntityState.Deleted)
                            {
                                track.audit.action = "D";
                                //Can't be done after deletion
                                setEntityAuditKey(entry, track.audit);
                            }
                            if (entry.State == EntityState.Modified)
                            {
                                track.audit.action = "U";
                            }

                            modLst.Add(track);
                        }
                    }
                }
            }
            return(modLst);
        }