Exemple #1
0
        /// <summary>Provides the observer with new data.</summary>
        /// <param name="value">The current notification information.</param>
        public void OnNext(MailThreadModel item)
        {
            var value = item.Message;
            var clue  = this.factory.Create(item);
            var data  = clue.Data.EntityData;

            data.Name = value.ConversationTopic ?? value.Subject;

            data.ModifiedDate = value.ExGetIfAvailable(v => (DateTimeOffset?)v.DateTimeReceived, null) ??
                                value.ExGetIfAvailable(v => (DateTimeOffset?)v.DateTimeSent, null) ??
                                value.ExGetIfAvailable(v => (DateTimeOffset?)v.LastModifiedTime, null);

            if (value.Sender?.Address != null)
            {
                var personReference = new PersonReference(value.Sender.Name, new EntityCode(EntityType.Infrastructure.User, ExchangeSharedMailboxNameConstants.CodeOrigin, value.Sender.Address));
                data.LastChangedBy = personReference;
            }

            var parent = new EntityEdge(
                EntityReference.CreateByKnownCode(clue.OriginEntityCode),
                EntityReference.CreateByKnownCode(new EntityCode(EntityType.Mail.Folder, ExchangeSharedMailboxNameConstants.CodeOrigin, value.ParentFolderId.UniqueId)),
                EntityEdgeType.Parent);

            data.OutgoingEdges.Add(parent);

            this.observer.OnNext(clue);
        }
        public async Task CustomReferenceResolver()
        {
            string json    = @"[
  {
    ""$id"": ""0b64ffdf-d155-44ad-9689-58d9adb137f3"",
    ""Name"": ""John Smith"",
    ""Spouse"": {
      ""$id"": ""ae3c399c-058d-431d-91b0-a36c266441b9"",
      ""Name"": ""Jane Smith"",
      ""Spouse"": {
        ""$ref"": ""0b64ffdf-d155-44ad-9689-58d9adb137f3""
      }
    }
  },
  {
    ""$ref"": ""ae3c399c-058d-431d-91b0-a36c266441b9""
  }
]";
            var    options = new JsonSerializerOptions
            {
                WriteIndented    = true,
                ReferenceHandler = new ReferenceHandler <GuidReferenceResolver>()
            };
            ImmutableArray <PersonReference> people = await JsonSerializerWrapperForString.DeserializeWrapper <ImmutableArray <PersonReference> >(json, options);

            Assert.Equal(2, people.Length);

            PersonReference john = people[0];
            PersonReference jane = people[1];

            Assert.Same(john, jane.Spouse);
            Assert.Same(jane, john.Spouse);

            Assert.Equal(json, await JsonSerializerWrapperForString.SerializeWrapper(people, options), ignoreLineEndingDifferences: true);
        }
        public async Task <IActionResult> PutPersonReference([FromRoute] int id, [FromBody] PersonReference personReference)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != personReference.Id)
            {
                return(BadRequest());
            }

            _context.Entry(personReference).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PersonReferenceExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        protected override Clue MakeClueImpl(CollaborationGroup value, Guid id)
        {
            var clue = _factory.Create(EntityType.Infrastructure.Group, value.ID, id);
            var data = clue.Data.EntityData;

            if (value.Name != null)
            {
                data.Name        = value.Name;
                data.DisplayName = value.Name;
            }

            if (value.OwnerId != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.CreatedBy, value, value.OwnerId);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.OwnerId));
                data.Authors.Add(createdBy);
            }

            if (value.CreatedDate != null)
            {
                DateTimeOffset createdDate;
                if (DateTimeOffset.TryParse(value.CreatedDate, out createdDate))
                {
                    data.CreatedDate = createdDate;
                }
            }

            if (value.LastModifiedDate != null)
            {
                DateTimeOffset modifiedDate;
                if (DateTimeOffset.TryParse(value.LastModifiedDate, out modifiedDate))
                {
                    data.ModifiedDate = modifiedDate;
                }
            }

            if (value.CreatedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.CreatedBy, value, value.CreatedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.CreatedById));
                data.Authors.Add(createdBy);
            }

            if (value.LastModifiedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.ModifiedBy, value, value.LastModifiedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.LastModifiedById));
                data.Authors.Add(createdBy);
            }

            if (value.SystemModstamp != null)
            {
                data.Properties[SalesforceVocabulary.Group.SystemModstamp] = value.SystemModstamp;
            }

            _factory.CreateEntityRootReference(clue, EntityEdgeType.ManagedIn);

            return(clue);
        }
        protected override Clue MakeClueImpl(PriceBook2 value, Guid id)
        {
            var clue = _factory.Create(EntityType.Note, value.ID, id);
            var data = clue.Data.EntityData;

            if (value.Name != null)
            {
                data.Name        = value.Name;
                data.DisplayName = value.Name;
                data.Aliases.Add(value.Name);
            }

            //data.Uri = new Uri($"{this.state.JobData.Token.Data}/{value.ID}");

            if (value.Description != null)
            {
                data.Description = value.Description;
            }

            if (value.IsActive != null)
            {
                data.Properties[SalesforceVocabulary.Product.IsActive] = value.IsActive;
            }
            if (value.IsDeleted != null)
            {
                data.Properties[SalesforceVocabulary.Product.IsDeleted] = value.IsDeleted;
            }

            if (value.CreatedDate != null)
            {
                data.CreatedDate = DateTime.Parse(value.CreatedDate);
            }
            if (value.CreatedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.CreatedBy, value, value.CreatedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.CreatedById));
                data.Authors.Add(createdBy);
            }

            if (value.LastModifiedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.ModifiedBy, value, value.LastModifiedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.LastModifiedById));
                data.Authors.Add(createdBy);
            }

            if (value.LastModifiedDate != null)
            {
                data.ModifiedDate = DateTime.Parse(value.LastModifiedDate);
            }
            if (value.SystemModstamp != null)
            {
                data.Properties[SalesforceVocabulary.Product.SystemModstamp] = value.SystemModstamp;
            }

            _factory.CreateEntityRootReference(clue, EntityEdgeType.ManagedIn);

            return(clue);
        }
Exemple #6
0
        public void UnFavouriteFoodItem(string personReference, int sku)
        {
            var person   = personRepository.FindPersonWithReference(PersonReference.FromExisting(personReference));
            var foodItem = foodItemRepository.FindFoodItemWithSku(sku);

            person.UnFavorite(foodItem);
            personRepository.Save(person);
        }
            public override void AddReference(string reference, object value)
            {
                Guid            id     = new Guid(reference);
                PersonReference person = (PersonReference)value;

                person.Id   = id;
                _people[id] = person;
            }
