У меня проблема с моделью пользователя, которая не обновляется с правильным идентификатором ParentAccount после изменения значения во время работы приложения.
Например
Я буду запускать приложение и менять контакты родительского аккаунта. Затем создайте заказ и используйте метод «Создать» ниже, чтобы назначить родительский счет для заказа.
Теперь я чувствую, что он должен запустить метод "GetUser", который обновил модель currentuser, а затем взял текущего пользователя и назначил его продавцу.
Вместо этого он как бы пропускает его и сначала запускает код под ним и никогда не обновляет его с правильным идентификатором родительской учетной записи.
У кого-нибудь есть предложения по поводу того, почему это произойдет?
Спасибо!
public void Create(CrmContextCore _crmContext, Guid productId, ClaimsPrincipal User)
{
// User Model
UserEntityModel currentuser;
DAL_UserEntity UserData = new DAL_UserEntity();
var EmailAddress = User.Claims.FirstOrDefault(c => c.Type == System.Security.Claims.ClaimTypes.Email)?.Value;
var salesorder = new Entity("salesorder");
{
// Go get the current user data from crm system
currentuser = UserData.GetUser(_crmContext, EmailAddress);
// ISSUE! If i change this value while the application is running and rerun the method it shows the old value of currentuser not the new one??
salesorder["customerid"] = new EntityReference("account", currentuser.ParentAccount.Id);
salesorder["contactid"] = new EntityReference("contact", currentuser.ContactId);
salesorder["emailaddress"] = currentuser.Email;
salesorder["name"] = "PO123";
}
_crmContext.ServiceContext.AddObject(salesorder);
_crmContext.ServiceContext.SaveChanges();
}
Вот модель пользователя
public class UserEntityModel
{
public Guid ContactId {get; set;}
public EntityReference ParentAccount { get; set; }
public Guid Account {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
public string Email {get; set;}
}
Здесь создается модель пользователя
public class DAL_UserEntity
{
public UserEntityModel GetUser(CrmContextCore _crmContext, string email)
{
Console.WriteLine("GetUser Method is Running!!");
var user = (from u in _crmContext.ServiceContext.CreateQuery("contact")
where u.GetAttributeValue<string>("emailaddress1") == email
select u).Single();
UserEntityModel ctx = new UserEntityModel();
ctx.FirstName = user.GetAttributeValue<string>("firstname");
ctx.LastName = user.GetAttributeValue<string>("lastname");
ctx.Email = user.GetAttributeValue<string>("emailaddress1");
ctx.ContactId = user.GetAttributeValue<Guid>("contactid");
ctx.ParentAccount = user.GetAttributeValue<EntityReference>("parentcustomerid");
return ctx;
}
}