2016-04-15 2 views
0

OWF_ManagersNextTwoMonths тип возврата - это копия OWF_ManagerRelationshipViewModel пара вещей в нем закомментирована. Этот метод является модифицированной версией оригинала, которая использовала OWF_ManagerRelationshipViewModel в качестве возвращаемого типа. Целью является исключение одного из прокси-классов для уменьшения количества возвращаемых записей.Почему этот тип не присваивается типу параметра?

Еще одно отличие заключается в следующем OWF_ManagersNextTwoMonthsViewModel - automapper в операторе возврата.

Я получаю красную кривую под товаром в managerListFinal.Add(item); и (managerListFinal) в automapper часть типа возврата.

Первая красная закорючка в managerListFinal.Add(item); говорит:

'Аргумент тип Jupiter.Core.Model.OWF_ManagerRelationship не присваиваемый параметр типа Jupiter.Core.Model.OWF_ManagersNextTwoMonthsViewModel.

Второй красный закорючка в (managerListFinal) говорит:

'Аргумент типа Jupiter.Core.Model.OWF_ManagersNextTwoMonthsViewModel не может быть назначен для параметра типа Jupiter.Core.Model.OWF_ManagerRelationship.

Я попытался также возвращение managerListFinal ниже automapper возвращения, но получаю сообщение, что говорит то же самое, как это было для первого один выше, который использует automapper.

Новый OWF_ManagersNextTwoMonthsViewModel был создан без списка документов, чтобы не возвращать эти записи. Я думал, что это сработает, потому что это так похоже на оригинал OWF_ManagerRelationshipViewModel.

Я думаю, что возвращение automapper вернет то, что мне нужно, если оно сработает правильно. Я пытаюсь получить даты onsites, целевые даты, имена пользователей и типы менеджеров. Даты на месте и целевые даты используются в приведенном ниже методе, пока DisplayName, тип диспетчера и пользователи отображаются в сетке представления.

Я думал, что это будет так же просто, как скопировать режим просмотра и пропустить часть его списка запросов. Я не понимаю, почему компилятору это не нравится или как его исправить.

Оригинал OWF_ManagerRelationshipViewModel:

public class OWF_ManagerRelationshipViewModel 
{ 
    public OWF_ManagerRelationshipViewModel() 
    { 
     OWF_Onsites = new List<OWF_OnsitesViewModel>(); 
     OWF_DocumentRequestList = new List<OWF_DocumentRequestListViewModel>(); 
    } 

    public int RelationshipId { get; set; } 

    [Required] 
    public int ManagerId { get; set; } 
    public string Users { get; set; } 
    public string ManagerType { get; set; } 

    [Required] 
    public string DisplayName { get; set; } 
    public string CurrentState { get; set; } 
    public Nullable<bool> IsActive { get; set; } 

    public IEnumerable<OWF_AccessGroupViewModel> UsernameList { get; set; } 
    public virtual ICollection<OWF_DocumentRequestListViewModel> OWF_DocumentRequestList { get; set; } 
    public virtual ICollection<OWF_OnsitesViewModel> OWF_Onsites { get; set; } 
} 

Мой новый OWF_ManagersNextTwoMonthsViewModel:

 public class OWF_ManagersNextTwoMonthsViewModel 
{ 
    public OWF_ManagersNextTwoMonthsViewModel() 
    { 
     //OWF_DocumentRequestList = new List<OWF_DocumentRequestListViewModel>(); 
     OWF_Onsites = new List<OWF_OnsitesViewModel>(); 
    } 

    public int RelationshipId { get; set; } 

    [Required] 
    public int ManagerId { get; set; } 
    public string Users { get; set; }    
    public string ManagerType { get; set; }   

    [Required] 
    public string DisplayName { get; set; } 
    public string CurrentState { get; set; } 
    public Nullable<bool> IsActive { get; set; } 

    public IEnumerable<OWF_AccessGroupViewModel> UsernameList { get; set; }         
    //public virtual ICollection<OWF_DocumentRequestListViewModel> OWF_DocumentRequestList { get; set; }  
    public virtual ICollection<OWF_OnsitesViewModel> OWF_Onsites { get; set; } 
} 

Метод с красными каракулями:

 public IEnumerable<OWF_ManagersNextTwoMonthsViewModel> GetAllExistingManagersByCurrentDate() 
    { 
     var managers = _relationshipRepo.GetAll(); 
     var managerListFinal = new List<OWF_ManagersNextTwoMonthsViewModel>(); 
     var year = DateTime.Now.Year; 
     var prevYear = DateTime.Now.AddYears(-1).Year; 

     foreach (var item in managers) 
     { 
      foreach (var onsite in item.OWF_Onsites.Where(x => x.OnsiteDate != null)) 
      { 
       if (Convert.ToDateTime(onsite.OnsiteDate).Month == DateTime.Now.Month && Convert.ToDateTime(onsite.OnsiteDate).Year == year || 
        onsite.TargetMonth == DateTime.Now.Month && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == year || 
        onsite.TargetMonth == (DateTime.Now.Month + 1) && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == year || 
        Convert.ToDateTime(onsite.OnsiteDate).Month == (DateTime.Now.Month + 1) && Convert.ToDateTime(onsite.OnsiteDate).Year == year || 
        Convert.ToDateTime(onsite.OnsiteDate).Month == DateTime.Now.Month && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear || 
        onsite.TargetMonth == DateTime.Now.Month && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear || 
        onsite.TargetMonth == (DateTime.Now.Month + 1) && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear || 
        Convert.ToDateTime(onsite.OnsiteDate).Month == (DateTime.Now.Month + 1) && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear) 
       { 
        managerListFinal.Add(item); 
       } 
      } 
     } 
     //return Mapper.Map<IEnumerable<OWF_ManagerRelationship>, IEnumerable<OWF_ManagersNextTwoMonthsViewModel>>(managerListFinal); 
     return managerListFinal; 
    } 
+0

я был ленив, чтобы прочитать весь раздутый текст, поэтому я начал искать для questionmarks '?' В текст, чтобы прочитать полный фактический вопрос. Оказывается, нет другого вопроса, кроме заголовка. Я предлагаю вам перечитать текст и отредактировать вопрос. – grek40

+0

Я сделал несколько (второстепенных) изменений для форматирования, чтобы сделать его немного легче читать, но, как сказал @ grek40, вы можете вернуться к этому вопросу и попытаться уточнить, о чем вы просите. – levelonehuman

ответ

0

Вы берете элементы из OWF_ManagerRelationship проверить их, а затем поместить их в список OWF_ManagersNextTwoMonths ViewModel. и впоследствии вы хотите их сопоставить.

Я думаю, что вы должны сделать что-то вроде этого

managerListFinal.Add(Mapper.Map<OWF_ManagerRelationship,OWF_ManagersNextTwoMonthsViewModel>(item)); 

и вы должны быть хорошо

Смежные вопросы