Exemple #8
0
        public PersonReference GetByID(int _personReferenceId)
        {
            PersonReferenceDAC _personReferenceComponent = new PersonReferenceDAC();
            IDataReader        reader           = _personReferenceComponent.GetByIDPersonReference(_personReferenceId);
            PersonReference    _personReference = null;

            while (reader.Read())
            {
                _personReference = new PersonReference();
                if (reader["PersonReferenceId"] != DBNull.Value)
                {
                    _personReference.PersonReferenceId = Convert.ToInt32(reader["PersonReferenceId"]);
                }
                if (reader["PersonId"] != DBNull.Value)
                {
                    _personReference.PersonId = Convert.ToInt32(reader["PersonId"]);
                }
                if (reader["ReferenceFullName"] != DBNull.Value)
                {
                    _personReference.ReferenceFullName = Convert.ToString(reader["ReferenceFullName"]);
                }
                if (reader["ReferenceEmail"] != DBNull.Value)
                {
                    _personReference.ReferenceEmail = Convert.ToString(reader["ReferenceEmail"]);
                }
                if (reader["ReferenceAddress"] != DBNull.Value)
                {
                    _personReference.ReferenceAddress = Convert.ToString(reader["ReferenceAddress"]);
                }
                if (reader["ReferenceContactNumber"] != DBNull.Value)
                {
                    _personReference.ReferenceContactNumber = Convert.ToString(reader["ReferenceContactNumber"]);
                }
                if (reader["ReferenceMobileNumber"] != DBNull.Value)
                {
                    _personReference.ReferenceMobileNumber = Convert.ToString(reader["ReferenceMobileNumber"]);
                }
                if (reader["ReferenceLetterPath"] != DBNull.Value)
                {
                    _personReference.ReferenceLetterPath = Convert.ToString(reader["ReferenceLetterPath"]);
                }
                if (reader["ReferenceLetterMessage"] != DBNull.Value)
                {
                    _personReference.ReferenceLetterMessage = Convert.ToString(reader["ReferenceLetterMessage"]);
                }
                if (reader["ReferenceAcceptedPerson"] != DBNull.Value)
                {
                    _personReference.ReferenceAcceptedPerson = Convert.ToBoolean(reader["ReferenceAcceptedPerson"]);
                }
                if (reader["ReferenceInstitution"] != DBNull.Value)
                {
                    _personReference.ReferenceInstitution = Convert.ToString(reader["ReferenceInstitution"]);
                }
                _personReference.NewRecord = false;
            }
            reader.Close();
            return(_personReference);
        }
            public override string GetReference(object value, out bool alreadyExists)
            {
                PersonReference p = (PersonReference)value;

                alreadyExists = _people.ContainsKey(p.Id);
                _people[p.Id] = p;

                return(p.Id.ToString());
            }
Exemple #10
0
        protected override Clue MakeClueImpl(StreamingChannel value, Guid id)
        {
            var clue = _factory.Create(EntityType.Channel, value.ID, id);
            var data = clue.Data.EntityData;

            if (value.Name != null)
            {
                data.Name = value.Name;
            }

            if (value.Description != null)
            {
                data.Description = value.Description;
            }

            //data.Uri = new Uri($"{this.state.JobData.Token.Data}/{value.ID}");

            if (value.LastReferencedDate != null)
            {
                data.Properties[SalesforceVocabulary.Solution.LastReferencedDate] = DateUtilities.GetFormattedDateString(value.LastReferencedDate);
            }
            if (value.LastViewedDate != null)
            {
                data.Properties[SalesforceVocabulary.Solution.LastViewedDate] = DateUtilities.GetFormattedDateString(value.LastViewedDate);
            }
            if (value.CreatedDate != null)
            {
                data.CreatedDate = DateTime.Parse(value.CreatedDate);
            }
            if (value.CreatedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.CreatedBy, value, value.CreatedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.CreatedById));
                data.Authors.Add(createdBy);
            }

            if (value.LastModifiedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.ModifiedBy, value, value.LastModifiedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.LastModifiedById));
                data.Authors.Add(createdBy);
            }

            if (value.LastModifiedDate != null)
            {
                data.ModifiedDate = DateTime.Parse(value.LastModifiedDate);
            }
            if (value.SystemModstamp != null)
            {
                data.Properties[SalesforceVocabulary.Solution.SystemModstamp] = value.SystemModstamp;
            }

            _factory.CreateEntityRootReference(clue, EntityEdgeType.ManagedIn);

            return(clue);
        }
Exemple #11
0
        public Person FindPersonWithReference(PersonReference reference)
        {
            var result = connection.Get(reference.ToString());

            if (result == null)
            {
                throw new Exception("Cannot find person with reference");
            }
            return(JsonConvert.DeserializeObject <Person>(result));
        }
        public Person FindPersonWithReference(PersonReference reference)
        {
            var person = people.Find(p => p.Reference.Equals(reference));

            if (person != null)
            {
                return(person);
            }

            throw new ArgumentException("Unable to find person with reference");
        }
Exemple #13
0
        public Person FindPersonWithReference(PersonReference reference)
        {
            var person = context.People.Find(reference);

            if (person != null)
            {
                return(person);
            }

            throw new ArgumentException("Could not find person with reference");
        }
        public async Task <IActionResult> PostPersonReference([FromBody] PersonReference personReference)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.PersonReference.Add(personReference);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPersonReference", new { id = personReference.Id }, personReference));
        }
 protected ResponseCode CheckLoginAndPerson(PersonReference data)
 {
     if (!_isLogged())
     {
         return(ResponseCode.REQUIRE_LOGIN);
     }
     if (!CheckPerson(data))
     {
         return(ResponseCode.INVALID_PERSON);
     }
     return(ResponseCode.OK);
 }
Exemple #16
0
        public bool Insert(PersonReference personreference)
        {
            int autonumber = 0;
            PersonReferenceDAC personreferenceComponent = new PersonReferenceDAC();
            bool endedSuccessfuly = personreferenceComponent.InsertNewPersonReference(ref autonumber, personreference.PersonId, personreference.ReferenceFullName, personreference.ReferenceEmail, personreference.ReferenceAddress, personreference.ReferenceContactNumber, personreference.ReferenceMobileNumber, personreference.ReferenceLetterPath, personreference.ReferenceLetterMessage, personreference.ReferenceAcceptedPerson, personreference.ReferenceInstitution);

            if (endedSuccessfuly)
            {
                personreference.PersonReferenceId = autonumber;
            }
            return(endedSuccessfuly);
        }
