Exemplo n.º 1
0
        private static AuditUpdate GetAuditUpdate(AuditXmlUpdate auditXmlUpdate, string commitSha)
        {
            var mapper = MapperHelper.GetAutoMapper();

            var realmSpeakers = auditXmlUpdate.Speakers.Select(mapper.Map <Speaker>).ToArray();

            var realmFriends = auditXmlUpdate.Friends.Select(mapper.Map <Friend>).ToArray();

            var realmVenues = auditXmlUpdate.Venues.Select(mapper.Map <Venue>).ToArray();

            var realmCommunities = auditXmlUpdate.Communities.Select(mapper.Map <Community>).ToArray();

            var talkMapper = MapperHelper.GetTalkMapper(realmSpeakers);
            var realmTalks = auditXmlUpdate.Talks.Select(talkMapper.Map <Talk>).ToArray();

            var meetupMapper = MapperHelper.GetMeetupMapper(realmFriends, realmVenues, realmTalks);
            var realmMeetups = auditXmlUpdate.Meetups.Select(meetupMapper.Map <Meetup>).ToArray();

            var auditVersion = new AuditVersion
            {
                CommitHash = commitSha
            };

            return(new AuditUpdate
            {
                AuditVersion = auditVersion,
                Venues = realmVenues,
                Communities = realmCommunities,
                Friends = realmFriends,
                Meetups = realmMeetups,
                Speakers = realmSpeakers,
                Talks = realmTalks
            });
        }
        public static void Main(string[] args)
        {
            IList <int> dummy = new List <int>();

            var commitHash = "45d858e17a2f804bfd3691f260531638758508cd";

            var auditVersion = new AuditVersion {
                CommitHash = commitHash
            };

            using (var auditRepo = new Repository(AuditHelper.AuditPath))
            {
                Commands.Checkout(auditRepo, "master");

                Commands.Pull(
                    auditRepo,
                    new Signature("RealmGenerator", "realm", DateTimeOffset.Now),
                    new PullOptions());

                var commit = auditRepo.Commits.Single(x => x.Sha == auditVersion.CommitHash);

                Commands.Checkout(auditRepo, commit);
            }

            string realmDirectoryPath = $@"C:\Users\{Environment.UserName}\Source\Repos\App\DotNetRu.DataStore.Audit";

            CleanDirectory(realmDirectoryPath);

            var config = new RealmConfiguration(Path.Combine(realmDirectoryPath, "Audit.realm"));

            var realm = Realm.GetInstance(config);

            realm.Write(() => { realm.Add(auditVersion); });

            InitializeAudoMapper(realm);

            realm.AddEntities <SpeakerEntity, Speaker>("speakers");
            realm.AddEntities <FriendEntity, Friend>("friends");
            realm.AddEntities <VenueEntity, Venue>("venues");
            realm.AddEntities <CommunityEntity, Community>("communities");
            realm.AddEntities <TalkEntity, Talk>("talks");
            realm.AddEntities <MeetupEntity, Meetup>("meetups");
        }