Exemple #17
0
        protected override Clue MakeClueImpl(Workflow input, Guid accountId)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            var clue = _factory.Create(EntityType.Process, input.id.ToString(), accountId);

            clue.ValidationRuleSuppressions.Add(Constants.Validation.Rules.EDGES_001_Outgoing_Edge_MustExist);
            clue.ValidationRuleSuppressions.Add(Constants.Validation.Rules.EDGES_002_Incoming_Edge_ShouldNotExist);
            clue.ValidationRuleSuppressions.Add(Constants.Validation.Rules.METADATA_002_Uri_MustBeSet);

            var data = clue.Data.EntityData;

            data.Name         = input.name;
            data.ModifiedDate = DateUtilities.EpochRef.AddMilliseconds(input.updatedAt);

            data.Properties[HubSpotVocabulary.Workflow.Actions] = input.actions.PrintIfAvailable(JsonUtility.Serialize);
            data.Properties[HubSpotVocabulary.Workflow.AllowContactToTriggerMultipleTimes] = input.allowContactToTriggerMultipleTimes.PrintIfAvailable();
            data.Properties[HubSpotVocabulary.Workflow.Enabled]            = input.enabled.PrintIfAvailable();
            data.Properties[HubSpotVocabulary.Workflow.GoalListIds]        = input.goalListIds.PrintIfAvailable(JsonUtility.Serialize);
            data.Properties[HubSpotVocabulary.Workflow.InsertingAt]        = input.insertedAt.PrintIfAvailable(v => DateUtilities.EpochRef.AddMilliseconds(v));
            data.Properties[HubSpotVocabulary.Workflow.Listening]          = input.listening.PrintIfAvailable();
            data.Properties[HubSpotVocabulary.Workflow.NutureTimeRange]    = input.nurtureTimeRange.PrintIfAvailable(JsonUtility.Serialize);
            data.Properties[HubSpotVocabulary.Workflow.OnlyExecOnBizDays]  = input.onlyExecOnBizDays.PrintIfAvailable();
            data.Properties[HubSpotVocabulary.Workflow.RecurringSetting]   = input.recurringSetting.PrintIfAvailable(JsonUtility.Serialize);
            data.Properties[HubSpotVocabulary.Workflow.SuppressionListIds] = input.suppressionListIds.PrintIfAvailable(JsonUtility.Serialize);
            data.Properties[HubSpotVocabulary.Workflow.TriggerSets]        = input.triggerSets.PrintIfAvailable(JsonUtility.Serialize);
            data.Properties[HubSpotVocabulary.Workflow.Type] = input.type;
            data.Properties[HubSpotVocabulary.Workflow.UnEnrollmentSetting] = input.unenrollmentSetting.PrintIfAvailable();

            if (input.lastUpdatedBy != null)
            {
                _factory.CreateIncomingEntityReference(clue, EntityType.Person, EntityEdgeType.ModifiedBy, input, s => s.lastUpdatedBy);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, HubSpotNameConstants.CodeOrigin, input.lastUpdatedBy));
                data.Authors.Add(createdBy);
            }

            if (input.originalAuthorUserId != null)
            {
                _factory.CreateIncomingEntityReference(clue, EntityType.Person, EntityEdgeType.CreatedBy, input, s => s.originalAuthorUserId.Value.ToString(CultureInfo.InvariantCulture));
            }

            if (input.portalId != null)
            {
                _factory.CreateIncomingEntityReference(clue, EntityType.Infrastructure.Site, EntityEdgeType.PartOf, input, s => s.portalId.Value.ToString(CultureInfo.InvariantCulture), s => "HubSpot");
            }

            return(clue);
        }
Exemple #18
0
        public void FavoritingAnItemShouldRaiseAnEvent()
        {
            var person   = new Person(PersonReference.FromExisting("ref-001"), "Homer");
            var foodItem = new FoodItem(7463928, "Extra Strong Concentrated Squishee Syrup");
            PersonFavoritedFoodItemEvent raisedEvent = null;

            DomainEvents.Register <PersonFavoritedFoodItemEvent>((obj) => raisedEvent = (obj));

            person.Favorite(foodItem);

            Assert.IsInstanceOf(typeof(PersonFavoritedFoodItemEvent), raisedEvent);
            Assert.AreEqual(person, raisedEvent.Person);
            Assert.AreEqual(foodItem, raisedEvent.FoodItem);
        }
        public async Task TestBadReferenceResolver()
        {
            var options = new JsonSerializerOptions {
                ReferenceHandler = new ReferenceHandler <BadReferenceResolver>()
            };

            PersonReference angela = new PersonReference {
                Name = "Angela"
            };
            PersonReference bob = new PersonReference {
                Name = "Bob"
            };

            angela.Spouse = bob;
            bob.Spouse    = angela;

            // Nothing is preserved, hence MaxDepth will be reached.
            await Assert.ThrowsAsync <JsonException>(() => JsonSerializerWrapperForString.SerializeWrapper(angela, options));
        }
Exemple #20
0
        public static void TestBadReferenceResolver()
        {
            var options = new JsonSerializerOptions {
                ReferenceHandler = new ReferenceHandler <BadReferenceResolver>()
            };

            PersonReference angela = new PersonReference {
                Name = "Angela"
            };
            PersonReference bob = new PersonReference {
                Name = "Bob"
            };

            angela.Spouse = bob;
            bob.Spouse    = angela;

            // Nothing is preserved, hence MaxDepth will be reached.
            Assert.Throws <JsonException>(() => JsonSerializer.Serialize(angela, options));
        }
Exemple #21
0
        protected override Clue MakeClueImpl(Site value, Guid id)
        {
            var clue = _factory.Create(EntityType.Infrastructure.Site, value.ID, id);
            var data = clue.Data.EntityData;

            if (value.Name != null)
            {
                data.Name        = value.Name;
                data.DisplayName = value.Name;
            }

            //data.Uri = new Uri($"{this.state.JobData.Token.Data}/{value.ID}");
            //data.Properties[SalesforceVocabulary.Site.EditUrl] = $"{this.state.JobData.Token.Data}/{value.ID}";

            data.Properties[SalesforceVocabulary.Site.Status] = value.Status;

            if (value.CreatedDate != null)
            {
                data.CreatedDate = DateTime.Parse(value.CreatedDate);
            }

            if (value.CreatedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.CreatedBy, value, value.CreatedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.CreatedById));
                data.Authors.Add(createdBy);
            }

            if (value.LastModifiedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.ModifiedBy, value, value.LastModifiedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.LastModifiedById));
                data.Authors.Add(createdBy);
            }

            data.ModifiedDate = DateTime.Parse(value.LastModifiedDate);
            data.Properties[SalesforceVocabulary.Site.SystemModstamp] = value.SystemModstamp;

            _factory.CreateEntityRootReference(clue, EntityEdgeType.ManagedIn);

            return(clue);
        }
Exemple #22
0
        protected PersonReference AddCreatedBy(
            Clue clue,
            EmailAddress address,
            VocabularyKey vocabularyKey)
        {
            if (address == null)
            {
                return(null);
            }

            PersonReference personReference;

            if (!string.IsNullOrEmpty(address.Address))
            {
                personReference = new PersonReference(address.Name, new EntityCode(EntityType.Infrastructure.User, ExchangeSharedMailboxNameConstants.CodeOrigin, address.Address));
            }
            else
            {
                personReference = new PersonReference(address.Name);
            }

            clue.Data.EntityData.Authors.Add(personReference);
            clue.Data.EntityData.LastChangedBy = personReference;

            this.WriteAddressProperty(clue.Data.EntityData, vocabularyKey, address);

            if (address.Address != null && !clue.Data.EntityData.OutgoingEdges.Any(e => e.EdgeType.Is(EntityEdgeType.CreatedBy)))
            {
                var fromCode = new EntityCode(EntityType.Infrastructure.User, ExchangeSharedMailboxNameConstants.CodeOrigin, address.Address);

                var fromEdge = new EntityEdge(
                    EntityReference.CreateByKnownCode(clue.OriginEntityCode),
                    EntityReference.CreateByKnownCode(fromCode, address.Name),
                    EntityEdgeType.CreatedBy);

                clue.Data.EntityData.OutgoingEdges.Add(fromEdge);
            }

            return(personReference);
        }
Exemple #23
0
        protected override Clue MakeClueImpl(Note value, Guid id)
        {
            var clue = _factory.Create(EntityType.Note, value.ID, id);
            var data = clue.Data.EntityData;

            if (value.Title != null)
            {
                data.Name        = value.Title;
                data.DisplayName = value.Title;
                data.Aliases.Add(value.Title);
            }

            //data.Uri = new Uri($"{this.state.JobData.Token.Data}/{value.ID}");
            //data.Properties[SalesforceVocabulary.Note.EditUrl] = $"{this.state.JobData.Token.Data}/{value.ID}";

            if (value.Body != null)
            {
                data.Description = value.Body;
            }

            if (value.IsDeleted != null)
            {
                data.Properties[SalesforceVocabulary.Note.IsDeleted] = value.IsDeleted;
            }
            if (value.IsPrivate != null)
            {
                data.Properties[SalesforceVocabulary.Note.IsPrivate] = value.IsPrivate;
            }
            if (value.OwnerId != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.OwnedBy, value, value.OwnerId);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.OwnerId));
                data.Authors.Add(createdBy);
            }
            if (value.ParentId != null)
            {
                // TODO: This is wrong; We are missing the context of what the note was for
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.Parent,
                                                       value, value.ParentId);
            }

            if (value.CreatedDate != null)
            {
                DateTimeOffset createdDate;
                if (DateTimeOffset.TryParse(value.CreatedDate, out createdDate))
                {
                    data.CreatedDate = createdDate;
                }
            }

            if (value.LastModifiedDate != null)
            {
                DateTimeOffset modifiedDate;
                if (DateTimeOffset.TryParse(value.LastModifiedDate, out modifiedDate))
                {
                    data.ModifiedDate = modifiedDate;
                }
            }
            if (value.CreatedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.CreatedBy, value, value.CreatedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.CreatedById));
                data.Authors.Add(createdBy);
            }

            if (value.LastModifiedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.ModifiedBy, value, value.LastModifiedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.LastModifiedById));
                data.Authors.Add(createdBy);
            }

            if (value.SystemModstamp != null)
            {
                data.Properties[SalesforceVocabulary.Note.SystemModstamp] = value.SystemModstamp;
            }

            _factory.CreateEntityRootReference(clue, EntityEdgeType.ManagedIn);

            return(clue);
        }
        protected override Clue MakeClueImpl(PrivateCustomer value, Guid id)
        {
            Clue clue;

            clue = _factory.Create(EntityType.Infrastructure.User, value.ID, id);

            var data = clue.Data.EntityData;

            if (value.Name != null)
            {
                data.Name        = value.Name;
                data.DisplayName = value.Name;
                data.Aliases.Add(value.Name);
            }

            // TODO: Could this fail? Is this the right name of the JobData?
            //data.Uri = new Uri($"{_jobData.Token.Data}/{value.ID}");
            //data.Properties[SalesforceVocabulary.Account.EditUrl] = $"{_jobData.Token.Data}/{value.ID}";
            if (value.CreatedDate != null)
            {
                DateTimeOffset createdDate;
                if (DateTimeOffset.TryParse(value.CreatedDate, out createdDate))
                {
                    data.CreatedDate = createdDate;
                }
            }
            if (value.LastModifiedDate != null)
            {
                DateTimeOffset modifiedDate;
                if (DateTimeOffset.TryParse(value.LastModifiedDate, out modifiedDate))
                {
                    data.ModifiedDate = modifiedDate;
                }
            }
            if (value.CreatedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.CreatedBy, value, value.CreatedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.CreatedById));
                data.Authors.Add(createdBy);

                data.LastChangedBy = createdBy;
            }
            if (value.LastModifiedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.ModifiedBy, value, value.LastModifiedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.LastModifiedById));
                data.Authors.Add(createdBy);

                data.LastChangedBy = createdBy;
            }
            if (value.SystemModstamp != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.SystemModstamp] = value.SystemModstamp;
            }
            if (value.AccountNumber != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.AccountNumber] = value.AccountNumber;
            }
            if (value.AccountSource != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.AccountSource] = value.AccountSource;
            }
            if (value.AgePc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.AgePc] = value.AgePc;
            }
            if (value.AnnualRevenue != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.AnnualRevenue] = value.AnnualRevenue;
            }
            if (value.AudiIdC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.AudiIdC] = value.AudiIdC;
            }
            if (value.BillingCity != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.BillingCity] = value.BillingCity;
            }
            if (value.BillingCountry != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.BillingCountry] = value.BillingCountry;
            }
            if (value.BillingCountryCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.BillingCountryCode] = value.BillingCountryCode;
            }
            if (value.BillingPostalCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.BillingPostalCode] = value.BillingPostalCode;
            }
            if (value.BillingAddress != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.BillingAddress] = value.BillingAddress;
            }
            if (value.BillingState != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.BillingState] = value.BillingState;
            }
            if (value.BillingStateCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.BillingStateCode] = value.BillingStateCode;
            }
            if (value.BillingStreet != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.BillingStreet] = value.BillingStreet;
            }
            if (value.BouncedPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.BouncedPc] = value.BouncedPc;
            }
            if (value.BrandPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.BrandPc] = value.BrandPc;
            }
            if (value.Brand2Pc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.Brand2Pc] = value.Brand2Pc;
            }
            if (value.BuyingTimeframePc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.BuyingTimeframePc] = value.BuyingTimeframePc;
            }
            if (value.CompanySizePc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.CompanySizePc] = value.CompanySizePc;
            }
            if (value.ContactRolePc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.ContactRolePc] = value.ContactRolePc;
            }
            if (value.CurrentCarBrandPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.CurrentCarBrandPc] = value.CurrentCarBrandPc;
            }
            if (value.CustomerCityC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.CustomerCityC] = value.CustomerCityC;
            }
            if (value.CvrC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.CvrC] = value.CvrC;
            }
            if (value.DeadC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.DeadC] = value.DeadC;
            }
            if (value.DealershipidC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.DealershipidC] = value.DealershipidC;
            }
            if (value.Description != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.Description] = value.Description;
            }
            if (value.FirstName != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.FirstName] = value.FirstName;
            }
            if (value.HashedEmailPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.HashedEmailPc] = value.HashedEmailPc;
            }
            if (value.ID != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.ID] = value.ID;
            }
            if (value.IdEmailC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IdEmailC] = value.IdEmailC;
            }
            if (value.IdEmailPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IdEmailPc] = value.IdEmailPc;
            }
            if (value.IdentityKitIdPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IdentityKitIdPc] = value.IdentityKitIdPc;
            }
            if (value.IdentityKitIdC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IdentityKitIdC] = value.IdentityKitIdC;
            }
            if (value.IdNgC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IdNgC] = value.IdNgC;
            }
            if (value.IdNgPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IdNgPc] = value.IdNgPc;
            }
            if (value.Industry != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.Industry] = value.Industry;
            }
            if (value.IndustryPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IndustryPc] = value.IndustryPc;
            }
            if (value.InteractionScoreCalculatedPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.InteractionScoreCalculatedPc] = value.InteractionScoreCalculatedPc;
            }
            if (value.InteractionScoreLastUpdatedPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.InteractionScoreLastUpdatedPc] = value.InteractionScoreLastUpdatedPc;
            }
            if (value.InteractionScorePc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.InteractionScorePc] = value.InteractionScorePc;
            }
            if (value.IsActiveUserPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IsActiveUserPc] = value.IsActiveUserPc;
            }
            if (value.IsDeleted != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IsDeleted] = value.IsDeleted;
            }
            if (value.IsKukCustomerC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IsKukCustomerC] = value.IsKukCustomerC;
            }
            if (value.IsMarketingContactPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IsMarketingContactPc] = value.IsMarketingContactPc;
            }
            if (value.IsPartner != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IsPartner] = value.IsPartner;
            }
            if (value.IsPartnerPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IsPartnerPc] = value.IsPartnerPc;
            }
            if (value.IsPersonAccount != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.IsPersonAccount] = value.IsPersonAccount;
            }
            if (value.KukCodeC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.KukCodeC] = value.KukCodeC;
            }
            if (value.KukCustomerIdC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.KukCustomerIdC] = value.KukCustomerIdC;
            }
            if (value.LastActivityDate != null)
            {
                DateTime modifiedDateTime;
                if (DateTime.TryParse(value.LastActivityDate, out modifiedDateTime))
                {
                    data.ModifiedDate = modifiedDateTime;
                }
            }
            if (value.LastName != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.LastName] = value.LastName;
            }
            if (value.LastReferencedDate != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.LastReferencedDate] = DateUtilities.GetFormattedDateString(value.LastReferencedDate);
            }
            if (value.LastViewedDate != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.LastViewedDate] = DateUtilities.GetFormattedDateString(value.LastViewedDate);
            }
            if (value.LeadReassignmentC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.LeadReassignmentC] = DateUtilities.GetFormattedDateString(value.LeadReassignmentC);
            }
            if (value.MarketingContactHemKeyC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.MarketingContactHemKeyC] = DateUtilities.GetFormattedDateString(value.MarketingContactHemKeyC);
            }
            if (value.MarketingContactKeyC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.MarketingContactKeyC] = DateUtilities.GetFormattedDateString(value.MarketingContactKeyC);
            }
            if (value.McApiErrorPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.McApiErrorPc] = DateUtilities.GetFormattedDateString(value.McApiErrorPc);
            }
            if (value.McApiStatusPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.McApiStatusPc] = DateUtilities.GetFormattedDateString(value.McApiStatusPc);
            }
            if (value.NumberOfCarsPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.NumberOfCarsPc] = value.NumberOfCarsPc;
            }
            if (value.NumberOfEmployees != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.NumberOfEmployees] = value.NumberOfEmployees;
            }
            if (value.OrderedLicensesC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.OrderedLicensesC] = value.OrderedLicensesC;
            }
            if (value.OwnerId != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.OwnedBy, value, value.OwnerId);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.OwnerId));
                data.Authors.Add(createdBy);
            }
            if (value.Ownership != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Tag, EntityEdgeType.For, value, value.Ownership);
                data.Properties[SalesforceVocabulary.PrivateCustomer.OwnerShip] = value.Ownership;
            }
            if (value.ParentId != null)
            {
                // TODO: This is wrong! ParentId refers to the parent account
                _factory.CreateOutgoingEntityReference(clue, EntityType.Organization, EntityEdgeType.Parent, value, value.ParentId);
            }
            if (value.PartnerExtidC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PartnerExtidC] = value.PartnerExtidC;
            }
            if (value.Phone != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.Phone] = value.Phone;
                data.Aliases.Add(value.Phone);
            }
            if (value.PhoneFormulaC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PhoneFormulaC] = value.PhoneFormulaC;
            }
            if (value.PhotoUrl != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PhotoUrl] = value.PhotoUrl;
            }
            //if (value.PhotoUrl != null)
            //{
            //    if (value.PhotoUrl != null)
            //    {
            //        try
            //        {
            //            using (var webClient = new WebClient())
            //            {
            //                webClient.Headers.Add("Authorization", "Bearer " + _jobData.Token.AccessToken);
            //                using (var stream = webClient.OpenRead(value.PhotoUrl))
            //                {
            //                    var inArray = StreamUtilies.ReadFully(stream);
            //                    if (inArray != null)
            //                    {
            //                        var rawDataPart = new RawDataPart()
            //                        {
            //                            Type = "/RawData/PreviewImage",
            //                            MimeType = CluedIn.Core.FileTypes.MimeType.Jpeg.Code,
            //                            FileName = "preview_{0}".FormatWith(clue.OriginEntityCode.Key),
            //                            RawDataMD5 = FileHashUtility.GetMD5Base64String(inArray),
            //                            RawData = Convert.ToBase64String(inArray)
            //                        };

            //                        clue.Details.RawData.Add(rawDataPart);

            //                        clue.Data.EntityData.PreviewImage = new ImageReferencePart(rawDataPart);
            //                    }
            //                }
            //            }

            //        }
            //        catch (Exception exception)
            //        {
            //        }
            //    }
            //}
            if (value.PostBoxNameC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PostBoxNameC] = value.PostBoxNameC;
            }
            if (value.PreferedOwnershipPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PreferedOwnershipPc] = value.PreferedOwnershipPc;
            }
            if (value.PersonAssistantPhone != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonAssistantPhone] = value.PersonAssistantPhone;
                data.Aliases.Add(value.PersonAssistantPhone);
            }
            if (value.PersonBirthDate != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonBirthDate] = value.PersonBirthDate;
            }
            //if (value.PersonContactId != null) data.Properties[SalesforceVocabulary.PrivateCustomer.PersonContactId] = value.PersonContactId;

            if (value.PersonContactId != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Infrastructure.Contact, EntityEdgeType.At, value, value.PersonContactId);
                var createdBy = new PersonReference(new EntityCode(EntityType.Infrastructure.Contact, SalesforceConstants.CodeOrigin, value.PersonContactId));
                data.Authors.Add(createdBy);
            }

            if (value.PersonContactIdC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonContactIdC] = value.PersonContactIdC;
            }
            if (value.PersonDepartment != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonDepartment] = value.PersonDepartment;
            }
            if (value.PersonDonotCall != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonDonotCall] = value.PersonDonotCall;
            }
            if (value.PersonEmail != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonEmail] = value.PersonEmail;
                data.Aliases.Add(value.PersonEmail);
            }
            if (value.PersonEmailBouncedDate != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonEmailBouncedDate] = value.PersonEmailBouncedDate;
            }
            if (value.PersonEmailBouncedReason != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonEmailBouncedReason] = value.PersonEmailBouncedReason;
            }
            if (value.PersonHasOptedOutOfEmail != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonHasOptedOutOfEmail] = value.PersonHasOptedOutOfEmail;
            }
            if (value.PersonHasOptedOutOfFax != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonHasOptedOutOfFax] = value.PersonHasOptedOutOfFax;
            }
            if (value.PersonHomePhone != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonHomePhone] = value.PersonHomePhone;
                data.Aliases.Add(value.PersonHomePhone);
            }
            if (value.PersonLeadSource != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonLeadSource] = value.PersonLeadSource;
            }
            if (value.PersonMailingAddress != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonMailingAddress] = value.PersonMailingAddress;
            }
            if (value.PersonMailingCity != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonMailingCity] = value.PersonMailingCity;
            }
            if (value.PersonMailingCountry != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonMailingCountry] = value.PersonMailingCountry;
            }
            if (value.PersonMailingCountryCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonMailingCountryCode] = value.PersonMailingCountryCode;
            }
            if (value.PersonMailingPostalCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonMailingPostalCode] = value.PersonMailingPostalCode;
            }
            if (value.PersonMailingState != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonMailingState] = value.PersonMailingState;
            }
            if (value.PersonMailingStateCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonMailingStateCode] = value.PersonMailingStateCode;
            }
            if (value.PersonMailingStreet != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonMailingStreet] = value.PersonMailingStreet;
            }
            if (value.PersonMobilePhone != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonMobilePhone] = value.PersonMobilePhone;
                data.Aliases.Add(value.PersonMobilePhone);
            }
            if (value.PersonOtherAddress != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonOtherAddress] = value.PersonOtherAddress;
            }
            if (value.PersonOtherCity != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonOtherCity] = value.PersonOtherCity;
            }
            if (value.PersonOtherCountry != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonOtherCountry] = value.PersonOtherCountry;
            }
            if (value.PersonOtherCountryCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonOtherCountryCode] = value.PersonOtherCountryCode;
            }
            if (value.PersonOtherPhone != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonOtherPhone] = value.PersonOtherPhone;
                data.Aliases.Add(value.PersonOtherPhone);
            }
            if (value.PersonOtherPostalCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonOtherPostalCode] = value.PersonOtherPostalCode;
            }
            if (value.PersonOtherState != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonOtherState] = value.PersonOtherState;
            }
            if (value.PersonOtherStateCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonOtherStateCode] = value.PersonOtherStateCode;
            }
            if (value.PersonOtherStreet != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonOtherStreet] = value.PersonOtherStreet;
            }
            if (value.PersonTitle != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.PersonTitle] = value.PersonTitle;
            }
            if (value.Rating != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Tag, EntityEdgeType.For, value, value.Rating);
                data.Properties[SalesforceVocabulary.PrivateCustomer.Rating] = value.Rating;
                data.Tags.Add(new Tag(value.Rating));
            }
            if (value.RecordTypeId != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.RecordTypeId] = value.RecordTypeId;
            }
            if (value.ResidenseRegionPc != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.ResidenseRegionPc] = value.ResidenseRegionPc;
            }
            if (value.RobinsonC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.RobinsonC] = value.RobinsonC;
            }
            if (value.Salutation != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.Salutation] = value.Salutation;
            }
            if (value.SeatIdC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.SeatIdC] = value.SeatIdC;
            }
            if (value.ShippingAddress != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.ShippingAddress] = value.ShippingAddress;
            }
            if (value.ShippingCity != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.ShippingCity] = value.ShippingCity;
            }
            if (value.ShippingCountry != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.ShippingCountry] = value.ShippingCountry;
            }
            if (value.ShippingCountryCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.ShippingCountryCode] = value.ShippingCountryCode;
            }
            if (value.ShippingPostalCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.ShippingPostalCode] = value.ShippingPostalCode;
            }
            if (value.ShippingState != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.ShippingState] = value.ShippingState;
            }
            if (value.ShippingStateCode != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.ShippingStateCode] = value.ShippingStateCode;
            }
            if (value.ShippingStreet != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.ShippingStreet] = value.ShippingStreet;
            }
            if (value.Site != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.Site] = value.Site;
            }
            if (value.SkodaIdC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.SkodaIdC] = value.SkodaIdC;
            }
            if (value.StartedUsingSfC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.StartedUsingSfC] = value.StartedUsingSfC;
            }
            if (value.TickerSymbol != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.TickerSymbol] = value.TickerSymbol;
            }
            if (value.Type != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Tag, EntityEdgeType.For, value, value.Type);
                data.Properties[SalesforceVocabulary.PrivateCustomer.Type] = value.Type;
                data.Tags.Add(new Tag(value.Type));
            }
            if (value.VwEIdCC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.VwEIdCC] = value.VwEIdCC;
            }
            if (value.VwIdC != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.VwIdC] = value.VwIdC;
            }
            if (value.Website != null)
            {
                data.Properties[SalesforceVocabulary.PrivateCustomer.Website] = value.Website;

                Uri website;

                if (Uri.TryCreate(value.Website, UriKind.Absolute, out website))
                {
                    data.ExternalReferences.Add(new Uri(value.Website));
                }
            }
            //if (value.YearStarted != null) data.Properties[SalesforceVocabulary.Account.YearStarted] = value.YearStarted;

            _factory.CreateEntityRootReference(clue, EntityEdgeType.ManagedIn);

            return(clue);
        }
Exemple #25
0
        protected override Clue MakeClueImpl(DomainObject value, Guid id)
        {
            var clue = _factory.Create(EntityType.Infrastructure.Site, value.ID, id);
            var data = clue.Data.EntityData;

            if (value.Domain != null)
            {
                data.Name        = value.Domain;
                data.DisplayName = value.Domain;
            }

            // TODO: Could this fail? Is this the right name of the JobData?
            //data.Uri = new Uri($"{this.state.JobData.Token.Data}/{value.ID}");

            if (value.CreatedDate != null)
            {
                DateTimeOffset createdDate;
                if (DateTimeOffset.TryParse(value.CreatedDate, out createdDate))
                {
                    data.CreatedDate = createdDate;
                }
            }

            if (value.LastModifiedDate != null)
            {
                DateTimeOffset modifiedDate;
                if (DateTimeOffset.TryParse(value.LastModifiedDate, out modifiedDate))
                {
                    data.ModifiedDate = modifiedDate;
                }
            }

            if (value.CreatedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.CreatedBy, value, value.CreatedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.CreatedById));
                data.Authors.Add(createdBy);
            }

            if (value.LastModifiedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.ModifiedBy, value, value.LastModifiedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.LastModifiedById));
                data.Authors.Add(createdBy);
            }

            //if (value.SystemModstamp != null)
            //    data.Properties[SalesforceVocabulary.Account.SystemModstamp] = value.SystemModstamp;
            //if (value.DomainType != null)
            //    data.Properties[SalesforceVocabulary.Account.DomainType] = value.DomainType;

            if (value.LastModifiedDate != null)
            {
                DateTime modifiedDateTime;
                if (DateTime.TryParse(value.LastModifiedDate, out modifiedDateTime))
                {
                    data.ModifiedDate = modifiedDateTime;
                }
            }

            _factory.CreateEntityRootReference(clue, EntityEdgeType.ManagedIn);

            return(clue);
        }
Exemple #26
0
            public static object _Copier(object original)
            {
                PersonReference input = ((PersonReference)(original));

                return((PersonReference)(global::Orleans.Runtime.GrainReference.CopyGrainReference(input)));
            }
Exemple #27
0
 public static Test.Interfaces.IPerson Cast(global::Orleans.Runtime.IAddressable grainRef)
 {
     return(PersonReference.Cast(grainRef));
 }
Exemple #28
0
 public static object _Deserializer(System.Type expected, global::Orleans.Serialization.BinaryTokenStreamReader stream)
 {
     return(PersonReference.Cast(((global::Orleans.Runtime.GrainReference)(global::Orleans.Runtime.GrainReference.DeserializeGrainReference(expected, stream)))));
 }
Exemple #29
0
            public static void _Serializer(object original, global::Orleans.Serialization.BinaryTokenStreamWriter stream, System.Type expected)
            {
                PersonReference input = ((PersonReference)(original));

                global::Orleans.Runtime.GrainReference.SerializeGrainReference(input, stream, expected);
            }
        protected override Clue MakeClueImpl(Event value, Guid id)
        {
            var clue = _factory.Create(EntityType.Calendar.Event, value.ID, id);
            var data = clue.Data.EntityData;

            if (value.Subject != null)
            {
                data.Name        = value.Subject;
                data.DisplayName = value.Subject;
            }

            if (value.Description != null)
            {
                data.Description = value.Description;
            }

            if (value.AcceptedEventInviteeIds != null)
            {
                var acceptedEventIds = value.AcceptedEventInviteeIds.Split(',');
                foreach (var acceptedId in acceptedEventIds)
                {
                    _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.InvitedTo, value, acceptedId);
                }

                data.Properties[SalesforceVocabulary.Event.AcceptedEventInviteeIds] = value.AcceptedEventInviteeIds;
            }

            if (value.AccountId != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Organization, EntityEdgeType.OwnedBy, value, value.AccountId);
            }

            if (value.ActivityDate != null)
            {
                data.Properties[SalesforceVocabulary.Event.ActivityDate] = DateUtilities.GetFormattedDateString(value.ActivityDate);
            }

            if (value.ActivityDateTime != null)
            {
                data.Properties[SalesforceVocabulary.Event.ActivityDateTime] = DateUtilities.GetFormattedDateString(value.ActivityDateTime);
            }
            if (value.ClientGuid != null)
            {
                data.Properties[SalesforceVocabulary.Event.ClientGuid] = value.ClientGuid;
            }
            if (value.CurrencyIsoCode != null)
            {
                data.Properties[SalesforceVocabulary.Event.CurrencyIsoCode] = value.CurrencyIsoCode;
            }
            if (value.DeclinedEventInviteeIds != null)
            {
                data.Properties[SalesforceVocabulary.Event.DeclinedEventInviteeIds] = value.DeclinedEventInviteeIds;
            }

            //data.Uri = new Uri($"{this.state.JobData.Token.Data}/{value.ID}");
            //data.Properties[SalesforceVocabulary.Event.EditUrl] = $"{this.state.JobData.Token.Data}/{value.ID}";

            if (value.Division != null)
            {
                data.Properties[SalesforceVocabulary.Event.Division] = value.Division;
            }
            if (value.DurationInMinutes != null)
            {
                data.Properties[SalesforceVocabulary.Event.DurationInMinutes] = value.DurationInMinutes;
            }
            if (value.EndDateTime != null)
            {
                data.Properties[SalesforceVocabulary.Event.EndDateTime] = DateUtilities.GetFormattedDateString(value.EndDateTime);
            }

            data.Properties[SalesforceVocabulary.Event.EventSubtype]             = value.EventSubtype;
            data.Properties[SalesforceVocabulary.Event.EventWhoIds]              = value.EventWhoIds;
            data.Properties[SalesforceVocabulary.Event.GroupEventType]           = value.GroupEventType;
            data.Properties[SalesforceVocabulary.Event.IsAllDayEvent]            = value.IsAllDayEvent;
            data.Properties[SalesforceVocabulary.Event.IsArchived]               = value.IsArchived;
            data.Properties[SalesforceVocabulary.Event.IsChild]                  = value.IsChild;
            data.Properties[SalesforceVocabulary.Event.IsClientManaged]          = value.IsClientManaged;
            data.Properties[SalesforceVocabulary.Event.IsGroupEvent]             = value.IsGroupEvent;
            data.Properties[SalesforceVocabulary.Event.IsPrivate]                = value.IsPrivate;
            data.Properties[SalesforceVocabulary.Event.IsRecurrence]             = value.IsRecurrence;
            data.Properties[SalesforceVocabulary.Event.IsReminderSet]            = value.IsReminderSet;
            data.Properties[SalesforceVocabulary.Event.IsVisibleInSelfService]   = value.IsVisibleInSelfService;
            data.Properties[SalesforceVocabulary.Event.Location]                 = value.Location;
            data.Properties[SalesforceVocabulary.Event.RecurrenceActivityId]     = value.RecurrenceActivityId;
            data.Properties[SalesforceVocabulary.Event.RecurrenceDayOfMonth]     = value.RecurrenceDayOfMonth;
            data.Properties[SalesforceVocabulary.Event.RecurrenceDayOfWeekMask]  = value.RecurrenceDayOfWeekMask;
            data.Properties[SalesforceVocabulary.Event.RecurrenceEndDateOnly]    = value.RecurrenceEndDateOnly;
            data.Properties[SalesforceVocabulary.Event.RecurrenceInstance]       = value.RecurrenceInstance;
            data.Properties[SalesforceVocabulary.Event.RecurrenceMonthOfYear]    = value.RecurrenceMonthOfYear;
            data.Properties[SalesforceVocabulary.Event.RecurrenceStartDateTime]  = DateUtilities.GetFormattedDateString(value.RecurrenceStartDateTime);
            data.Properties[SalesforceVocabulary.Event.RecurrenceTimeZoneSidKey] = value.RecurrenceTimeZoneSidKey;
            data.Properties[SalesforceVocabulary.Event.RecurrenceType]           = value.RecurrenceType;
            data.Properties[SalesforceVocabulary.Event.ReminderDateTime]         = DateUtilities.GetFormattedDateString(value.ReminderDateTime);
            data.Properties[SalesforceVocabulary.Event.ShowAs] = value.ShowAs;

            DateTime startDate;

            if (DateTime.TryParse(value.StartDateTime, out startDate))
            {
                data.Properties[SalesforceVocabulary.Event.DayOfWeek] = startDate.DayOfWeek.ToString();
            }

            data.Properties[SalesforceVocabulary.Event.StartDateTime]            = DateUtilities.GetFormattedDateString(value.StartDateTime);
            data.Properties[SalesforceVocabulary.Event.Type]                     = value.Type;
            data.Properties[SalesforceVocabulary.Event.UndecidedEventInviteeIds] = value.UndecidedEventInviteeIds;
            data.Properties[SalesforceVocabulary.Event.WhatCount]                = value.WhatCount;
            data.Properties[SalesforceVocabulary.Event.WhatId]                   = value.WhatId;
            data.Properties[SalesforceVocabulary.Event.WhoCount]                 = value.WhoCount;
            data.Properties[SalesforceVocabulary.Event.WhoId]                    = value.WhoId;

            if (value.OwnerId != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.CreatedBy, value, value.OwnerId);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.OwnerId));
                data.Authors.Add(createdBy);
            }

            if (value.CreatedDate != null)
            {
                DateTimeOffset createdDate;
                if (DateTimeOffset.TryParse(value.CreatedDate, out createdDate))
                {
                    data.CreatedDate = createdDate;
                }
            }

            if (value.LastModifiedDate != null)
            {
                DateTimeOffset modifiedDate;
                if (DateTimeOffset.TryParse(value.LastModifiedDate, out modifiedDate))
                {
                    data.ModifiedDate = modifiedDate;
                }
            }

            if (value.CreatedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.CreatedBy, value, value.CreatedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.CreatedById));
                data.Authors.Add(createdBy);
            }

            if (value.LastModifiedById != null)
            {
                _factory.CreateOutgoingEntityReference(clue, EntityType.Person, EntityEdgeType.ModifiedBy, value, value.LastModifiedById);
                var createdBy = new PersonReference(new EntityCode(EntityType.Person, SalesforceConstants.CodeOrigin, value.LastModifiedById));
                data.Authors.Add(createdBy);
            }

            if (value.SystemModstamp != null)
            {
                data.Properties[SalesforceVocabulary.Event.SystemModstamp] = value.SystemModstamp;
            }

            _factory.CreateEntityRootReference(clue, EntityEdgeType.ManagedIn);

            return(clue);
        }